mailboxer 0.10.3 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,6 +37,12 @@ describe Conversation do
37
37
  @conversation.recipients.count(@entity2).should==1
38
38
  end
39
39
 
40
+ it "should be able to be marked as deleted" do
41
+ @conversation.move_to_trash(@entity1)
42
+ @conversation.mark_as_deleted(@entity1)
43
+ @conversation.should be_is_deleted(@entity1)
44
+ end
45
+
40
46
  it "should be able to be marked as read" do
41
47
  #@conversation.move_to_trash(@entity1)
42
48
  @conversation.mark_as_read(@entity1)
@@ -49,6 +55,22 @@ describe Conversation do
49
55
  @conversation.should be_is_unread(@entity1)
50
56
  end
51
57
 
58
+ it "should be able to add a new participant" do
59
+ new_user = FactoryGirl.create(:user)
60
+ @conversation.add_participant(new_user)
61
+ @conversation.participants.count.should == 3
62
+ @conversation.participants.should include(new_user, @entity1, @entity2)
63
+ @conversation.receipts_for(new_user).count.should == @conversation.receipts_for(@entity1).count
64
+ end
65
+
66
+ it "should deliver messages to new participants" do
67
+ new_user = FactoryGirl.create(:user)
68
+ @conversation.add_participant(new_user)
69
+ expect{
70
+ receipt5 = @entity1.reply_to_all(@receipt4,"Reply body 4")
71
+ }.to change{ @conversation.receipts_for(new_user).count }.by 1
72
+ end
73
+
52
74
  describe "scopes" do
53
75
  let(:participant) { FactoryGirl.create(:user) }
54
76
  let!(:inbox_conversation) { @entity1.send_message(participant, "Body", "Subject").notification.conversation }
@@ -103,6 +103,42 @@ describe Mailbox do
103
103
  @entity2.mailbox.receipts.trash.count.should==0
104
104
  end
105
105
 
106
+ it "should deleted messages are not shown in inbox" do
107
+ assert @entity1.mailbox.receipts.inbox
108
+ @entity1.mailbox.inbox.count.should==2
109
+ @entity1.mailbox.receipts.inbox[0].should==Receipt.recipient(@entity1).inbox.conversation(@conversation)[0]
110
+ @entity1.mailbox.receipts.inbox[1].should==Receipt.recipient(@entity1).inbox.conversation(@conversation)[1]
111
+
112
+ assert @entity1.mailbox.receipts.inbox.mark_as_deleted
113
+ @entity1.mailbox.inbox.count.should==0
114
+ end
115
+
116
+ it "should deleted messages are not shown in sentbox" do
117
+ assert @entity1.mailbox.receipts.inbox
118
+ @entity1.mailbox.receipts.sentbox.count.should==2
119
+ @entity1.mailbox.receipts.sentbox[0].should==@receipt1
120
+ @entity1.mailbox.receipts.sentbox[1].should==@receipt3
121
+
122
+ assert @entity1.mailbox.receipts.sentbox.mark_as_deleted
123
+ @entity1.mailbox.sentbox.count.should==0
124
+ end
125
+
126
+ it "should reply for deleted messages return to inbox" do
127
+ assert @entity1.mailbox.receipts.inbox
128
+ @entity1.mailbox.inbox.count.should==2
129
+ @entity1.mailbox.receipts.inbox[0].should==Receipt.recipient(@entity1).inbox.conversation(@conversation)[0]
130
+ @entity1.mailbox.receipts.inbox[1].should==Receipt.recipient(@entity1).inbox.conversation(@conversation)[1]
131
+
132
+ assert @entity1.mailbox.receipts.inbox.mark_as_deleted
133
+ @entity1.mailbox.inbox.count.should==0
134
+
135
+ @entity2.reply_to_all(@receipt1,"Reply body 1")
136
+ @entity1.mailbox.inbox.count.should==1
137
+
138
+ @entity2.reply_to_all(@receipt3,"Reply body 3")
139
+ @entity1.mailbox.inbox.count.should==2
140
+ end
141
+
106
142
  context "STI models" do
107
143
  before do
108
144
  @sti_entity1 = FactoryGirl.create(:user)
@@ -304,12 +304,15 @@ describe "Mailboxer::Models::Messageable through User" do
304
304
  end
