email_spec 2.1.0 → 2.1.1

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.
@@ -1,78 +1,86 @@
1
1
  PATH
2
- remote: ../../
2
+ remote: ../..
3
3
  specs:
4
- email_spec (2.0.0)
4
+ email_spec (2.1.0)
5
5
  htmlentities (~> 4.3.3)
6
6
  launchy (~> 2.1)
7
- mail (~> 2.6.3)
7
+ mail (~> 2.6)
8
8
 
9
9
  GEM
10
10
  remote: http://rubygems.org/
11
11
  specs:
12
- addressable (2.3.8)
13
- builder (3.2.2)
14
- capybara (2.4.4)
12
+ addressable (2.5.1)
13
+ public_suffix (~> 2.0, >= 2.0.2)
14
+ builder (3.2.3)
15
+ capybara (2.14.0)
16
+ addressable
15
17
  mime-types (>= 1.16)
16
18
  nokogiri (>= 1.3.3)
17
19
  rack (>= 1.0.0)
18
20
  rack-test (>= 0.5.4)
19
21
  xpath (~> 2.0)
20
- cucumber (2.0.0)
22
+ cucumber (2.4.0)
21
23
  builder (>= 2.1.2)
22
- cucumber-core (~> 1.1.3)
24
+ cucumber-core (~> 1.5.0)
25
+ cucumber-wire (~> 0.0.1)
23
26
  diff-lcs (>= 1.1.3)
24
- gherkin (~> 2.12)
27
+ gherkin (~> 4.0)
25
28
  multi_json (>= 1.7.5, < 2.0)
26
29
  multi_test (>= 0.1.2)
27
- cucumber-core (1.1.3)
28
- gherkin (~> 2.12.0)
30
+ cucumber-core (1.5.0)
31
+ gherkin (~> 4.0)
29
32
  cucumber-sinatra (0.5.0)
30
33
  templater (>= 1.0.0)
31
- diff-lcs (1.2.5)
34
+ cucumber-wire (0.0.1)
35
+ diff-lcs (1.3)
32
36
  extlib (0.9.16)
33
- gherkin (2.12.2)
34
- multi_json (~> 1.3)
35
- highline (1.7.2)
36
- htmlentities (4.3.3)
37
+ gherkin (4.1.3)
38
+ highline (1.7.8)
39
+ htmlentities (4.3.4)
37
40
  launchy (2.4.3)
38
41
  addressable (~> 2.3)
39
- mail (2.6.3)
40
- mime-types (>= 1.16, < 3)
41
- mime-types (2.6.1)
42
- mini_portile (0.6.2)
43
- multi_json (1.11.1)
42
+ mail (2.6.5)
43
+ mime-types (>= 1.16, < 4)
44
+ mime-types (3.1)
45
+ mime-types-data (~> 3.2015)
46
+ mime-types-data (3.2016.0521)
47
+ mini_portile2 (2.1.0)
48
+ multi_json (1.12.1)
44
49
  multi_test (0.1.2)
45
- nokogiri (1.6.6.2)
46
- mini_portile (~> 0.6.0)
50
+ mustermann (1.0.0)
51
+ nokogiri (1.7.2)
52
+ mini_portile2 (~> 2.1.0)
47
53
  pony (1.11)
48
54
  mail (>= 2.0)
49
- rack (1.6.4)
50
- rack-protection (1.5.3)
55
+ public_suffix (2.0.5)
56
+ rack (2.0.3)
57
+ rack-protection (2.0.0)
51
58
  rack
52
59
  rack-test (0.6.3)
53
60
  rack (>= 1.0)
54
- rspec (3.3.0)
55
- rspec-core (~> 3.3.0)
56
- rspec-expectations (~> 3.3.0)
57
- rspec-mocks (~> 3.3.0)
58
- rspec-core (3.3.1)
59
- rspec-support (~> 3.3.0)
60
- rspec-expectations (3.3.0)
61
+ rspec (3.6.0)
62
+ rspec-core (~> 3.6.0)
63
+ rspec-expectations (~> 3.6.0)
64
+ rspec-mocks (~> 3.6.0)
65
+ rspec-core (3.6.0)
66
+ rspec-support (~> 3.6.0)
67
+ rspec-expectations (3.6.0)
61
68
  diff-lcs (>= 1.2.0, < 2.0)
