bmabey-email_spec 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. data/History.txt +12 -2
  2. data/Rakefile +16 -1
  3. data/examples/rails_root/app/controllers/{application.rb → application_controller.rb} +0 -0
  4. data/examples/rails_root/app/models/user_mailer.rb +1 -2
  5. data/examples/rails_root/config/boot.rb +1 -0
  6. data/examples/rails_root/config/environment.rb +2 -2
  7. data/examples/rails_root/config/environments/test.rb +6 -10
  8. data/examples/rails_root/features/errors.feature +31 -41
  9. data/examples/rails_root/features/example.feature +44 -41
  10. data/examples/rails_root/features/step_definitions/user_steps.rb +11 -8
  11. data/examples/rails_root/features/step_definitions/webrat_steps.rb +72 -39
  12. data/examples/rails_root/features/support/env.rb +15 -4
  13. data/examples/rails_root/features/support/paths.rb +21 -0
  14. data/examples/rails_root/script/cucumber +6 -4
  15. data/examples/rails_root/spec/models/user_mailer_spec.rb +3 -3
  16. data/examples/rails_root/spec/spec_helper.rb +1 -1
  17. data/lib/email_spec/deliveries.rb +0 -2
  18. data/lib/email_spec/helpers.rb +48 -31
  19. data/rails_generators/email_spec/templates/email_steps.rb +66 -30
  20. metadata +72 -83
  21. data/examples/rails_root/cucumber.yml +0 -1
  22. data/examples/rails_root/features/step_definitions/email_steps.rb +0 -86
  23. data/examples/rails_root/stories/all.rb +0 -4
  24. data/examples/rails_root/stories/helper.rb +0 -3
  25. data/examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/email_spec_generator.rb +0 -17
  26. data/examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/templates/email_steps.rb +0 -86
@@ -1,19 +1,30 @@
1
1
  # Sets up the Rails environment for Cucumber
2
- ENV["RAILS_ENV"] = "test"
2
+ ENV["RAILS_ENV"] ||= "test"
3
3
  require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
4
4
  require 'cucumber/rails/world'
5
+
6
+ # Comment out the next line if you don't want Cucumber Unicode support
7
+ require 'cucumber/formatter/unicode'
8
+
9
+ # Comment out the next line if you don't want transactions to
10
+ # open/roll back around each scenario
5
11
  Cucumber::Rails.use_transactional_fixtures
6
12
 
13
+ # Comment out the next line if you want Rails' own error handling
14
+ # (e.g. rescue_action_in_public / rescue_responses / rescue_from)
15
+ Cucumber::Rails.bypass_rescue
16
+
7
17
  require 'webrat'
8
- require 'cucumber/rails/rspec'
9
- require 'webrat/core/matchers'
18
+ require 'cucumber/webrat/table_locator' # Lets you do table.diff!(table_at('#my_table').to_a)
10
19
 
11
20
  Webrat.configure do |config|
12
21
  config.mode = :rails
13
22
  end
14
23
 
24
+ require 'cucumber/rails/rspec'
25
+ require 'webrat/core/matchers'
15
26
 
16
-
27
+ # email testing in cucumber
17
28
  require File.expand_path(File.dirname(__FILE__) + '../../../../../lib/email_spec')
18
29
  require 'email_spec/cucumber'
19
30
 
@@ -0,0 +1,21 @@
1
+ module NavigationHelpers
2
+ # Maps a name to a path. Used by the
3
+ #
4
+ # When /^I go to (.+)$/ do |page_name|
5
+ #
6
+ # step definition in webrat_steps.rb
7
+ #
8
+ def path_to(page_name)
9
+ case page_name
10
+
11
+ when /the homepage/
12
+ '/'
13
+
14
+ else
15
+ raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
16
+ "Now, go and add a mapping in #{__FILE__}"
17
+ end
18
+ end
19
+ end
20
+
21
+ World(NavigationHelpers)
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
  begin
