email_spec 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/History.txt +18 -0
  3. data/README.md +30 -28
  4. data/examples/rails4_root/Gemfile +19 -0
  5. data/examples/rails4_root/Gemfile.lock +180 -0
  6. data/examples/rails4_root/README +5 -0
  7. data/examples/rails4_root/Rakefile +11 -0
  8. data/examples/rails4_root/app/controllers/application_controller.rb +3 -0
  9. data/examples/rails4_root/app/controllers/welcome_controller.rb +18 -0
  10. data/examples/rails4_root/app/helpers/application_helper.rb +2 -0
  11. data/examples/rails4_root/app/mailers/user_mailer.rb +39 -0
  12. data/examples/rails4_root/app/models/user.rb +2 -0
  13. data/examples/rails4_root/app/views/user_mailer/email_with_attachment.html.erb +6 -0
  14. data/examples/rails4_root/app/views/user_mailer/newsletter.html.erb +8 -0
  15. data/examples/rails4_root/app/views/user_mailer/signup.html.erb +4 -0
  16. data/examples/rails4_root/app/views/user_mailer/signup.text.erb +4 -0
  17. data/examples/rails4_root/app/views/welcome/attachments.html.erb +0 -0
  18. data/examples/rails4_root/app/views/welcome/confirm.html.erb +1 -0
  19. data/examples/rails4_root/app/views/welcome/index.html.erb +8 -0
  20. data/examples/rails4_root/app/views/welcome/newsletter.html.erb +0 -0
  21. data/examples/rails4_root/app/views/welcome/signup.html.erb +1 -0
  22. data/examples/rails4_root/attachments/document.pdf +0 -0
  23. data/examples/rails4_root/attachments/image.png +0 -0
  24. data/examples/rails4_root/config.ru +4 -0
  25. data/examples/rails4_root/config/application.rb +45 -0
  26. data/examples/rails4_root/config/boot.rb +14 -0
  27. data/examples/rails4_root/config/cucumber.yml +8 -0
  28. data/examples/rails4_root/config/database.yml +25 -0
  29. data/examples/rails4_root/config/environment.rb +6 -0
  30. data/examples/rails4_root/config/environments/development.rb +19 -0
  31. data/examples/rails4_root/config/environments/production.rb +42 -0
  32. data/examples/rails4_root/config/environments/test.rb +32 -0
  33. data/examples/rails4_root/config/initializers/backtrace_silencers.rb +7 -0
  34. data/examples/rails4_root/config/initializers/cookie_verification_secret.rb +7 -0
  35. data/examples/rails4_root/config/initializers/delayed_job.rb +1 -0
  36. data/examples/rails4_root/config/initializers/inflections.rb +10 -0
  37. data/examples/rails4_root/config/initializers/mime_types.rb +5 -0
  38. data/examples/rails4_root/config/initializers/notifier_job.rb +1 -0
  39. data/examples/rails4_root/config/initializers/rspec_generator.rb +6 -0
  40. data/examples/rails4_root/config/initializers/session_store.rb +10 -0
  41. data/examples/rails4_root/config/locales/en.yml +5 -0
  42. data/examples/rails4_root/config/routes.rb +7 -0
  43. data/examples/rails4_root/config/secrets.yml +22 -0
  44. data/examples/rails4_root/db/migrate/20090125013728_create_users.rb +11 -0
  45. data/examples/rails4_root/db/migrate/20090908054656_create_delayed_jobs.rb +20 -0
  46. data/examples/rails4_root/db/migrate/20141119224309_add_queue_to_delayed_jobs.rb +9 -0
  47. data/examples/rails4_root/db/schema.rb +35 -0
  48. data/examples/rails4_root/db/seeds.rb +7 -0
  49. data/examples/rails4_root/db/test.sqlite3 +0 -0
  50. data/examples/rails4_root/doc/README_FOR_APP +2 -0
  51. data/examples/rails4_root/features/attachments.feature +27 -0
  52. data/examples/rails4_root/features/delayed_job.feature +13 -0
  53. data/examples/rails4_root/features/errors.feature +40 -0
  54. data/examples/rails4_root/features/example.feature +93 -0
  55. data/examples/rails4_root/features/step_definitions/email_steps.rb +210 -0
  56. data/examples/rails4_root/features/step_definitions/user_steps.rb +26 -0
  57. data/examples/rails4_root/features/step_definitions/web_steps.rb +219 -0
  58. data/examples/rails4_root/features/support/env.rb +59 -0
  59. data/examples/rails4_root/features/support/env_ext.rb +4 -0
  60. data/examples/rails4_root/features/support/paths.rb +33 -0
  61. data/examples/rails4_root/lib/notifier_job.rb +5 -0
  62. data/examples/rails4_root/lib/tasks/cucumber.rake +65 -0
  63. data/examples/rails4_root/lib/tasks/rspec.rake +69 -0
  64. data/examples/rails4_root/log/development.log +0 -0
  65. data/examples/rails4_root/log/test.log +43813 -0
  66. data/examples/rails4_root/public/404.html +26 -0
  67. data/examples/rails4_root/public/422.html +26 -0
  68. data/examples/rails4_root/public/500.html +26 -0
  69. data/examples/rails4_root/public/favicon.ico +0 -0
  70. data/examples/rails4_root/public/images/rails.png +0 -0
  71. data/examples/rails4_root/public/javascripts/application.js +2 -0
  72. data/examples/rails4_root/public/javascripts/controls.js +965 -0
  73. data/examples/rails4_root/public/javascripts/dragdrop.js +974 -0
  74. data/examples/rails4_root/public/javascripts/effects.js +1123 -0
  75. data/examples/rails4_root/public/javascripts/prototype.js +4874 -0
  76. data/examples/rails4_root/public/javascripts/rails.js +109 -0
  77. data/examples/rails4_root/public/robots.txt +5 -0
  78. data/examples/rails4_root/script/cucumber +10 -0
  79. data/examples/rails4_root/script/delayed_job +5 -0
  80. data/examples/rails4_root/script/rails +9 -0
  81. data/examples/rails4_root/spec/controllers/welcome_controller_spec.rb +20 -0
  82. data/examples/rails4_root/spec/models/user_mailer_spec.rb +47 -0
  83. data/examples/rails4_root/spec/spec_helper.rb +20 -0
  84. data/examples/rails4_root/test/mailers/user_mailer_classic_test.rb +27 -0
  85. data/examples/rails4_root/test/mailers/user_mailer_spec_test.rb +29 -0
  86. data/examples/rails4_root/test/test_helper.rb +10 -0
  87. data/{rails_generators → examples/rails4_root/vendor/plugins/email_spec/rails_generators}/email_spec/email_spec_generator.rb +0 -0
  88. data/{rails_generators → examples/rails4_root/vendor/plugins/email_spec/rails_generators}/email_spec/templates/email_steps.rb +22 -18
  89. data/examples/sinatra_root/Gemfile +15 -0
  90. data/examples/sinatra_root/Gemfile.lock +95 -0
  91. data/examples/sinatra_root/config.ru +4 -0
  92. data/examples/sinatra_root/features/errors.feature +40 -0
  93. data/examples/sinatra_root/features/example.feature +93 -0
  94. data/examples/sinatra_root/features/step_definitions/email_steps.rb +210 -0
  95. data/examples/sinatra_root/features/step_definitions/user_steps.rb +26 -0
  96. data/examples/sinatra_root/features/step_definitions/web_steps.rb +219 -0
  97. data/examples/sinatra_root/features/support/env.rb +21 -0
  98. data/examples/sinatra_root/features/support/paths.rb +29 -0
  99. data/examples/sinatra_root/lib/example_sinatra_app.rb +45 -0
  100. data/features/rails4_app.feature +32 -0
  101. data/features/sinatra_app.feature +14 -0
  102. data/features/step_definitions/app_steps.rb +58 -0
  103. data/features/support/env.rb +16 -0
  104. data/lib/email_spec.rb +1 -1
  105. data/lib/email_spec/deliveries.rb +0 -1
  106. data/lib/email_spec/email_viewer.rb +1 -1
  107. data/lib/email_spec/helpers.rb +16 -5
  108. data/lib/email_spec/matchers.rb +2 -1
  109. data/lib/email_spec/version.rb +3 -0
  110. data/lib/generators/email_spec/steps/templates/email_steps.rb +24 -20
  111. data/spec/email_spec/email_viewer_spec.rb +20 -0
  112. data/spec/email_spec/helpers_spec.rb +316 -0
  113. data/spec/email_spec/mail_ext_spec.rb +34 -0
  114. data/spec/email_spec/matchers_spec.rb +513 -0
  115. data/spec/spec_helper.rb +24 -0
  116. metadata +161 -150
  117. data/lib/email_spec/background_processes.rb +0 -45
  118. data/lib/generators/email_spec/steps/USAGE +0 -5
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 71884a93a565ccd5661239e779088aa6c052abf9
4
+ data.tar.gz: 659560fc32d6199538fbeb76a2f394c1dc83929a
5
+ SHA512:
6
+ metadata.gz: eaefa127ba14d110085e4c0b8d55d24454a16844bb31fa76e8b9384a22fb79cff4940f49811eb29b71d23c7f6b36cfb02a7391a0d380d3e407531b355bf338a7
7
+ data.tar.gz: d29d7ae4854dcbc1033dc5127a040404a6739f3ee34b25ebcc1d3066196a241a15ec10b5585d70ecef38d90029eb379bd9b5c6fc80d9cf601107ea2b559431ac
@@ -1,3 +1,21 @@
1
+ == 2.0.0 2015-01-15
2
+
3
+ * Upgraded to RSpec 3.1 (Daniel Doubrovkine)
4
+ * Remove integration of Delayed Job (@jeroenvandijk)
5
+ * Better coverage for `#reply_to` (@akshayrawat)
6
+ * Decode encoded links (@deadlyicon)
7
+ # Add Ruby 2.1.0 to Travis (@salimane)
8
+ * Upgraded Rspec and Cucumber (@dblock)
9
+ * Don't assume Rspec is always available (@myobie)
10
+ * Fix unread emails for cached deliverys (@thickpaddy)
11
+ * Better link matching with regexp (@ronaldsalas)
12
+ * Signal non backwards compatible release with version 2.0.0 (@etagwerker)
13
+ * Upgraded mail dependency (@etagwerker)
14
+ * Better documentation for new Rspec syntax (@etagwerker)
15
+ * Updated Travis configuration to solve broken builds (@schmierkov)
16
+ * Fixed Rspec warnings and removed rails_generators from repo (@mauro-oto)
17
+ * Added coverage for links surrounded by tags (@mauro-oto)
18
+
1
19
  == 1.6.0 2014-05-27
