mailboxer 0.11.0 → 0.12.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +4 -3
  4. data/Appraisals +6 -14
  5. data/Gemfile +1 -1
  6. data/README.md +2 -2
  7. data/app/mailers/mailboxer/base_mailer.rb +14 -0
  8. data/app/mailers/{message_mailer.rb → mailboxer/message_mailer.rb} +9 -14
  9. data/app/mailers/mailboxer/notification_mailer.rb +17 -0
  10. data/app/models/mailboxer/conversation.rb +196 -0
  11. data/app/models/mailboxer/conversation/opt_out.rb +15 -0
  12. data/app/models/{mailbox.rb → mailboxer/mailbox.rb} +10 -10
  13. data/app/models/mailboxer/message.rb +49 -0
  14. data/app/models/{notification.rb → mailboxer/notification.rb} +44 -40
  15. data/app/models/{receipt.rb → mailboxer/receipt.rb} +12 -11
  16. data/app/views/{message_mailer → mailboxer/message_mailer}/new_message_email.html.erb +3 -3
  17. data/app/views/{message_mailer → mailboxer/message_mailer}/new_message_email.text.erb +2 -2
  18. data/app/views/{message_mailer → mailboxer/message_mailer}/reply_message_email.html.erb +3 -3
  19. data/app/views/{message_mailer → mailboxer/message_mailer}/reply_message_email.text.erb +2 -2
  20. data/app/views/{notification_mailer → mailboxer/notification_mailer}/new_notification_email.html.erb +0 -0
  21. data/app/views/{notification_mailer → mailboxer/notification_mailer}/new_notification_email.text.erb +0 -0
  22. data/db/migrate/20110511145103_create_mailboxer.rb +18 -14
  23. data/db/migrate/20131206080416_add_conversation_optout.rb +14 -0
  24. data/gemfiles/rails3.2.gemfile +2 -3
  25. data/gemfiles/rails4.0.gemfile +3 -4
  26. data/gemfiles/rails4.1.gemfile +7 -0
  27. data/lib/generators/mailboxer/install_generator.rb +1 -4
  28. data/lib/generators/mailboxer/namespacing_compatibility_generator.rb +22 -0
  29. data/lib/generators/mailboxer/templates/initializer.rb +8 -4
  30. data/lib/generators/mailboxer/templates/mailboxer_namespacing_compatibility.rb +24 -0
  31. data/lib/mailboxer.rb +7 -1
  32. data/lib/mailboxer/cleaner.rb +9 -0
  33. data/lib/mailboxer/engine.rb +1 -1
  34. data/lib/mailboxer/mail_dispatcher.rb +48 -0
  35. data/lib/mailboxer/models/messageable.rb +21 -20
  36. data/lib/mailboxer/version.rb +3 -0
  37. data/mailboxer.gemspec +16 -8
  38. data/spec/dummy/Gemfile +1 -1
  39. data/spec/dummy/app/models/duck.rb +2 -2
  40. data/spec/dummy/config/initializers/mailboxer.rb +4 -0
  41. data/spec/dummy/db/migrate/20120305103200_create_mailboxer.rb +18 -14
  42. data/spec/dummy/db/migrate/20131206080416_add_conversation_optout.rb +14 -0
  43. data/spec/dummy/db/schema.rb +30 -21
  44. data/spec/integration/message_and_receipt_spec.rb +212 -212
  45. data/spec/mailboxer/mail_dispatcher_spec.rb +114 -0
  46. data/spec/mailers/message_mailer_spec.rb +4 -4
  47. data/spec/mailers/notification_mailer_spec.rb +2 -2
  48. data/spec/models/conversation_spec.rb +148 -47
  49. data/spec/models/mailbox_spec.rb +50 -50
  50. data/spec/models/mailboxer_models_messageable_spec.rb +52 -52
  51. data/spec/models/message_spec.rb +1 -1
  52. data/spec/models/notification_spec.rb +50 -18
  53. data/spec/models/receipt_spec.rb +1 -1
  54. data/spec/spec_helper.rb +3 -0
  55. metadata +68 -57
  56. data/app/mailers/notification_mailer.rb +0 -21
  57. data/app/models/conversation.rb +0 -166
  58. data/app/models/message.rb +0 -68
  59. data/db/migrate/20110719110700_add_notified_object.rb +0 -17
  60. data/db/migrate/20110912163911_add_notification_code.rb +0 -13
  61. data/db/migrate/20111204163911_add_attachments.rb +0 -9
  62. data/db/migrate/20120813110712_rename_receipts_read.rb +0 -9
  63. data/db/migrate/20130305144212_add_global_notification_support.rb +0 -9
  64. data/gemfiles/rails3.0.gemfile +0 -8
  65. data/gemfiles/rails3.1.gemfile +0 -8
  66. data/lib/mailboxer/concerns/configurable_mailer.rb +0 -13
  67. data/spec/dummy/db/migrate/20120305103201_add_notified_object.rb +0 -17
  68. data/spec/dummy/db/migrate/20120305103202_add_notification_code.rb +0 -13
  69. data/spec/dummy/db/migrate/20120305103203_add_attachments.rb +0 -5
  70. data/spec/dummy/db/migrate/20120813110712_rename_receipts_read.rb +0 -9
  71. data/spec/dummy/db/migrate/20130305144212_add_global_notification_support.rb +0 -11
  72. data/spec/mailboxer/concerns/configurable_mailer_spec.rb +0 -27