3
3
  load File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/cucumber/bin/cucumber")
4
- rescue LoadError
5
- require "rubygems"
6
- load File.join(Gem.bindir, "cucumber")
7
- end
4
+ rescue LoadError => e
5
+ raise unless e.to_s =~ /cucumber/
6
+ require 'rubygems'
7
+ require 'cucumber'
8
+ load Cucumber::BINARY
9
+ end
@@ -3,12 +3,12 @@ require File.dirname(__FILE__) + '/../spec_helper'
3
3
  # These two example groups are specifying the exact same behavior. However, the documentation style is different
4
4
  # and the value that each one provides is different with various trade-offs. Run these examples with the specdoc
5
5
  # formatter to get an idea of how they differ.
6
-
7
6
  # Example of documenting the behaviour explicitly and expressing the intent in the example's sentence.
8
7
  describe "Signup Email" do
9
8
  include EmailSpec::Helpers
10
9
  include EmailSpec::Matchers
11
10
  include ActionController::UrlWriter
11
+ default_url_options = {:host => 'example.com'}
12
12
 
13
13
  before(:all) do
14
14
  @email = UserMailer.create_signup("jojo@yahoo.com", "Jojo Binks")
@@ -25,7 +25,7 @@ describe "Signup Email" do
25
25
  end
26
26
 
27
27
  it "should contain a link to the confirmation page" do
