bmabey-email_spec 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -3,6 +3,24 @@
3
3
  === New features
4
4
  === Bufixes
5
5
 
6
+ == 0.3.0 2009-08-13
7
+
8
+ === New features
9
+ * New helper #last_email_address which returns the last address used by email-spec for that scenario. (Ben Mabey)
10
+ * Steps now support third person language. (Kieran P)
11
+ * "[email] should receive ... " now supports "an" instead of just an integer. (Kieran P)
12
+ With these changes, the following is now possible:
13
+
14
+ Then "jack@example.com" should receive an email
15
+ When they open the email
16
+ Then they should see "Account has been created" in the subject
17
+
18
+ * Additional default steps (Balint Erdi)
19
+ * Then /^I should not receive any emails?$/
20
+ * When %r{^"([^"]*?)" opens? the email$} do |address|
21
+
22
+ === Bufixes
23
+
6
24
  == 0.2.1 2009-5-29
7
25
 
8
26
  === New Features
@@ -8,15 +8,15 @@ These scenarios should fail with helpful messages
8
8
  Scenario: I fail to receive an email
9
9
  Given I am at "/"
10
10
  And no emails have been sent
11
- When I fill in "Email" with "quentin@example.com"
11
+ When I fill in "Email" with "example@example.com"
12
12
  And I press "Sign up"
13
13
  And I should receive an email
14
- When "quentin@example.com" opens the email with subject "no email"
14
+ When "example@example.com" opens the email with subject "no email"
15
15
 
16
16
  Scenario: I fail to receive an email with the expected link
17
17
  Given I am at "/"
18
18
  And no emails have been sent
19
- When I fill in "Email" with "quentin@example.com"
19
+ When I fill in "Email" with "example@example.com"
20
20
  And I press "Sign up"
21
21
  And I should receive an email
22
22
  When I open the email
@@ -25,7 +25,7 @@ These scenarios should fail with helpful messages
25
25
  Scenario: I attempt to operate on an email that is not opened
26
26
  Given I am at "/"
27
27
  And no emails have been sent
28
- When I fill in "Email" with "quentin@example.com"
28
+ When I fill in "Email" with "example@example.com"
29
29
  And I press "Sign up"
30
30
  And I should receive an email
31
31
  When I follow "confirm" in the email
@@ -33,7 +33,7 @@ These scenarios should fail with helpful messages
33
33
  Scenario: I attempt to check out an unopened email
34
34
  Given I am at "/"
35
35
  And no emails have been sent
36
- When I fill in "Email" with "quentin@example.com"
36
+ When I fill in "Email" with "example@example.com"
37
37
  And I press "Sign up"
38
38
  Then I should see "confirm" in the email
39
39
  And I should see "Account confirmation" in the subject
@@ -12,18 +12,18 @@ Scenario: A new person signs up imperatively
12
12
  Given I am a real person wanting to sign up for an account
13
13
  And I am at "/"
14
14
 
15
- When I fill in "Email" with "quentin@example.com"
16
- And I fill in "Name" with "Quentin Jones"
15
+ When I fill in "Email" with "example@example.com"
16
+ And I fill in "Name" with "example Jones"
17
17
  And I press "Sign up"
18
18
 
19
- Then "quentin@example.com" should receive 1 email
20
- And "quentin@example.com" should have 1 email
19
+ Then "example@example.com" should receive 1 email
20
+ And "example@example.com" should have 1 email
21
21
  And "foo@bar.com" should not receive an email
22
22
 
23
- When "quentin@example.com" opens the email with subject "Account confirmation"
23
+ When "example@example.com" opens the email with subject "Account confirmation"
24
24
 
25
25
  Then I should see "confirm" in the email
26
- And I should see "Quentin Jones" in the email
26
+ And I should see "example Jones" in the email
27
27
  And I should see "Account confirmation" in the subject
28
28
 
29
29
  When I follow "Click here to confirm your account!" in the email