@@ -1,94 +1,94 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Mailboxer::Models::Messageable through User" do
4
-
4
+
5
5
  before do
6
6
  @entity1 = FactoryGirl.create(:user)
7
7
  @entity2 = FactoryGirl.create(:user)
8
8
  end
9
-
9
+
10
10
  it "should have a mailbox" do
11
11
  assert @entity1.mailbox
12
12
  end
13
-
13
+
14
14
  it "should be able to send a message" do
15
15
  assert @entity1.send_message(@entity2,"Body","Subject")
16
16
  end
17
-
17
+
18
18
  it "should be able to reply to sender" do
19
19
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
20
20
  assert @entity2.reply_to_sender(@receipt,"Reply body")
21
21
  end
22
-
22
+
23
23
  it "should be able to reply to all" do
24
24
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
25
- assert @entity2.reply_to_all(@receipt,"Reply body")
25
+ assert @entity2.reply_to_all(@receipt,"Reply body")
26
26
  end
27
-
28
-
29
-
30
- it "should be able to unread an owned Receipt (mark as unread)" do
27
+
28
+
29
+
30
+ it "should be able to unread an owned Mailboxer::Receipt (mark as unread)" do
31
31
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
32
32
  @receipt.is_read.should==true
33
33
  @entity1.mark_as_unread(@receipt)
34
34
  @receipt.is_read.should==false
35
35
  end
36
-
37
- it "should be able to read an owned Receipt (mark as read)" do
36
+
37
+ it "should be able to read an owned Mailboxer::Receipt (mark as read)" do
38
38
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
39
39
  @receipt.is_read.should==true
40
40
  @entity1.mark_as_unread(@receipt)
41
41
  @entity1.mark_as_read(@receipt)
42
42
  @receipt.is_read.should==true
43
43
  end
44
-
45
- it "should not be able to unread a not owned Receipt (mark as unread)" do
44
+
45
+ it "should not be able to unread a not owned Mailboxer::Receipt (mark as unread)" do
46
46
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
47
47
  @receipt.is_read.should==true
48
48
  @entity2.mark_as_unread(@receipt) #Should not change
49
49
  @receipt.is_read.should==true
50
50
  end
51
-
52
- it "should not be able to read a not owned Receipt (mark as read)" do
51
+
52
+ it "should not be able to read a not owned Mailboxer::Receipt (mark as read)" do
53
53
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
54
54
  @receipt.is_read.should==true
55
55
  @entity1.mark_as_unread(@receipt) #From read to unread
56
56
  @entity2.mark_as_read(@receipt) #Should not change
57
57
  @receipt.is_read.should==false
58
58
  end