28
- @email.should have_body_text(/#{confirm_account_url}/)
28
+ @email.should have_body_text(/#{confirm_account_url(:host => 'example.com')}/)
29
29
  end
30
30
 
31
31
  it { should have_subject(/Account confirmation/) }
@@ -45,7 +45,7 @@ describe "Signup Email" do
45
45
 
46
46
  subject { @email }
47
47
 
48
- it { should have_body_text(/#{confirm_account_url}/) }
48
+ it { should have_body_text(/#{confirm_account_url(:host => 'example.com')}/) }
49
49
  it { should have_subject(/Account confirmation/) }
50
50
 
51
51
  describe "sent with email address of 'jojo@yahoo.com', and users name 'Jojo Binks'" do
@@ -6,7 +6,7 @@ require 'spec'
6
6
  require 'spec/rails'
7
7
 
8
8
  require File.expand_path(File.dirname(__FILE__) + "/model_factory.rb")
9
- require (Rails.root + '/../../lib/email_spec.rb')
9
+ require (RAILS_ROOT + '/../../lib/email_spec.rb')
10
10
 
11
11
  Spec::Runner.configure do |config|
12
12
  config.include(Fixjour)
@@ -13,7 +13,6 @@ module EmailSpec
13
13
  end
14
14
 
15
15
  def mailbox_for(address)
16
- address = AddressConverter.instance.convert(address)
17
16
  ActionMailer::Base.deliveries.select { |m| m.to.include?(address) || (m.bcc && m.bcc.include?(address)) || (m.cc && m.cc.include?(address)) }
18
17
  end
19
18
  end
@@ -36,7 +35,6 @@ module EmailSpec
36
35
  end
37
36
 
38
37
  def mailbox_for(address)
39
- address = AddressConverter.instance.convert(address)
40
38
  Email.all.select { |email| email.to.include?(address) || email.bcc.include?(address) || email.cc.include?(address) }.map{ |email| parse_to_tmail(email) }
41
39
  end
42
40
 
@@ -5,29 +5,28 @@ module EmailSpec
5
5
 
6
6
  module Helpers
7
7
  include Deliveries
8
-
8
+
9
9
  def visit_in_email(link_text)
10
10
  visit(parse_email_for_link(current_email, link_text))
11
11
  end
12
-
12
+
13
13
  def click_email_link_matching(regex, email = current_email)
14
14
  url = links_in_email(email).detect { |link| link =~ regex }
15
15
  raise "No link found matching #{regex.inspect} in #{email.body}" unless url
16
16
  request_uri = URI::parse(url).request_uri
17
17
  visit request_uri
18
18
  end
19
-
19
+
20
20
  def click_first_link_in_email(email = current_email)
21
21
  link = links_in_email(email).first
22
22
  request_uri = URI::parse(link).request_uri
23
23
  visit request_uri
24
24
  end
25
-
25
+
26
26
  def open_email(address, opts={})
27
- address = convert_address(address)
28
27
  set_current_email(find_email!(address, opts))
29
28
  end
30
-
29
+
31
30
  alias_method :open_email_for, :open_email
32
31
 
33
32
  def open_last_email
@@ -35,38 +34,35 @@ module EmailSpec
35
34
  end
36
35
 
37
36
  def open_last_email_for(address)
38
- address = convert_address(address)
39
37
  set_current_email(mailbox_for(address).last)
40
38
  end
41
-
39
+
42
40
  def current_email(address=nil)
43
41
  address = convert_address(address)
44
42
  email = address ? email_spec_hash[:current_emails][address] : email_spec_hash[:current_email]
45
- raise Spec::Expectations::ExpectationNotMetError, "Expected an open email but none was found. Did you forget to call open_email?" unless email
43
+ raise Spec::Expectations::ExpectationNotMetError, "Expected an open email but none was found. Did you forget to call open_email?" unless email
46
44
  email
47
45
  end
48
-
46
+
49
47
  def unread_emails_for(address)
50
- address = convert_address(address)
51
48
  mailbox_for(address) - read_emails_for(address)
52
49
  end
53
-
50
+
54
51
  def read_emails_for(address)
55
- address = convert_address(address)
56
- email_spec_hash[:read_emails][address] ||= []
52
+ email_spec_hash[:read_emails][convert_address(address)] ||= []
57
53
  end
58
-
54
+
59
55
  def find_email(address, opts={})
60
56
  address = convert_address(address)
61
- if opts[:with_subject]
62
- email = mailbox_for(address).find { |m| m.subject =~ Regexp.new(opts[:with_subject]) }
57
+ if opts[:with_subject]
58
+ mailbox_for(address).find { |m| m.subject =~ Regexp.new(opts[:with_subject]) }
63
59
  elsif opts[:with_text]
64
- email = mailbox_for(address).find { |m| m.body =~ Regexp.new(opts[:with_text]) }
60
+ mailbox_for(address).find { |m| m.body =~ Regexp.new(opts[:with_text]) }
65
61
  else
66
- email = mailbox_for(address).first
62
+ mailbox_for(address).first
67
63
  end
68
64
  end
69
-
65
+
70
66
  def links_in_email(email)
71
67
  URI.extract(email.body, ['http', 'https'])
72
68
  end
@@ -78,7 +74,6 @@ module EmailSpec
78
74
  end
79
75
 
80
76
  def find_email!(address, opts={})
81
- address = convert_address(address)
82
77
  email = find_email(address, opts)
83
78
  if email.nil?
84
79
  error = "#{opts.keys.first.to_s.humanize unless opts.empty?} #{('"' + opts.values.first.to_s.humanize + '"') unless opts.empty?}"
@@ -90,43 +85,65 @@ module EmailSpec
90
85
  def set_current_email(email)
91
86
  return unless email
92
87
  email.to.each do |to|
93
- read_emails_for(to) << email
88
+ read_emails_for(to) << email
94
89
  email_spec_hash[:current_emails][to] = email
95
90
  end
96
91
  email_spec_hash[:current_email] = email
97
92
  end
98
-
93
+
99
94
  def parse_email_for_link(email, text_or_regex)
100
95
  email.should have_body_text(text_or_regex)
101
-
102
- url = parse_email_for_explicit_link(email, text_or_regex)
96
+
97
+ url = parse_email_for_explicit_link(email, text_or_regex)
103
98
  url ||= parse_email_for_anchor_text_link(email, text_or_regex)
104
99
 
105
100
  raise "No link found matching #{text_or_regex.inspect} in #{email}" unless url
106
101
  url
107
102
  end
108
-
103
+
109
104
  # e.g. confirm in http://confirm
110
105
  def parse_email_for_explicit_link(email, regex)
111
106
  regex = /#{Regexp.escape(regex)}/ unless regex.is_a?(Regexp)
112
107
  url = links_in_email(email).detect { |link| link =~ regex }
113
108
  URI::parse(url).request_uri if url
114
109
  end
115
-
110
+
116
111
  # e.g. Click here in <a href="http://confirm">Click here</a>
117
112
  def parse_email_for_anchor_text_link(email, link_text)
118
113
  email.body =~ %r{<a[^>]*href=['"]?([^'"]*)['"]?[^>]*?>[^<]*?#{link_text}[^<]*?</a>}
119
114
  URI.split($~[1])[5..-1].compact!.join("?").gsub("&amp;", "&")
120
- # sub correct ampersand after rails switches it (http://dev.rubyonrails.org/ticket/4002)
115
+ # sub correct ampersand after rails switches it (http://dev.rubyonrails.org/ticket/4002)
121
116
  end
122
117
 
118
+ def parse_email_count(amount)
119
+ case amount
120
+ when "no"
121
+ 0
122
+ when "an"
123
+ 1
124
+ else
125
+ amount.to_i
126
+ end
127
+ end
123
128
 
124
129
  attr_reader :last_email_address
125
-
130
+
126
131
  def convert_address(address)
127
- @last_email_address = address
128
- AddressConverter.instance.convert(address)
132
+ @last_email_address = (address || current_email_address)
133
+ AddressConverter.instance.convert(@last_email_address)
134
+ end
135
+
136
+
137
+ def mailbox_for(address)
138
+ super(convert_address(address)) # super resides in Deliveries
129
139
  end
140
+
141
+ def email_spec_deprecate(text)
142
+ puts ""
143
+ puts "DEPRECATION: #{text.split.join(' ')}"
144
+ puts ""
145
+ end
146
+
130
147
  end
131
148
  end
132
149
 
@@ -1,9 +1,10 @@
1
- #Commonly used email steps
1
+ # Commonly used email steps
2
2
  #
3
3
  # To add your own steps make a custom_email_steps.rb
4
4
  # The provided methods are:
5
5
  #
6
- # reset_mailer
6
+ # last_email_address
7
+ # reset_mailer
7
8
  # open_last_email
8
9
  # visit_in_email
9
10
  # unread_emails_for
@@ -12,6 +13,16 @@
12
13
  # open_email
13
14
  # read_emails_for
14
15
  # find_email
16
+ #
17
+ # General form for email scenarios are:
18
+ # - clear the email queue (done automatically by email_spec)
19
+ # - execute steps that sends an email
20
+ # - check the user received an/no/[0-9] emails
21
+ # - open the email
22
+ # - inspect the email contents
23
+ # - interact with the email (e.g. click links)
24
+ #
25
+ # The Cucumber steps below are setup in this order.
15
26
 
16
27
  module EmailHelpers
17
28
  def current_email_address
@@ -21,63 +32,88 @@ module EmailHelpers
21
32
  last_email_address || "example@example.com"
22
33
  end
23
34
  end
35
+
24
36
  World(EmailHelpers)
25
37
 
26
- # Use this step to reset the e-mail queue within a scenario.
38
+ #
39
+ # Reset the e-mail queue within a scenario.
27
40
  # This is done automatically before each scenario.
41
+ #
42
+
28
43
  Given /^(?:a clear email queue|no emails have been sent)$/ do
29
44
  reset_mailer
30
45
  end
31
46
 
32
- # Use this step to open the most recently sent e-mail.
33
- When /^(?:I|they) open the email$/ do
34
- open_email(current_email_address)
35
- end
47
+ #
48
+ # Check how many emails have been sent/received
49
+ #
36
50
 
37
- When %r{^(?:I|they) follow "([^"]*?)" in the email$} do |link|
38
- visit_in_email(link)
51
+ Then /^(?:I|they|"([^"]*?)") should receive (an|no|\d+) emails?$/ do |address, amount|
52
+ unread_emails_for(address).size.should == parse_email_count(amount)
39
53
  end
40
54
 
41
- Then /^(?:I|they) should receive (an|\d+) emails?$/ do |amount|
42
- amount = 1 if amount == "an"
43
- unread_emails_for(current_email_address).size.should == amount.to_i
55
+ Then /^(?:I|they|"([^"]*?)") should have (an|no|\d+) emails?$/ do |address, amount|
56
+ mailbox_for(address).size.should == parse_email_count(amount)
44
57
  end
45
58
 
46
- Then /^(?:I|they) should not receive any emails?$/ do
47
- unread_emails_for(current_email_address).size.should == 0
59
+ # DEPRECATED
60
+ # The following methods are left in for backwards compatibility and
61
+ # should be removed by version 0.3.5.
62
+ Then /^(?:I|they|"([^"]*?)") should not receive an email$/ do |address|
63
+ email_spec_deprecate "The step 'I/they/[email] should not receive an email' is no longer supported.
64
+ Please use 'I/they/[email] should receive no emails' instead."
65
+ unread_emails_for(address).size.should == 0
48
66
  end
49
67
 
50
- Then %r{^"([^"]*?)" should receive (an|\d+) emails?$} do |address, amount|
51
- amount = 1 if amount == "an"
52
- unread_emails_for(address).size.should == amount.to_i
68
+ #
69
+ # Accessing emails
70
+ #
71
+
72
+ # Opens the most recently received email
73
+ When /^(?:I|they|"([^"]*?)") opens? the email$/ do |address|
74
+ open_email(address)
53
75
  end
54
76
 
55
- Then %r{^"([^"]*?)" should have (\d+) emails?$} do |address, n|
56
- mailbox_for(address).size.should == n.to_i
77
+ When /^(?:I|they|"([^"]*?)") opens? the email with subject "([^"]*?)"$/ do |address, subject|
78
+ open_email(address, :with_subject => subject)
57
79
  end
58
80
 
59
- Then %r{^"([^"]*?)" should not receive an email$} do |address|
60
- find_email(address).should be_nil
81
+ When /^(?:I|they|"([^"]*?)") opens? the email with text "([^"]*?)"$/ do |address, text|
82
+ open_email(address, :with_text => text)
61
83
  end
62
84
 
63
- Then %r{^(?:I|they) should see "([^"]*?)" in the subject$} do |text|
85
+ #
86
+ # Inspect the Email Contents
87
+ #
88
+
89
+ Then /^(?:I|they) should see "([^"]*?)" in the email subject$/ do |text|
64
90
  current_email.should have_subject(Regexp.new(text))