62
- rspec-support (~> 3.3.0)
63
- rspec-mocks (3.3.1)
69
+ rspec-support (~> 3.6.0)
70
+ rspec-mocks (3.6.0)
64
71
  diff-lcs (>= 1.2.0, < 2.0)
65
- rspec-support (~> 3.3.0)
66
- rspec-support (3.3.0)
67
- sinatra (1.4.6)
68
- rack (~> 1.4)
69
- rack-protection (~> 1.4)
70
- tilt (>= 1.3, < 3)
72
+ rspec-support (~> 3.6.0)
73
+ rspec-support (3.6.0)
74
+ sinatra (2.0.0)
75
+ mustermann (~> 1.0)
76
+ rack (~> 2.0)
77
+ rack-protection (= 2.0.0)
78
+ tilt (~> 2.0)
71
79
  templater (1.0.0)
72
80
  diff-lcs (>= 1.1.2)
73
81
  extlib (>= 0.9.5)
74
82
  highline (>= 1.4.0)
75
- tilt (2.0.1)
83
+ tilt (2.0.7)
76
84
  xpath (2.0.0)
77
85
  nokogiri (~> 1.3)
78
86
 
@@ -92,4 +100,4 @@ DEPENDENCIES
92
100
  xpath
93
101
 
94
102
  BUNDLED WITH
95
- 1.10.5
103
+ 1.14.6
@@ -17,7 +17,7 @@ module EmailSpec
17
17
 
18
18
  def self.save_and_open_all_html_emails
19
19
  all_emails.each_with_index do |m, index|
20
- if m.multipart? && html_part = m.parts.detect{ |p| p.content_type.include?('text/html') }
20
+ if m.multipart? && m.parts.detect{ |p| p.content_type.include?('text/html') }
21
21
  filename = tmp_email_filename("-#{index}.html")
22
22
  File.open(filename, "w") do |f|
23
23
  f.write m.parts[1].body
@@ -6,8 +6,8 @@ module EmailSpec
6
6
  module Helpers
7
7
  include Deliveries
8
8
 
9
- A_TAG_BEGIN_REGEX = %r{<a[^>]*href=['"]?([^'"]*)['"]?[^>]*>(?:(?!</a>).)*?}
10
- A_TAG_END_REGEX = %r{(?:(?!</a>).)*?</a>}
9
+ A_TAG_BEGIN_REGEX = %r{<a[^>]*href=['"]?([^'"]*)['"]?[^>]*>\s*(?:(?!</a>).)*?\s*}
10
+ A_TAG_END_REGEX = %r{\s*(?:(?!</a>).)*?\s*</a>}
11
11
 
12
12
  def visit_in_email(link_text, address = '')
13
13
  if address.nil? || address.empty?
@@ -85,7 +85,7 @@ module EmailSpec
85
85
  end
86
86
 
87
87
  def links_in_email(email)
88
- links = URI.extract(email.default_part_body.to_s, ['http', 'https'])
88
+ links = URI::Parser.new.extract(email.default_part_body.to_s, ['http', 'https'])
89
89
  links.map{|url| HTMLEntities.new.decode(url) }.uniq
90
90
  end
91
91
 
@@ -102,7 +102,7 @@ module EmailSpec
102
102
  elsif email.nil?
103
103
  error = "#{opts.keys.first.to_s.gsub("_", " ").downcase unless opts.empty?} #{('"' + opts.values.first.to_s + '"') unless opts.empty?}"
104
104
  raise EmailSpec::CouldNotFindEmailError, "Could not find email #{error} in the mailbox for #{current_email_address}. \n Found the following emails:\n\n #{all_emails.to_s}"
105
- end
105
+ end
106
106
  email
107
107
  end
108
108
 
@@ -1,3 +1,3 @@
1
1
  module EmailSpec
2
- VERSION = '2.1.0'
2
+ VERSION = '2.1.1'.freeze
3
3
  end