59
-
60
- it "should be able to trash an owned Receipt" do
59
+
60
+ it "should be able to trash an owned Mailboxer::Receipt" do
61
61
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
62
62
  @receipt.trashed.should==false
63
63
  @entity1.trash(@receipt)
64
64
  @receipt.trashed.should==true
65
65
  end
66
-
67
- it "should be able to untrash an owned Receipt" do
66
+
67
+ it "should be able to untrash an owned Mailboxer::Receipt" do
68
68
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
69
69
  @receipt.trashed.should==false
70
70
  @entity1.trash(@receipt)
71
71
  @entity1.untrash(@receipt)
72
72
  @receipt.trashed.should==false
73
73
  end
74
-
75
- it "should not be able to trash a not owned Receipt" do
74
+
75
+ it "should not be able to trash a not owned Mailboxer::Receipt" do
76
76
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
77
77
  @receipt.trashed.should==false
78
78
  @entity2.trash(@receipt) #Should not change
79
79
  @receipt.trashed.should==false
80
80
  end
81
-
82
- it "should not be able to untrash a not owned Receipt" do
81
+
82
+ it "should not be able to untrash a not owned Mailboxer::Receipt" do
83
83
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
84
84
  @receipt.trashed.should==false
85
85
  @entity1.trash(@receipt) #From read to unread
86
86
  @entity2.untrash(@receipt) #Should not change
87
87
  @receipt.trashed.should==true
88
88
  end
89
-
90
-
91
-
89
+
90
+
91
+
92
92
  it "should be able to unread an owned Message (mark as unread)" do
93
93
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
94
94
  @message = @receipt.message
@@ -96,7 +96,7 @@ describe "Mailboxer::Models::Messageable through User" do
96
96
  @entity1.mark_as_unread(@message)
97
97
  @message.receipt_for(@entity1).first.is_read.should==false
98
98
  end
99
-
99
+
100
100
  it "should be able to read an owned Message (mark as read)" do
101
101
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
102
102
  @message = @receipt.message
@@ -105,7 +105,7 @@ describe "Mailboxer::Models::Messageable through User" do
105
105
  @entity1.mark_as_read(@message)
106
106
  @message.receipt_for(@entity1).first.is_read.should==true
107
107
  end
108
-
108
+
109
109
  it "should not be able to unread a not owned Message (mark as unread)" do
110
110
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
111
111
  @message = @receipt.message
@@ -113,7 +113,7 @@ describe "Mailboxer::Models::Messageable through User" do
113
113
  @entity2.mark_as_unread(@message) #Should not change
114
114
  @message.receipt_for(@entity1).first.is_read.should==true
115
115
  end
116
-
116
+
117
117
  it "should not be able to read a not owned Message (mark as read)" do
118
118
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
119
119
  @message = @receipt.message
@@ -122,7 +122,7 @@ describe "Mailboxer::Models::Messageable through User" do
122
122
  @entity2.mark_as_read(@message) #Should not change
123
123
  @message.receipt_for(@entity1).first.is_read.should==false
124
124
  end
125
-
125
+
126
126
  it "should be able to trash an owned Message" do
127
127
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
128
128
  @message = @receipt.message
@@ -130,7 +130,7 @@ describe "Mailboxer::Models::Messageable through User" do
130
130
  @entity1.trash(@message)
131
131
  @message.receipt_for(@entity1).first.trashed.should==true
132
132
  end
133
-
133
+
134
134
  it "should be able to untrash an owned Message" do
135
135
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
136
136
  @message = @receipt.message
@@ -139,7 +139,7 @@ describe "Mailboxer::Models::Messageable through User" do
139
139
  @entity1.untrash(@message)
140
140
  @message.receipt_for(@entity1).first.trashed.should==false
141
141
  end
142
-
142
+
143
143
  it "should not be able to trash a not owned Message" do
144
144
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
145
145
  @message = @receipt.message
@@ -147,7 +147,7 @@ describe "Mailboxer::Models::Messageable through User" do
147
147
  @entity2.trash(@message) #Should not change