@@ -34,8 +34,8 @@ Scenario: slightly more declarative, but still mostly imperative
34
34
  Given I am a real person wanting to sign up for an account
35
35
  And I'm on the signup page
36
36
 
37
- When I fill in "Email" with "quentin@example.com"
38
- And I fill in "Name" with "Quentin Jones"
37
+ When I fill in "Email" with "example@example.com"
38
+ And I fill in "Name" with "example Jones"
39
39
  And I press "Sign up"
40
40
 
41
41
  Then I should receive an email
@@ -15,7 +15,10 @@
15
15
 
16
16
  module EmailHelpers
17
17
  def current_email_address
18
- "quentin@example.com" # Replace with your a way to find your current_email. e.g current_user.email
18
+ # Replace with your a way to find your current email. e.g @current_user.email
19
+ # last_email_address will return the last email address used by email spec to find an email.
20
+ # Note that last_email_address will be reset after each Scenario.
21
+ last_email_address || "example@example.com"
19
22
  end
20
23
  end
21
24
  World(EmailHelpers)
@@ -27,21 +30,26 @@ Given /^(?:a clear email queue|no emails have been sent)$/ do
27
30
  end
28
31
 
29
32
  # Use this step to open the most recently sent e-mail.
30
- When /^I open the email$/ do
33
+ When /^(?:I|they) open the email$/ do
31
34
  open_email(current_email_address)
32
35
  end
33
36
 
34
- When %r{^I follow "([^"]*?)" in the email$} do |link|
37
+ When %r{^(?:I|they) follow "([^"]*?)" in the email$} do |link|
35
38
  visit_in_email(link)
36
39
  end
37
40
 
38
- Then /^I should receive (an|\d+) emails?$/ do |amount|
41
+ Then /^(?:I|they) should receive (an|\d+) emails?$/ do |amount|
39
42
  amount = 1 if amount == "an"
40
43
  unread_emails_for(current_email_address).size.should == amount.to_i
41
44
  end
42
45
 
43
- Then %r{^"([^"]*?)" should receive (\d+) emails?$} do |address, n|
44
- unread_emails_for(address).size.should == n.to_i
46
+ Then /^(?:I|they) should not receive any emails?$/ do
47
+ unread_emails_for(current_email_address).size.should == 0
48
+ end
49
+
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
45
53
  end
46
54
 
47
55
  Then %r{^"([^"]*?)" should have (\d+) emails?$} do |address, n|
@@ -52,14 +60,18 @@ Then %r{^"([^"]*?)" should not receive an email$} do |address|
52
60
  find_email(address).should be_nil
53
61
  end
54
62
 
55
- Then %r{^I should see "([^"]*?)" in the subject$} do |text|
63
+ Then %r{^(?:I|they) should see "([^"]*?)" in the subject$} do |text|
56
64
  current_email.should have_subject(Regexp.new(text))
57
65
  end
58
66
 
59
- Then %r{^I should see "([^"]*?)" in the email$} do |text|
67
+ Then %r{^(?:I|they) should see "([^"]*?)" in the email$} do |text|
60
68
  current_email.body.should =~ Regexp.new(text)
61
69
  end
62
70
 