@@ -37,6 +37,20 @@ describe EmailSpec::Helpers do
37
37
  expect(parse_email_for_link(email, "Click Here")).to eq("/path/to/page")
38
38
  end
39
39
 
40
+ it "properly finds links with tags and text in new lines" do
41
+ email = Mail.new(:body => <<-HTML
42
+ <a href="/path/to/app">Welcome</a>
43
+ <a href="/path/to/page">
44
+ <strong>
45
+ Click Here
46
+ </strong>
47
+ </a>
48
+ HTML
49
+ )
50
+
51
+ expect(parse_email_for_link(email, "Click Here")).to eq("/path/to/page")
52
+ end
53
+
40
54
  it "recognizes img alt properties as text" do
41
55
  email = Mail.new(:body => %(<a href="/path/to/page"><img src="http://host.com/images/image.gif" alt="an image" /></a>))
42
56
  expect(parse_email_for_link(email, "an image")).to eq("/path/to/page")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Mabey
@@ -10,160 +10,160 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-05-05 00:00:00.000000000 Z
13
+ date: 2017-05-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: htmlentities
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 4.3.3
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: 4.3.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: launchy
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ~>
33
+ - - "~>"
34
34
  - !ruby/object:Gem::Version
35
35
  version: '2.1'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ~>
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '2.1'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: mail
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 2.6.3
49
+ version: '2.6'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: 2.6.3
56
+ version: '2.6'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rake
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ! '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: 0.8.7
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - ! '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: 0.8.7
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: cucumber
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ~>
75
+ - - "~>"
76
76
  - !ruby/object:Gem::Version
77
77
  version: 1.3.17
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ~>
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: 1.3.17
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: actionmailer
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - ~>
89
+ - - "~>"
90
90
  - !ruby/object:Gem::Version
91
91
  version: '4.2'
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - ~>
96
+ - - "~>"
97
97
  - !ruby/object:Gem::Version
98
98
  version: '4.2'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: rack-test
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ! '>='
103
+ - - ">="
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ! '>='
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: '0'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rspec
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ~>
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
119
  version: '3.1'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ~>
124
+ - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: '3.1'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: capybara
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - ! '>='
131
+ - - ">="
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - ! '>='
138
+ - - ">="
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: database_cleaner
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ! '>='
145
+ - - ">="
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ! '>='
152
+ - - ">="
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: test-unit
157
157
  requirement: !ruby/object:Gem::Requirement
158
158
  requirements:
159
- - - ! '>='
159
+ - - ">="
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
162
  type: :development
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - ! '>='
166
+ - - ">="
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  description: Easily test email in RSpec, Cucumber, and MiniTest
@@ -261,8 +261,6 @@ files:
261
261
  - examples/rails4_root/test/mailers/user_mailer_classic_test.rb
262
262
  - examples/rails4_root/test/mailers/user_mailer_spec_test.rb
263
263
  - examples/rails4_root/test/test_helper.rb
264
- - examples/rails4_root/vendor/plugins/email_spec/rails_generators/email_spec/email_spec_generator.rb
265
- - examples/rails4_root/vendor/plugins/email_spec/rails_generators/email_spec/templates/email_steps.rb
266
264
  - examples/sinatra_root/Gemfile
267
265
  - examples/sinatra_root/Gemfile.lock
268
266
  - examples/sinatra_root/config.ru
@@ -308,17 +306,17 @@ require_paths:
308
306
  - lib
309
307
  required_ruby_version: !ruby/object:Gem::Requirement
310
308
  requirements:
311
- - - ! '>='
309
+ - - ">="
312
310
  - !ruby/object:Gem::Version
313
311
  version: '0'
314
312
  required_rubygems_version: !ruby/object:Gem::Requirement
315
313
  requirements:
316
- - - ! '>='
314
+ - - ">="
317
315
  - !ruby/object:Gem::Version
318
316
  version: '0'
319
317
  requirements: []
320
318
  rubyforge_project: email-spec
321
- rubygems_version: 2.4.8
319
+ rubygems_version: 2.6.8
322
320
  signing_key:
323
321
  specification_version: 4
324
322
  summary: Easily test email in RSpec, Cucumber or Minitest