65
91
  end
66
92
 
67
- Then %r{^(?:I|they) should see "([^"]*?)" in the email$} do |text|
93
+ Then /^(?:I|they) should see "([^"]*?)" in the email body$/ do |text|
68
94
  current_email.body.should =~ Regexp.new(text)
69
95
  end
70
96
 
71
- When %r{^"([^"]*?)" opens? the email$} do |address|
72
- open_email(address)
97
+ # DEPRECATED
98
+ # The following methods are left in for backwards compatibility and
99
+ # should be removed by version 0.3.5.
100
+ Then /^(?:I|they) should see "([^"]*?)" in the subject$/ do |text|
101
+ email_spec_deprecate "The step 'I/they should see [text] in the subject' is no longer supported.
102
+ Please use 'I/they should see [text] in the email subject' instead."
103
+ current_email.should have_subject(Regexp.new(text))
73
104
  end
74
-
75
- When %r{^"([^"]*?)" opens? the email with subject "([^"]*?)"$} do |address, subject|
76
- open_email(address, :with_subject => subject)
105
+ Then /^(?:I|they) should see "([^"]*?)" in the email$/ do |text|
106
+ email_spec_deprecate "The step 'I/they should see [text] in the email' is no longer supported.
107
+ Please use 'I/they should see [text] in the email body' instead."
108
+ current_email.body.should =~ Regexp.new(text)
77
109
  end