148
148
  @message.receipt_for(@entity1).first.trashed.should==false
149
149
  end
150
-
150
+
151
151
  it "should not be able to untrash a not owned Message" do
152
152
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
153
153
  @message = @receipt.message
@@ -167,7 +167,7 @@ describe "Mailboxer::Models::Messageable through User" do
167
167
  @entity1.mark_as_unread(@notification)
168
168
  @notification.receipt_for(@entity1).first.is_read.should==false
169
169
  end
170
-
170
+
171
171
  it "should be able to read an owned Notification (mark as read)" do
172
172
  @receipt = @entity1.notify("Subject","Body")
173
173
  @notification = @receipt.notification
@@ -175,7 +175,7 @@ describe "Mailboxer::Models::Messageable through User" do
175
175
  @entity1.mark_as_read(@notification)
176
176
  @notification.receipt_for(@entity1).first.is_read.should==true
177
177
  end
178
-
178
+
179
179
  it "should not be able to unread a not owned Notification (mark as unread)" do
180
180
  @receipt = @entity1.notify("Subject","Body")
181
181
  @notification = @receipt.notification
@@ -184,7 +184,7 @@ describe "Mailboxer::Models::Messageable through User" do
184
184
  @entity2.mark_as_unread(@notification)
185
185
  @notification.receipt_for(@entity1).first.is_read.should==true
186
186
  end
187
-
187
+
188
188
  it "should not be able to read a not owned Notification (mark as read)" do
189
189
  @receipt = @entity1.notify("Subject","Body")
190
190
  @notification = @receipt.notification
@@ -192,7 +192,7 @@ describe "Mailboxer::Models::Messageable through User" do
192
192
  @entity2.mark_as_read(@notification)
193
193
  @notification.receipt_for(@entity1).first.is_read.should==false
194
194
  end
195
-
195
+
196
196
  it "should be able to trash an owned Notification" do
197
197
  @receipt = @entity1.notify("Subject","Body")
198
198
  @notification = @receipt.notification
@@ -200,7 +200,7 @@ describe "Mailboxer::Models::Messageable through User" do
200
200
  @entity1.trash(@notification)
201
201
  @notification.receipt_for(@entity1).first.trashed.should==true
202
202
  end
203
-
203
+
204
204
  it "should be able to untrash an owned Notification" do
205
205
  @receipt = @entity1.notify("Subject","Body")
206
206
  @notification = @receipt.notification
@@ -209,7 +209,7 @@ describe "Mailboxer::Models::Messageable through User" do
209
209
  @entity1.untrash(@notification)
210
210
  @notification.receipt_for(@entity1).first.trashed.should==false
211
211
  end
212
-
212
+
213
213
  it "should not be able to trash a not owned Notification" do
214
214
  @receipt = @entity1.notify("Subject","Body")
215
215
  @notification = @receipt.notification
@@ -217,7 +217,7 @@ describe "Mailboxer::Models::Messageable through User" do
217
217
  @entity2.trash(@notification)
218
218
  @notification.receipt_for(@entity1).first.trashed.should==false
219
219
  end
220
-
220
+
221
221
  it "should not be able to untrash a not owned Notification" do
222
222
  @receipt = @entity1.notify("Subject","Body")
223
223
  @notification = @receipt.notification
@@ -226,9 +226,9 @@ describe "Mailboxer::Models::Messageable through User" do
226
226
  @entity2.untrash(@notification)
227
227
  @notification.receipt_for(@entity1).first.trashed.should==true
228
228
  end
229
-
230
-
231
-
229
+
230
+
231
+
232
232
  it "should be able to unread an owned Conversation (mark as unread)" do
233
233
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
234
234
  @conversation = @receipt.conversation
@@ -236,7 +236,7 @@ describe "Mailboxer::Models::Messageable through User" do
236
236
  @entity1.mark_as_unread(@conversation)
237
237
  @conversation.receipts_for(@entity1).first.is_read.should==false
238
238
  end
239
-
239
+
240
240
  it "should be able to read an owned Conversation (mark as read)" do