2
20
 
3
21
  * New RSpec matcher API support (Morton Jonuschat)
data/README.md CHANGED
@@ -1,30 +1,22 @@
1
1
 
2
- [![Build Status](https://secure.travis-ci.org/bmabey/email-spec.png)](http://travis-ci.org/bmabey/email-spec)
2
+ [![Build Status](https://secure.travis-ci.org/email-spec/email-spec.png)](http://travis-ci.org/email-spec/email-spec)
3
3
 
4
4
  ## Email Spec
5
5
 
6
- A collection of matchers for RSpec/MiniTest and Cucumber steps to make testing emails go smoothly.
6
+ A collection of matchers for RSpec, MiniTest and Cucumber steps to make testing emails go smoothly.
7
7
 
8
8
  This library works with ActionMailer and Pony. When using it with ActionMailer it works with
9
- DelayedJob, ActiveRecord Mailer, and action_mailer_cache_delivery.
9
+ ActiveRecord Mailer, and action_mailer_cache_delivery.
10
10
 
11
11
  If you are testing emails in conjunction with an automated browser solution, like Selenium,
12
12
  you will want to use [action_mailer_cache_delivery](http://rubygems.org/gems/action_mailer_cache_delivery) in your test environment. (This is
13
13
  because your test process and server processes are distinct and therefore need an
14
- intermediate store for the emails.) DelayedJob and ActiveRecord Mailer will also work but
14
+ intermediate store for the emails.) ActiveRecord Mailer will also work but
15
15
  you generally don't want to include those projects unless you need them in production.
16
16
 
17
- ## Setup
18
-
19
- ```bash
20
- script/plugin install git://github.com/bmabey/email-spec.git
21
- ```
22
-
23
17
  ### Gem Setup
24
18
 
25
19
  ```ruby
26
- gem install email_spec
27
-
28
20
  # Gemfile
29
21
  group :test do
30
22
  gem 'email_spec'
@@ -64,7 +56,7 @@ Scenario: A new person signs up
64
56
  And "quentin@example.com" should receive an email # Specify who should receive the email
65
57
  ```
66
58
 
67
- ### RSpec
59
+ ### RSpec (3.1+)
68
60
 
69
61
  First you need to require email_spec in your spec_helper.rb:
70
62
 
@@ -135,6 +127,16 @@ end
135
127
 
136
128
  If you're using [Turnip](https://github.com/jnicklas/turnip), you might be interested in this [conversion of the Cucumber steps into Turnip steps](https://github.com/jmuheim/transition/blob/master/spec/support/steps/email_steps.rb).
137
129
 
130
+ ## Background Jobs
131
+
132
+ If you are using a background job, you might need to use a step to process the jobs. Another alternative is to use an inline statement for your scenario.
133
+
134
+ For example, for DelayedJob:
135
+
136
+ ```ruby
137
+ Delayed::Worker.delay_jobs = false
138
+ ```
139
+
138
140
  ## Usage
139
141
 
140
142
  ### Cucumber
@@ -168,7 +170,7 @@ Verify that the mailer is used correctly in the controller (this would apply to
168
170
  describe "POST /signup (#signup)" do
169
171
  it "should deliver the signup email" do
170
172
  # expect
171
- UserMailer.should_receive(:deliver_signup).with("email@example.com", "Jimmy Bean")
173
+ expect(UserMailer).to(receive(:deliver_signup).with("email@example.com", "Jimmy Bean"))
172
174
  # when
173
175
  post :signup, "Email" => "email@example.com", "Name" => "Jimmy Bean"
174
176
  end
@@ -189,19 +191,19 @@ describe "Signup Email" do
189
191
  end
190
192
 
191
193
  it "should be set to be delivered to the email passed in" do
192
- @email.should deliver_to("jojo@yahoo.com")
194
+ expect(@email).to deliver_to("jojo@yahoo.com")
193
195
  end
194
196
 
195
197
  it "should contain the user's message in the mail body" do
196
- @email.should have_body_text(/Jojo Binks/)
198
+ expect(@email).to have_body_text(/Jojo Binks/)
197
199
  end
198
200
 
199
201
  it "should contain a link to the confirmation link" do
200
- @email.should have_body_text(/#{confirm_account_url}/)
202
+ expect(@email).to have_body_text(/#{confirm_account_url}/)
201
203
  end
202
204
 
203
205
  it "should have the correct subject" do
204
- @email.should have_subject(/Account confirmation/)
206
+ expect(@email).to have_subject(/Account confirmation/)
205
207
  end
206
208
 
207
209
  end
@@ -217,7 +219,7 @@ This checks that the Reply-To header's email address (the bob@example.com of
217
219
 
218
220
  ```ruby
219
221
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
220
- email.should reply_to("support@myapp.com")
222
+ expect(email).to reply_to("support@myapp.com")
221
223
  ```
222
224
 
223
225
 
@@ -229,7 +231,7 @@ This checks that the To header's email addresses (the bob@example.com of
229
231
 
230
232
  ```ruby
231
233
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
232
- email.should deliver_to("jojo@yahoo.com")
234
+ expect(email).to deliver_to("jojo@yahoo.com")
233
235
  ```
234
236
 
235
237
 
@@ -241,7 +243,7 @@ This checks that the From header's email address (the bob@example.com of
241
243
 
242
244
  ```ruby
243
245
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
244
- email.should deliver_from("sally@yahoo.com")
246
+ expect(email).to deliver_from("sally@yahoo.com")
245
247
  ```
246
248
 
247
249
 
@@ -252,7 +254,7 @@ This checks that the BCC header's email addresses (the bob@example.com of
252
254
 
253
255
  ```ruby
254
256
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
255
- email.should bcc_to("sue@yahoo.com", "bill@yahoo.com")
257
+ expect(email).to bcc_to("sue@yahoo.com", "bill@yahoo.com")
256
258
  ```
257
259
 
258
260
 
@@ -263,7 +265,7 @@ This checks that the CC header's email addresses (the bob@example.com of
263
265
 
264
266
  ```ruby
265
267
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
266
- email.should cc_to("sue@yahoo.com", "bill@yahoo.com")
268
+ expect(email).to cc_to("sue@yahoo.com", "bill@yahoo.com")
267
269
  ```
268
270
 
269
271
 
@@ -273,7 +275,7 @@ This checks that the Subject header's value is set to the given subject.
273
275
 
274
276
  ```ruby
275
277
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
276
- email.should have_subject("Welcome!")
278
+ expect(email).to have_subject("Welcome!")
277
279
  ```
278
280
 
279
281
 
@@ -285,7 +287,7 @@ This checks that one of the given emails' subjects includes the subject.
285
287
  ```ruby
286
288
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
287
289
  email2 = UserMailer.forgot_password("jojo@yahoo.com", "Jojo Binks")
288
- [email, email2].should include_email_with_subject("Welcome!")
290
+ expect([email, email2]).to include_email_with_subject("Welcome!")
289
291
  ```
290
292
 
291
293
 
@@ -296,7 +298,7 @@ This checks that the text of the body has the given body.
296
298
 
297
299
  ```ruby
298
300
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
299
- email.should have_body_text(/Hi Jojo Binks,/)
301
+ expect(email).to have_body_text(/Hi Jojo Binks,/)
300
302
  ```
301
303
 
302
304
 
@@ -306,7 +308,7 @@ This checks that the expected key/value pair is in the headers of the email.
306
308
 
307
309
  ```ruby
308
310
  email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
309
- email.should have_header("X-Campaign", "1234abc")
311
+ expect(email).to have_header("X-Campaign", "1234abc")
310
312
  ```
311
313
 
312
314
  #### Using the helpers when not testing in isolation
@@ -341,4 +343,4 @@ assert_must deliver_to("jojo@yahoo.com"), email
341
343
 
342
344
  Ben Mabey, Aaron Gibralter, Mischa Fierer
343
345
 
344
- Please see History.txt for upcoming changsets and other contributors.
346
+ Please see History.txt for upcoming changesets and other contributors.
@@ -0,0 +1,19 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem "rake", "~> 10.3.2"
4
+ gem 'rails', '4.2.3'
5
+ gem 'sqlite3'
6
+
7
+ gem 'delayed_job', '~> 4.0.6'
8
+ gem 'delayed_job_active_record'
9
+ gem 'mimetype-fu', :require => 'mimetype_fu'
10
+ gem "minitest-rails"
11
+
12
+ group :test do
13
+ gem "cucumber-rails", :require => false
14
+ gem "database_cleaner"
15
+ gem 'capybara'
16
+ gem "rspec-rails"
17
+ gem "minitest-matchers"
18
+ gem "email_spec", :path => "../../", :require => "email_spec"
19
+ end
@@ -0,0 +1,180 @@
1
+ PATH
2
+ remote: ../../
3
+ specs:
4
+ email_spec (2.0.0)
5
+ htmlentities (~> 4.3.3)
6
+ launchy (~> 2.1)
7
+ mail (~> 2.6.3)
8
+
9
+ GEM
10
+ remote: http://rubygems.org/
11
+ specs:
12
+ actionmailer (4.2.3)
13
+ actionpack (= 4.2.3)
14
+ actionview (= 4.2.3)
15
+ activejob (= 4.2.3)
16
+ mail (~> 2.5, >= 2.5.4)
17
+ rails-dom-testing (~> 1.0, >= 1.0.5)
18
+ actionpack (4.2.3)
19
+ actionview (= 4.2.3)
20
+ activesupport (= 4.2.3)
21
+ rack (~> 1.6)
22
+ rack-test (~> 0.6.2)
23
+ rails-dom-testing (~> 1.0, >= 1.0.5)
24
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
25
+ actionview (4.2.3)
26
+ activesupport (= 4.2.3)
27
+ builder (~> 3.1)
28
+ erubis (~> 2.7.0)
29
+ rails-dom-testing (~> 1.0, >= 1.0.5)
30
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
+ activejob (4.2.3)
32
+ activesupport (= 4.2.3)
33
+ globalid (>= 0.3.0)
34
+ activemodel (4.2.3)
35
+ activesupport (= 4.2.3)
36
+ builder (~> 3.1)
37
+ activerecord (4.2.3)
38
+ activemodel (= 4.2.3)
39
+ activesupport (= 4.2.3)
40
+ arel (~> 6.0)
41
+ activesupport (4.2.3)
42
+ i18n (~> 0.7)
43
+ json (~> 1.7, >= 1.7.7)
44
+ minitest (~> 5.1)
45
+ thread_safe (~> 0.3, >= 0.3.4)
46
+ tzinfo (~> 1.1)
47
+ addressable (2.3.8)
48
+ arel (6.0.0)
49
+ builder (3.2.2)
50
+ capybara (2.4.4)
51
+ mime-types (>= 1.16)
52
+ nokogiri (>= 1.3.3)
53
+ rack (>= 1.0.0)
54
+ rack-test (>= 0.5.4)
55
+ xpath (~> 2.0)
56
+ cucumber (1.3.20)
57
+ builder (>= 2.1.2)
58
+ diff-lcs (>= 1.1.3)
59
+ gherkin (~> 2.12)
60
+ multi_json (>= 1.7.5, < 2.0)
61
+ multi_test (>= 0.1.2)
62
+ cucumber-rails (1.4.2)
63
+ capybara (>= 1.1.2, < 3)
64
+ cucumber (>= 1.3.8, < 2)
65
+ mime-types (>= 1.16, < 3)
66
+ nokogiri (~> 1.5)
67
+ rails (>= 3, < 5)
68
+ database_cleaner (1.4.1)
69
+ delayed_job (4.0.6)
70
+ activesupport (>= 3.0, < 5.0)
71
+ delayed_job_active_record (4.0.3)
72
+ activerecord (>= 3.0, < 5.0)
73
+ delayed_job (>= 3.0, < 4.1)
74
+ diff-lcs (1.2.5)
75
+ erubis (2.7.0)
76
+ gherkin (2.12.2)
77
+ multi_json (~> 1.3)
78
+ globalid (0.3.5)
79
+ activesupport (>= 4.1.0)
80
+ htmlentities (4.3.3)
81
+ i18n (0.7.0)
82
+ json (1.8.3)
83
+ launchy (2.4.3)
84
+ addressable (~> 2.3)
85
+ loofah (2.0.2)
86
+ nokogiri (>= 1.5.9)
87
+ mail (2.6.3)
88
+ mime-types (>= 1.16, < 3)
89
+ mime-types (2.6.1)
90
+ mimetype-fu (0.1.2)
91
+ mini_portile (0.6.2)
92
+ minitest (5.7.0)
93
+ minitest-matchers (1.4.1)
94
+ minitest (~> 5.0)
95
+ minitest-rails (2.2.0)
96
+ minitest (~> 5.7)
97
+ railties (~> 4.1)
98
+ multi_json (1.11.1)
99
+ multi_test (0.1.2)
100
+ nokogiri (1.6.6.2)
101
+ mini_portile (~> 0.6.0)
102
+ rack (1.6.4)
103
+ rack-test (0.6.3)
104
+ rack (>= 1.0)
105
+ rails (4.2.3)
106
+ actionmailer (= 4.2.3)
107
+ actionpack (= 4.2.3)
108
+ actionview (= 4.2.3)
109
+ activejob (= 4.2.3)
110
+ activemodel (= 4.2.3)
111
+ activerecord (= 4.2.3)
112
+ activesupport (= 4.2.3)
113
+ bundler (>= 1.3.0, < 2.0)
114
+ railties (= 4.2.3)
115
+ sprockets-rails
116
+ rails-deprecated_sanitizer (1.0.3)
117
+ activesupport (>= 4.2.0.alpha)
118
+ rails-dom-testing (1.0.6)
119
+ activesupport (>= 4.2.0.beta, < 5.0)
120
+ nokogiri (~> 1.6.0)
121
+ rails-deprecated_sanitizer (>= 1.0.1)
122
+ rails-html-sanitizer (1.0.2)
123
+ loofah (~> 2.0)
124
+ railties (4.2.3)
125
+ actionpack (= 4.2.3)
126
+ activesupport (= 4.2.3)
127
+ rake (>= 0.8.7)
128
+ thor (>= 0.18.1, < 2.0)
129
+ rake (10.3.2)
130
+ rspec-core (3.3.1)
131
+ rspec-support (~> 3.3.0)
132
+ rspec-expectations (3.3.0)
133
+ diff-lcs (>= 1.2.0, < 2.0)
134
+ rspec-support (~> 3.3.0)
135
+ rspec-mocks (3.3.1)
136
+ diff-lcs (>= 1.2.0, < 2.0)
137
+ rspec-support (~> 3.3.0)
138
+ rspec-rails (3.3.2)
139
+ actionpack (>= 3.0, < 4.3)
140
+ activesupport (>= 3.0, < 4.3)
141
+ railties (>= 3.0, < 4.3)
142
+ rspec-core (~> 3.3.0)
143
+ rspec-expectations (~> 3.3.0)
144
+ rspec-mocks (~> 3.3.0)
145
+ rspec-support (~> 3.3.0)
146
+ rspec-support (3.3.0)
147
+ sprockets (3.2.0)
148
+ rack (~> 1.0)
149
+ sprockets-rails (2.3.2)
150
+ actionpack (>= 3.0)
151
+ activesupport (>= 3.0)
152
+ sprockets (>= 2.8, < 4.0)
153
+ sqlite3 (1.3.10)
154
+ thor (0.19.1)
155
+ thread_safe (0.3.5)
156
+ tzinfo (1.2.2)
157
+ thread_safe (~> 0.1)
158
+ xpath (2.0.0)
159
+ nokogiri (~> 1.3)
160
+
161
+ PLATFORMS
162
+ ruby
163
+
164
+ DEPENDENCIES
165
+ capybara
166
+ cucumber-rails
167
+ database_cleaner
168
+ delayed_job (~> 4.0.6)
169
+ delayed_job_active_record
170
+ email_spec!
171
+ mimetype-fu
172
+ minitest-matchers
173
+ minitest-rails
174
+ rails (= 4.2.3)
175
+ rake (~> 10.3.2)
176
+ rspec-rails
177
+ sqlite3
178
+
179
+ BUNDLED WITH
180
+ 1.11.2
@@ -0,0 +1,5 @@
1
+ == Running features in this app
2
+
3
+ 1. Make sure you have latest bundler gem.
4
+ 2. cd into rails4_root and run `bundle install`
5
+ 3. run script/rails generate email_spec:steps
@@ -0,0 +1,11 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rdoc/task'
9
+ require 'delayed/tasks'
10
+
11
+ Rails4Root::Application.load_tasks
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,18 @@
1
+ class WelcomeController < ApplicationController
2
+ def signup
3
+ UserMailer.signup(params['Email'], params['Name']).deliver_now
4
+ end
5
+
6
+ def confirm
7
+ end
8
+
9
+ def newsletter
10
+ Delayed::Job.enqueue(NotifierJob.new(:newsletter, params['Email'],
11
+ params['Name']))
12
+ end
13
+
14
+ def attachments
15
+ UserMailer.email_with_attachment(params['Email'], params['Name'])
16
+ .deliver_now
17
+ end
18
+ end