78
110
 
79
- When %r{^"([^"]*?)" opens? the email with text "([^"]*?)"$} do |address, text|
80
- open_email(address, :with_text => text)
111
+ #
112
+ # Interact with Email Contents
113
+ #
114
+
115
+ When /^(?:I|they) follow "([^"]*?)" in the email$/ do |link|
116
+ visit_in_email(link)
81
117
  end
82
118
 
83
119
  When /^(?:I|they) click the first link in the email$/ do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmabey-email_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Mabey
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2009-08-13 00:00:00 -07:00
14
+ date: 2009-08-19 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies: []
17
17
 
@@ -29,78 +29,6 @@ files:
29
29
  - MIT-LICENSE.txt
30
30
  - README.rdoc
31
31
  - Rakefile
32
- - examples/rails_root/Rakefile
33
- - examples/rails_root/app/controllers/application.rb
34
- - examples/rails_root/app/controllers/welcome_controller.rb
35
- - examples/rails_root/app/helpers/application_helper.rb
36
- - examples/rails_root/app/helpers/welcome_helper.rb
37
- - examples/rails_root/app/models/user.rb
38
- - examples/rails_root/app/models/user_mailer.rb
39
- - examples/rails_root/app/views/user_mailer/signup.erb
40
- - examples/rails_root/app/views/welcome/confirm.html.erb
41
- - examples/rails_root/app/views/welcome/index.html.erb
42
- - examples/rails_root/app/views/welcome/signup.html.erb
43
- - examples/rails_root/config/boot.rb
44
- - examples/rails_root/config/database.yml
45
- - examples/rails_root/config/environment.rb
46
- - examples/rails_root/config/environments/development.rb
47
- - examples/rails_root/config/environments/production.rb
48
- - examples/rails_root/config/environments/test.rb
49
- - examples/rails_root/config/initializers/inflections.rb
50
- - examples/rails_root/config/initializers/mime_types.rb
51
- - examples/rails_root/config/initializers/new_rails_defaults.rb
52
- - examples/rails_root/config/routes.rb
53
- - examples/rails_root/cucumber.yml
54
- - examples/rails_root/db/migrate/20090125013728_create_users.rb
55
- - examples/rails_root/db/schema.rb
56
- - examples/rails_root/doc/README_FOR_APP
57
- - examples/rails_root/features/errors.feature
58
- - examples/rails_root/features/example.feature
59
- - examples/rails_root/features/step_definitions/email_steps.rb
60
- - examples/rails_root/features/step_definitions/user_steps.rb
61
- - examples/rails_root/features/step_definitions/webrat_steps.rb
62
- - examples/rails_root/features/support/env.rb
63
- - examples/rails_root/public/404.html
64
- - examples/rails_root/public/422.html
65
- - examples/rails_root/public/500.html
66
- - examples/rails_root/public/dispatch.rb
67
- - examples/rails_root/public/favicon.ico
68
- - examples/rails_root/public/images/rails.png
69
- - examples/rails_root/public/javascripts/application.js
70
- - examples/rails_root/public/javascripts/controls.js
71
- - examples/rails_root/public/javascripts/dragdrop.js
72
- - examples/rails_root/public/javascripts/effects.js
73
- - examples/rails_root/public/javascripts/prototype.js
74
- - examples/rails_root/public/robots.txt
75
- - examples/rails_root/script/about
76
- - examples/rails_root/script/autospec
77
- - examples/rails_root/script/console
78
- - examples/rails_root/script/cucumber
79
- - examples/rails_root/script/dbconsole
80
- - examples/rails_root/script/destroy
81
- - examples/rails_root/script/generate
82
- - examples/rails_root/script/performance/benchmarker
83
- - examples/rails_root/script/performance/profiler
84
- - examples/rails_root/script/performance/request
85
- - examples/rails_root/script/plugin
86
- - examples/rails_root/script/process/inspector
87
- - examples/rails_root/script/process/reaper
88
- - examples/rails_root/script/process/spawner
89
- - examples/rails_root/script/runner
90
- - examples/rails_root/script/server
91
- - examples/rails_root/script/spec
92
- - examples/rails_root/script/spec_server
93
- - examples/rails_root/spec/controllers/welcome_controller_spec.rb
94
- - examples/rails_root/spec/model_factory.rb
95
- - examples/rails_root/spec/models/user_mailer_spec.rb
96
- - examples/rails_root/spec/models/user_spec.rb
97
- - examples/rails_root/spec/rcov.opts
98
- - examples/rails_root/spec/spec.opts
99
- - examples/rails_root/spec/spec_helper.rb
100
- - examples/rails_root/stories/all.rb
101
- - examples/rails_root/stories/helper.rb
102
- - examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/email_spec_generator.rb
103
- - examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/templates/email_steps.rb
104
32
  - install.rb