241
241
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
242
242
  @conversation = @receipt.conversation
@@ -245,7 +245,7 @@ describe "Mailboxer::Models::Messageable through User" do
245
245
  @entity1.mark_as_read(@conversation)
246
246
  @conversation.receipts_for(@entity1).first.is_read.should==true
247
247
  end
248
-
248
+
249
249
  it "should not be able to unread a not owned Conversation (mark as unread)" do
250
250
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
251
251
  @conversation = @receipt.conversation
@@ -253,7 +253,7 @@ describe "Mailboxer::Models::Messageable through User" do
253
253
  @entity2.mark_as_unread(@conversation)
254
254
  @conversation.receipts_for(@entity1).first.is_read.should==true
255
255
  end
256
-
256
+
257
257
  it "should not be able to read a not owned Conversation (mark as read)" do
258
258
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
259
259
  @conversation = @receipt.conversation
@@ -262,7 +262,7 @@ describe "Mailboxer::Models::Messageable through User" do
262
262
  @entity2.mark_as_read(@conversation)
263
263
  @conversation.receipts_for(@entity1).first.is_read.should==false
264
264
  end
265
-
265
+
266
266
  it "should be able to trash an owned Conversation" do
267
267
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
268
268
  @conversation = @receipt.conversation
@@ -270,7 +270,7 @@ describe "Mailboxer::Models::Messageable through User" do
270
270
  @entity1.trash(@conversation)
271
271
  @conversation.receipts_for(@entity1).first.trashed.should==true
272
272
  end
273
-
273
+
274
274
  it "should be able to untrash an owned Conversation" do
275
275
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
276
276
  @conversation = @receipt.conversation
@@ -279,7 +279,7 @@ describe "Mailboxer::Models::Messageable through User" do
279
279
  @entity1.untrash(@conversation)
280
280
  @conversation.receipts_for(@entity1).first.trashed.should==false
281
281
  end
282
-
282
+
283
283
  it "should not be able to trash a not owned Conversation" do
284
284
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
285
285
  @conversation = @receipt.conversation
@@ -287,7 +287,7 @@ describe "Mailboxer::Models::Messageable through User" do
287
287
  @entity2.trash(@conversation)
288
288
  @conversation.receipts_for(@entity1).first.trashed.should==false
289
289
  end
290
-
290
+
291
291
  it "should not be able to untrash a not owned Conversation" do
292
292
  @receipt = @entity1.send_message(@entity2,"Body","Subject")
293
293
  @conversation = @receipt.conversation
@@ -302,7 +302,7 @@ describe "Mailboxer::Models::Messageable through User" do
302
302
  @conversation = @receipt.conversation
303
303
  @conversation.messages.first.attachment_identifier.should=='testfile.txt'
304
304
  end
305
-
305
+
306
306
  it "should be the same message time as passed" do
307
307
  message_time = 5.days.ago
308
308
  receipt = @entity1.send_message(@entity2, "Body", "Subject", nil, nil, message_time)
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Message do
3
+ describe Mailboxer::Message do
4
4
 
5
5
  before do
6
6
  @entity1 = FactoryGirl.create(:user)
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Message do
3
+ describe Mailboxer::Notification do
4
4
 
5
5
  before do
6
6
  @entity1 = FactoryGirl.create(:user)
@@ -8,6 +8,12 @@ describe Message do
8
8
  @entity3 = FactoryGirl.create(:user)
9
9
  end
10
10
 
11
+ it { should validate_presence_of :subject }
12
+ it { should validate_presence_of :body }
13
+
14
+ it { should ensure_length_of(:subject).is_at_most(Mailboxer.subject_max_length) }
15
+ it { should ensure_length_of(:body).is_at_most(Mailboxer.body_max_length) }
16
+
11
17
  it "should notify one user" do
12
18
  @entity1.notify("Subject", "Body")
13
19
 
@@ -41,9 +47,8 @@ describe Message do
41
47
  end
42
48
 
43
49
  it "should notify several users" do