71
+ When %r{^"([^"]*?)" opens? the email$} do |address|
72
+ open_email(address)
73
+ end
74
+
63
75
  When %r{^"([^"]*?)" opens? the email with subject "([^"]*?)"$} do |address, subject|
64
76
  open_email(address, :with_subject => subject)
65
77
  end
@@ -68,7 +80,7 @@ When %r{^"([^"]*?)" opens? the email with text "([^"]*?)"$} do |address, text|
68
80
  open_email(address, :with_text => text)
69
81
  end
70
82
 
71
- When /^I click the first link in the email$/ do
83
+ When /^(?:I|they) click the first link in the email$/ do
72
84
  click_first_link_in_email
73
85
  end
74
86
 
@@ -15,7 +15,10 @@
15
15
 
16
16
  module EmailHelpers
17
17
  def current_email_address
18
- "quentin@example.com" # Replace with your a way to find your current_email. e.g current_user.email
18
+ # Replace with your a way to find your current email. e.g @current_user.email
19
+ # last_email_address will return the last email address used by email spec to find an email.
20
+ # Note that last_email_address will be reset after each Scenario.
21
+ last_email_address || "example@example.com"
19
22
  end
20
23
  end
21
24
  World(EmailHelpers)
@@ -27,21 +30,26 @@ Given /^(?:a clear email queue|no emails have been sent)$/ do
27
30
  end
28
31
 
29
32
  # Use this step to open the most recently sent e-mail.
30
- When /^I open the email$/ do
33
+ When /^(?:I|they) open the email$/ do
31
34
  open_email(current_email_address)
32
35
  end
33
36
 
34
- When %r{^I follow "([^"]*?)" in the email$} do |link|
37
+ When %r{^(?:I|they) follow "([^"]*?)" in the email$} do |link|
35
38
  visit_in_email(link)
36
39
  end
37
40
 
38
- Then /^I should receive (an|\d+) emails?$/ do |amount|
41
+ Then /^(?:I|they) should receive (an|\d+) emails?$/ do |amount|
39
42
  amount = 1 if amount == "an"
40
43
  unread_emails_for(current_email_address).size.should == amount.to_i
41
44
  end
42
45
 
43
- Then %r{^"([^"]*?)" should receive (\d+) emails?$} do |address, n|
44
- unread_emails_for(address).size.should == n.to_i
46
+ Then /^(?:I|they) should not receive any emails?$/ do
47
+ unread_emails_for(current_email_address).size.should == 0
48
+ end
49
+
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
45
53
  end
46
54
 
47
55
  Then %r{^"([^"]*?)" should have (\d+) emails?$} do |address, n|
@@ -52,14 +60,18 @@ Then %r{^"([^"]*?)" should not receive an email$} do |address|
52
60
  find_email(address).should be_nil
53
61
  end
54
62
 
55
- Then %r{^I should see "([^"]*?)" in the subject$} do |text|
63
+ Then %r{^(?:I|they) should see "([^"]*?)" in the subject$} do |text|
56
64
  current_email.should have_subject(Regexp.new(text))
57
65
  end
58
66
 
59
- Then %r{^I should see "([^"]*?)" in the email$} do |text|
67
+ Then %r{^(?:I|they) should see "([^"]*?)" in the email$} do |text|
60
68
  current_email.body.should =~ Regexp.new(text)
61
69
  end
62
70
 
71
+ When %r{^"([^"]*?)" opens? the email$} do |address|
72
+ open_email(address)
73
+ end
74
+
63
75
  When %r{^"([^"]*?)" opens? the email with subject "([^"]*?)"$} do |address, subject|
64
76
  open_email(address, :with_subject => subject)
65
77
  end
@@ -68,7 +80,7 @@ When %r{^"([^"]*?)" opens? the email with text "([^"]*?)"$} do |address, text|
68
80
  open_email(address, :with_text => text)
69
81
  end
70
82
 
71
- When /^I click the first link in the email$/ do
83
+ When /^(?:I|they) click the first link in the email$/ do
72
84
  click_first_link_in_email
73
85
  end
74
86
 
@@ -120,8 +120,11 @@ module EmailSpec
120
120
  # sub correct ampersand after rails switches it (http://dev.rubyonrails.org/ticket/4002)
121
121
  end
122
122
 
123
+
124
+ attr_reader :last_email_address
123
125
 
124
126
  def convert_address(address)
127
+ @last_email_address = address
125
128
  AddressConverter.instance.convert(address)
126
129
  end
127
130
  end
@@ -15,7 +15,10 @@
15
15
 
16
16
  module EmailHelpers
17
17
  def current_email_address
18
- "quentin@example.com" # Replace with your a way to find your current_email. e.g current_user.email
18
+ # Replace with your a way to find your current email. e.g @current_user.email
19
+ # last_email_address will return the last email address used by email spec to find an email.
20
+ # Note that last_email_address will be reset after each Scenario.
21
+ last_email_address || "example@example.com"
19
22
  end
20
23
  end
21
24
  World(EmailHelpers)
@@ -27,21 +30,26 @@ Given /^(?:a clear email queue|no emails have been sent)$/ do
27
30
  end
28
31
 
29
32
  # Use this step to open the most recently sent e-mail.
30
- When /^I open the email$/ do
33
+ When /^(?:I|they) open the email$/ do
31
34
  open_email(current_email_address)
32
35
  end
33
36
 
34
- When %r{^I follow "([^"]*?)" in the email$} do |link|
37
+ When %r{^(?:I|they) follow "([^"]*?)" in the email$} do |link|
35
38
  visit_in_email(link)