105
33
  - lib/email-spec.rb
106
34
  - lib/email_spec.rb
@@ -112,9 +40,6 @@ files:
112
40
  - lib/email_spec/matchers.rb
113
41
  - rails_generators/email_spec/email_spec_generator.rb
114
42
  - rails_generators/email_spec/templates/email_steps.rb
115
- - spec/email_spec/matchers_spec.rb
116
- - spec/spec.opts
117
- - spec/spec_helper.rb
118
43
  has_rdoc: false
119
44
  homepage: http://github.com/bmabey/email-spec/
120
45
  licenses:
@@ -143,36 +68,100 @@ signing_key:
143
68
  specification_version: 3
144
69
  summary: Easily test email in rspec and cucumber
145
70
  test_files:
71
+ - spec/email_spec
146
72
  - spec/email_spec/matchers_spec.rb
73
+ - spec/spec.opts
147
74
  - spec/spec_helper.rb
148
- - examples/rails_root/app/controllers/application.rb
75
+ - examples/rails_root
76
+ - examples/rails_root/app
77
+ - examples/rails_root/app/controllers
78
+ - examples/rails_root/app/controllers/application_controller.rb
149
79
  - examples/rails_root/app/controllers/welcome_controller.rb
80
+ - examples/rails_root/app/helpers
150
81
  - examples/rails_root/app/helpers/application_helper.rb