@@ -1,17 +0,0 @@
1
- # This generator adds email steps to the step definitions directory
2
- generator_base = defined?(Rails) ? Rails::Generator::Base : RubiGen::Base
3
- class EmailSpecGenerator < generator_base
4
- def manifest
5
- record do |m|
6
- m.directory 'features/step_definitions'
7
- m.file 'email_steps.rb', 'features/step_definitions/email_steps.rb'
8
- end
9
- end
10
-
11
- protected
12
-
13
- def banner
14
- "Usage: #{$0} email_spec"
15
- end
16
-
17
- end
@@ -1,199 +0,0 @@
1
- # Commonly used email steps
2
- #
3
- # To add your own steps make a custom_email_steps.rb
4
- # The provided methods are:
5
- #
6
- # last_email_address
7
- # reset_mailer
8
- # open_last_email
9
- # visit_in_email
10
- # unread_emails_for
11
- # mailbox_for
12
- # current_email
13
- # open_email
14
- # read_emails_for
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.
26
-
27
- module EmailHelpers
28
- def current_email_address
29
- # Replace with your way to find your current email (e.g @current_user.email).
30
- # last_email_address will return the last email address used by email spec to find an email.
31
- # Note that last_email_address will be reset after each Scenario.
32
- last_email_address || "example@example.com"
33
- end
34
- end
35
-
36
- World(EmailHelpers)
37
-
38
- #
39
- # Reset the e-mail queue within a scenario.
40
- # This is done automatically before each scenario.
41
- #
42
-
43
- Given /^(?:a clear email queue|no emails have been sent)$/ do
44
- reset_mailer
45
- end
46
-
47
- #
48
- # Check how many emails have been sent/received
49
- #
50
-
51
- Then /^(?:I|they|he|she|"([^"]*?)") should receive (an|no|\d+) emails?$/ do |address, amount|
52
- expect(unread_emails_for(address).size).to eql parse_email_count(amount)
53
- end
54
-
55
- Then /^(?:I|they|he|she|"([^"]*?)") should have (an|no|\d+) emails?$/ do |address, amount|
56
- expect(mailbox_for(address).size).to eql parse_email_count(amount)
57
- end
58
-
59
- Then /^(?:I|they|he|she|"([^"]*?)") should receive (an|no|\d+) emails? with subject "([^"]*?)"$/ do |address, amount, subject|
60
- expect(unread_emails_for(address).select { |m| m.subject =~ Regexp.new(Regexp.escape(subject)) }.size).to eql parse_email_count(amount)
61
- end
62
-
63
- Then /^(?:I|they|he|she|"([^"]*?)") should receive an email with the following body:$/ do |address, expected_body|
64
- open_email(address, :with_text => expected_body)
65
- end
66
-
67
- #
68
- # Accessing emails
69
- #
70
-
71
- # Opens the most recently received email
72
- When /^(?:I|they|he|she|"([^"]*?)") opens? the email$/ do |address|
73
- open_email(address)
74
- end
75
-
76
- When /^(?:I|they|he|she|"([^"]*?)") opens? the email with subject "([^"]*?)"$/ do |address, subject|
77
- open_email(address, :with_subject => subject)
78
- end
79
-
80
- When /^(?:I|they|he|she|"([^"]*?)") opens? the email with text "([^"]*?)"$/ do |address, text|
81
- open_email(address, :with_text => text)
82
- end
83
-
84
- #
85
- # Inspect the Email Contents
86
- #
87
-
88
- Then /^(?:I|they|he|she) should see "([^"]*?)" in the email subject$/ do |text|
89
- expect(current_email).to have_subject(text)
90
- end
91
-
92
- Then /^(?:I|they|he|she) should see "([^"]*?)" in the email body$/ do |text|
93
- if current_email.multipart?
94
- Then %(I should see "#{text}" in the html part of the email body)
95
- Then %(I should see "#{text}" in the text part of the email body)
96
- else
97
- expect(current_email.body).to match Regexp.new(text)
98
- end
99
- end
100
-
101
- Then /^(?:I|they|he|she) should see "([^"]*?)" in the html part of the email body$/ do |text|
102
- expect(current_email.html_part.body).to match Regexp.new(text)
103
- end
104
-
105
- Then /^(?:I|they|he|she) should see "([^"]*?)" in the text part of the email body$/ do |text|
106
- expect(current_email.text_part.body).to match Regexp.new(text)
107
- end
108
-
109
- Then /^(?:I|they|he|she) should see "([^"]*?)" in the email body$/ do |text|
110
- expect(current_email.body).to include(text)
111
- end
112
-
113
- Then /^(?:I|they|he|she) should see \/([^"]*?)\/ in the email body$/ do |text|
114
- expect(current_email.body).to match Regexp.new(text)
115
- end
116
-
117
- Then /^(?:I|they|he|she) should see the email delivered from "([^"]*?)"$/ do |text|
118
- expect(current_email).to be_delivered_from(text)
119
- end
120
-
121
- Then /^(?:I|they) should see the email reply to "([^"]*?)"$/ do |text|
122
- current_email.should have_reply_to(text)
123
- end
124
-
125
- Then /^(?:I|they|he|she) should see "([^\"]*)" in the email "([^"]*?)" header$/ do |text, name|
126
- expect(current_email).to have_header(name, text)
127
- end
128
-
129
- Then /^(?:I|they|he|she) should see \/([^\"]*)\/ in the email "([^"]*?)" header$/ do |text, name|
130
- expect(current_email).to have_header(name, Regexp.new(text))
131
- end
132
-
133
- #
134
- # Inspect the Email Attachments
135
- #
136
-
137
- Then /^(?:I|they|he|she) should see (an|no|\d+) attachments? with the email$/ do |amount|
138
- expect(current_email_attachments.size).to eql parse_email_count(amount)
139
- end
140
-
141
- Then /^there should be (an|no|\d+) attachments? named "([^"]*?)"$/ do |amount, filename|
142
- expect(current_email_attachments.select { |a| a.original_filename == filename }.size).to eql parse_email_count(amount)
143
- end
144
-
145
- Then /^attachment (\d+) should be named "([^"]*?)"$/ do |index, filename|
146
- expect(current_email_attachments[(index.to_i - 1)].original_filename).to eql filename
147
- end
148
-
149
- Then /^there should be (an|no|\d+) attachments? of type "([^"]*?)"$/ do |amount, content_type|
150
- expect(current_email_attachments.select { |a| a.content_type == content_type }.size).to eql parse_email_count(amount)
151
- end
152
-
153
- Then /^attachment (\d+) should be of type "([^"]*?)"$/ do |index, content_type|
154
- expect(current_email_attachments[(index.to_i - 1)].content_type).to eql content_type
155
- end
156
-
157
- Then /^all attachments should not be blank$/ do
158
- current_email_attachments.each do |attachment|
159
- expect(attachment.size).to_not eql 0
160
- end
161
- end
162
-
163
- Then /^show me a list of email attachments$/ do
164
- EmailSpec::EmailViewer::save_and_open_email_attachments_list(current_email)
165
- end
166
-
167
- #
168
- # Interact with Email Contents
169
- #
170
-
171
- When /^(?:I|they|he|she) follow "([^"]*?)" in the email$/ do |link|
172
- visit_in_email(link)
173
- end
174
-
175
- When /^(?:I|they|he|she) click the first link in the email$/ do
176
- click_first_link_in_email
177
- end
178
-
179
- #
180
- # Debugging
181
- # These only work with Rails and OSx ATM since EmailViewer uses RAILS_ROOT and OSx's 'open' command.
182
- # Patches accepted. ;)
183
- #
184
-
185
- Then /^save and open current email$/ do
186
- EmailSpec::EmailViewer::save_and_open_email(current_email)
187
- end
188
-
189
- Then /^save and open all text emails$/ do
190
- EmailSpec::EmailViewer::save_and_open_all_text_emails
191
- end
192
-
193
- Then /^save and open all html emails$/ do
194
- EmailSpec::EmailViewer::save_and_open_all_html_emails
195
- end
196
-
197
- Then /^save and open all raw emails$/ do
198
- EmailSpec::EmailViewer::save_and_open_all_raw_emails
199
- end