305
305
 
306
306
  it "should be the same message time as passed" do
307
- message_time = 5.days.ago.to_time
307
+ message_time = 5.days.ago
308
308
  receipt = @entity1.send_message(@entity2, "Body", "Subject", nil, nil, message_time)
309
- receipt.message.created_at.should eql(message_time)
310
- receipt.message.updated_at.should eql(message_time)
311
- receipt.message.conversation.created_at.should eql(message_time)
312
- receipt.message.conversation.updated_at.should eql(message_time)
309
+ # We're going to compare the string representation, because ActiveSupport::TimeWithZone
310
+ # has microsecond precision in ruby, but some databases don't support this level of precision.
311
+ expected = message_time.utc.to_s
312
+ receipt.message.created_at.utc.to_s.should == expected
313
+ receipt.message.updated_at.utc.to_s.should == expected
314
+ receipt.message.conversation.created_at.utc.to_s.should == expected
315
+ receipt.message.conversation.updated_at.utc.to_s.should == expected
313
316
  end
314
317
 
315
318
  end
@@ -20,5 +20,11 @@ describe Message do
20
20
  @receipt3.notification.recipients.count.should==2
21
21
  @receipt4.notification.recipients.count.should==2
22
22
  end
23
+
24
+ it "should be able to be marked as deleted" do
25
+ @receipt1.deleted.should==false
26
+ @message1.mark_as_deleted @entity1
27
+ @message1.is_deleted?(@entity1).should==true
28
+ end
23
29
 
24
30
  end
@@ -28,7 +28,19 @@ describe Receipt do
28
28
  @mail1.mark_as_read
29
29
  @mail1.is_read.should==true
30
30
  end
31
-
31
+
32
+ it "should be able to be marked as deleted" do
33
+ @mail1.deleted.should==false
34
+ @mail1.mark_as_deleted
35
+ @mail1.deleted.should==true
36
+ end
37
+
38
+ it "should be able to be marked as not deleted" do
39
+ @mail1.deleted=true
40
+ @mail1.mark_as_not_deleted
41
+ @mail1.deleted.should==false
42
+ end
43
+
32
44
  context "STI models" do
33
45
  before do
34
46
  @entity3 = FactoryGirl.create(:user)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailboxer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Casanova Cuesta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-23 00:00:00.000000000 Z
11
+ date: 2013-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: foreigner
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.6.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: appraisal
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: factory_girl
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -109,7 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: 0.3.9
111
125
  - !ruby/object:Gem::Dependency
112
- name: sqlite3-ruby
126
+ name: sqlite3
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - '>='
@@ -137,6 +151,7 @@ files:
137
151
  - .rspec
138
152
  - .travis.yml
139
153
  - .yardopts
154
+ - Appraisals
140
155
  - Gemfile
141
156
  - LICENSE.txt
142
157
  - README.md
@@ -162,6 +177,10 @@ files:
162
177
  - db/migrate/20111204163911_add_attachments.rb
163
178
  - db/migrate/20120813110712_rename_receipts_read.rb
164
179
  - db/migrate/20130305144212_add_global_notification_support.rb
180
+ - gemfiles/rails3.0.gemfile
181
+ - gemfiles/rails3.1.gemfile
182
+ - gemfiles/rails3.2.gemfile
183
+ - gemfiles/rails4.0.gemfile
165
184
  - lib/generators/mailboxer/install_generator.rb
166
185
  - lib/generators/mailboxer/templates/initializer.rb
167
186
  - lib/generators/mailboxer/views_generator.rb
@@ -236,7 +255,8 @@ files:
236
255
  - spec/spec_helper.rb
237
256
  - spec/testfile.txt
238
257
  homepage: https://github.com/ging/mailboxer
239
- licenses: []
258
+ licenses:
259
+ - MIT
240
260
  metadata: {}
241
261
  post_install_message:
242
262
  rdoc_options: []
@@ -254,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
274
  version: '0'
255
275
  requirements: []
256
276
  rubyforge_project:
257
- rubygems_version: 2.0.0
277
+ rubygems_version: 2.0.5
258
278
  signing_key:
259
279
  specification_version: 4
260
280
  summary: Messaging system for rails apps.