151
82
  - examples/rails_root/app/helpers/welcome_helper.rb
83
+ - examples/rails_root/app/models
152
84
  - examples/rails_root/app/models/user.rb
153
85
  - examples/rails_root/app/models/user_mailer.rb
86
+ - examples/rails_root/app/views
87
+ - examples/rails_root/app/views/user_mailer
88
+ - examples/rails_root/app/views/user_mailer/signup.erb
89
+ - examples/rails_root/app/views/welcome
90
+ - examples/rails_root/app/views/welcome/confirm.html.erb
91
+ - examples/rails_root/app/views/welcome/index.html.erb
92
+ - examples/rails_root/app/views/welcome/signup.html.erb
93
+ - examples/rails_root/config
154
94
  - examples/rails_root/config/boot.rb
95
+ - examples/rails_root/config/database.yml
155
96
  - examples/rails_root/config/environment.rb
97
+ - examples/rails_root/config/environments
156
98
  - examples/rails_root/config/environments/development.rb
157
99
  - examples/rails_root/config/environments/production.rb
158
100
  - examples/rails_root/config/environments/test.rb
101
+ - examples/rails_root/config/initializers
159
102
  - examples/rails_root/config/initializers/inflections.rb
160
103
  - examples/rails_root/config/initializers/mime_types.rb