36
39
  end
37
40
 
38
- Then /^I should receive (an|\d+) emails?$/ do |amount|
41
+ Then /^(?:I|they) should receive (an|\d+) emails?$/ do |amount|
39
42
  amount = 1 if amount == "an"
40
43
  unread_emails_for(current_email_address).size.should == amount.to_i
41
44
  end
42
45
 
43
- Then %r{^"([^"]*?)" should receive (\d+) emails?$} do |address, n|
44
- unread_emails_for(address).size.should == n.to_i
46
+ Then /^(?:I|they) should not receive any emails?$/ do
47
+ unread_emails_for(current_email_address).size.should == 0
48
+ end
49
+
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
45
53
  end
46
54
 
47
55
  Then %r{^"([^"]*?)" should have (\d+) emails?$} do |address, n|
@@ -52,14 +60,18 @@ Then %r{^"([^"]*?)" should not receive an email$} do |address|
52
60
  find_email(address).should be_nil
53
61
  end
54
62
 
55
- Then %r{^I should see "([^"]*?)" in the subject$} do |text|
63
+ Then %r{^(?:I|they) should see "([^"]*?)" in the subject$} do |text|
56
64
  current_email.should have_subject(Regexp.new(text))
57
65
  end
58
66
 
59
- Then %r{^I should see "([^"]*?)" in the email$} do |text|
67
+ Then %r{^(?:I|they) should see "([^"]*?)" in the email$} do |text|
60
68
  current_email.body.should =~ Regexp.new(text)
61
69
  end
62
70
 
71
+ When %r{^"([^"]*?)" opens? the email$} do |address|
72
+ open_email(address)
73
+ end
74
+
63
75
  When %r{^"([^"]*?)" opens? the email with subject "([^"]*?)"$} do |address, subject|
64
76
  open_email(address, :with_subject => subject)
65
77
  end
@@ -68,7 +80,7 @@ When %r{^"([^"]*?)" opens? the email with text "([^"]*?)"$} do |address, text|
68
80
  open_email(address, :with_text => text)
69
81
  end
70
82
 
71
- When /^I click the first link in the email$/ do
83
+ When /^(?:I|they) click the first link in the email$/ do
72
84
  click_first_link_in_email
73
85
  end
74
86
 
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.2.1
4
+ version: 0.3.0
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-07-18 00:00:00 -07:00
14
+ date: 2009-08-13 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies: []
17
17
 
@@ -117,6 +117,7 @@ files:
117
117
  - spec/spec_helper.rb
118
118
  has_rdoc: false
119
119
  homepage: http://github.com/bmabey/email-spec/
120
+ licenses:
120
121
  post_install_message:
121
122
  rdoc_options:
122
123
  - --charset=UTF-8
@@ -137,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
138
  requirements: []
138
139
 
139
140
  rubyforge_project: email-spec
140
- rubygems_version: 1.2.0
141
+ rubygems_version: 1.3.5
141
142
  signing_key:
142
143
  specification_version: 3
143
144
  summary: Easily test email in rspec and cucumber