44
- recipients = Set.new [@entity1, @entity2, @entity3]
45
- Notification.notify_all(recipients, "Subject", "Body")
46
-
50
+ recipients = Set.new [@entity1,@entity2,@entity3]
51
+ Mailboxer::Notification.notify_all(recipients,"Subject","Body")
47
52
  #Check getting ALL receipts
48
53
  @entity1.mailbox.receipts.size.should==1
49
54
  receipt = @entity1.mailbox.receipts.first
@@ -78,7 +83,7 @@ describe Message do
78
83
  end
79
84
 
80
85
  it "should notify a single recipient" do
81
- Notification.notify_all(@entity1, "Subject", "Body")
86
+ Mailboxer::Notification.notify_all(@entity1,"Subject","Body")
82
87
 
83
88
  #Check getting ALL receipts
84
89
  @entity1.mailbox.receipts.size.should==1
@@ -93,10 +98,37 @@ describe Message do
93
98
  notification.subject.should=="Subject"
94
99
  notification.body.should=="Body"
95
100
  end
96
-
101
+
102
+ describe "scopes" do
103
+ let(:scope_user) { FactoryGirl.create(:user) }
104
+ let!(:notification) { scope_user.notify("Body", "Subject").notification }
105
+
106
+ describe ".unread" do
107
+ it "finds unread notifications" do
108
+ unread_notification = scope_user.notify("Body", "Subject").notification
109
+ notification.mark_as_read(scope_user)
110
+ Mailboxer::Notification.unread.last.should == unread_notification
111
+ end
112
+ end
113
+
114
+ describe ".expired" do
115
+ it "finds expired notifications" do
116
+ notification.update_attributes(expires: 1.day.ago)
117
+ scope_user.mailbox.notifications.expired.count.should eq(1)
118
+ end
119
+ end
120
+
121
+ describe ".unexpired" do
122
+ it "finds unexpired notifications" do
123
+ notification.update_attributes(expires: 1.day.from_now)
124
+ scope_user.mailbox.notifications.unexpired.count.should eq(1)
125
+ end
126
+ end
127
+ end
128
+
97
129
  describe "#expire" do
98
- subject { Notification.new }
99
-
130
+ subject { described_class.new }
131
+
100
132
  describe "when the notification is already expired" do
101
133
  before do
102
134
  subject.stub(:expired? => true)
@@ -124,11 +156,11 @@ describe Message do
124
156
  subject.expire
125
157
  end
126
158
  end
127
-
159
+
128
160
  end
129
-
161
+
130
162
  describe "#expire!" do
131
- subject { Notification.new }
163
+ subject { described_class.new }
132
164
 
133
165
  describe "when the notification is already expired" do
134
166
  before do
@@ -157,44 +189,44 @@ describe Message do
157
189
  subject.expire!
158
190
  end
159
191
  end
160
-
192
+
161
193
  end
162
194
 
163
195
  describe "#expired?" do
164
- subject { Notification.new }
196
+ subject { described_class.new }
165
197
  context "when the expiration date is in the past" do
166
198
  before { subject.stub(:expires => Time.now - 1.second) }
167
199
  it 'should be expired' do
168
200
  subject.expired?.should be_true
169
201
  end
170
202
  end
171
-
203
+
172
204
  context "when the expiration date is now" do
173
205
  before {
174
206
  time = Time.now
175
207
  Time.stub(:now => time)
176
208
  subject.stub(:expires => time)
177
209
  }
178
-
210
+
179
211
  it 'should not be expired' do
180
212
  subject.expired?.should be_false
181
213
  end
182
214
  end
183
-
215
+
184
216
  context "when the expiration date is in the future" do
185
217
  before { subject.stub(:expires => Time.now + 1.second) }
186
218
  it 'should not be expired' do
187
219
  subject.expired?.should be_false
188
220
  end
189
221
  end
190
-
222
+
191
223
  context "when the expiration date is not set" do
192
224
  before {subject.stub(:expires => nil)}
193
225
  it 'should not be expired' do
194
226
  subject.expired?.should be_false
195
227
  end
196
228
  end
197
-
229
+
198
230
  end
199
231
 
200
232
  end