161
104
  - examples/rails_root/config/initializers/new_rails_defaults.rb
162
105
  - examples/rails_root/config/routes.rb
106
+ - examples/rails_root/db
107
+ - examples/rails_root/db/migrate
163
108
  - examples/rails_root/db/migrate/20090125013728_create_users.rb
164
109
  - examples/rails_root/db/schema.rb
165
- - examples/rails_root/features/step_definitions/email_steps.rb
110
+ - examples/rails_root/doc
111
+ - examples/rails_root/doc/README_FOR_APP
112
+ - examples/rails_root/features
113
+ - examples/rails_root/features/errors.feature
114
+ - examples/rails_root/features/example.feature
115
+ - examples/rails_root/features/step_definitions
166
116
  - examples/rails_root/features/step_definitions/user_steps.rb
167
117
  - examples/rails_root/features/step_definitions/webrat_steps.rb
118
+ - examples/rails_root/features/support
168
119
  - examples/rails_root/features/support/env.rb
120
+ - examples/rails_root/features/support/paths.rb
121
+ - examples/rails_root/public
122
+ - examples/rails_root/public/404.html
123
+ - examples/rails_root/public/422.html
124
+ - examples/rails_root/public/500.html
169
125
  - examples/rails_root/public/dispatch.rb
126
+ - examples/rails_root/public/favicon.ico
127
+ - examples/rails_root/public/images
128
+ - examples/rails_root/public/images/rails.png
129
+ - examples/rails_root/public/javascripts
130
+ - examples/rails_root/public/javascripts/application.js
131
+ - examples/rails_root/public/javascripts/controls.js
132
+ - examples/rails_root/public/javascripts/dragdrop.js
133
+ - examples/rails_root/public/javascripts/effects.js
134
+ - examples/rails_root/public/javascripts/prototype.js
135
+ - examples/rails_root/public/robots.txt
136
+ - examples/rails_root/Rakefile
137
+ - examples/rails_root/script
138
+ - examples/rails_root/script/about
139
+ - examples/rails_root/script/autospec
140
+ - examples/rails_root/script/console
141
+ - examples/rails_root/script/cucumber
142
+ - examples/rails_root/script/dbconsole
143
+ - examples/rails_root/script/destroy
144
+ - examples/rails_root/script/generate
145
+ - examples/rails_root/script/performance
146
+ - examples/rails_root/script/performance/benchmarker
147
+ - examples/rails_root/script/performance/profiler
148
+ - examples/rails_root/script/performance/request
149
+ - examples/rails_root/script/plugin
150
+ - examples/rails_root/script/process
151
+ - examples/rails_root/script/process/inspector
152
+ - examples/rails_root/script/process/reaper
153
+ - examples/rails_root/script/process/spawner
154
+ - examples/rails_root/script/runner
155
+ - examples/rails_root/script/server
156
+ - examples/rails_root/script/spec
157
+ - examples/rails_root/script/spec_server
158
+ - examples/rails_root/spec
159
+ - examples/rails_root/spec/controllers
170
160
  - examples/rails_root/spec/controllers/welcome_controller_spec.rb
171
161
  - examples/rails_root/spec/model_factory.rb
162
+ - examples/rails_root/spec/models
172
163
  - examples/rails_root/spec/models/user_mailer_spec.rb
173
164
  - examples/rails_root/spec/models/user_spec.rb
165
+ - examples/rails_root/spec/rcov.opts
166
+ - examples/rails_root/spec/spec.opts
174
167
  - examples/rails_root/spec/spec_helper.rb
175
- - examples/rails_root/stories/all.rb
176
- - examples/rails_root/stories/helper.rb
177
- - examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/email_spec_generator.rb
178
- - examples/rails_root/vendor/plugins/email_spec/rails_generators/email_spec/templates/email_steps.rb