has_emails 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +8 -0
- data/README +32 -71
- data/Rakefile +8 -8
- data/app/models/email.rb +7 -79
- data/app/models/email_address.rb +32 -110
- data/db/migrate/001_create_email_addresses.rb +4 -13
- data/lib/has_emails/extensions/action_mailer.rb +106 -0
- data/lib/has_emails.rb +50 -77
- data/test/app_root/app/models/empty +0 -0
- data/test/app_root/config/environment.rb +4 -27
- data/test/app_root/db/migrate/001_migrate_has_messages_to_version_2.rb +9 -0
- data/test/app_root/db/migrate/002_migrate_has_emails_to_version_1.rb +9 -0
- data/test/factory.rb +48 -0
- data/test/functional/has_emails_test.rb +139 -0
- data/test/test_helper.rb +5 -68
- data/test/unit/action_mailer_test.rb +57 -0
- data/test/unit/email_address_test.rb +100 -152
- data/test/unit/email_test.rb +26 -86
- metadata +78 -87
- data/app/mailers/application_mailer.rb +0 -85
- data/app/models/email_recipient.rb +0 -78
- data/app/models/email_recipient_build_extension.rb +0 -7
- data/db/bootstrap/events.yml +0 -4
- data/db/bootstrap/states.yml +0 -9
- data/db/migrate/002_add_email_specs.rb +0 -18
- data/db/migrate/003_add_email_recipient_specs.rb +0 -18
- data/test/app_root/app/models/department.rb +0 -2
- data/test/app_root/app/models/user.rb +0 -3
- data/test/app_root/db/migrate/001_create_users.rb +0 -11
- data/test/app_root/db/migrate/002_create_departments.rb +0 -12
- data/test/fixtures/departments.yml +0 -9
- data/test/fixtures/email_addresses.yml +0 -32
- data/test/fixtures/message_recipients.yml +0 -85
- data/test/fixtures/messages.yml +0 -52
- data/test/fixtures/state_changes.yml +0 -128
- data/test/fixtures/users.yml +0 -11
- data/test/unit/application_mailer_test.rb +0 -69
- data/test/unit/email_recipient_test.rb +0 -79
- data/test/unit/has_emails_test.rb +0 -36
- data/test/unit/recipient_extension_test.rb +0 -99
@@ -1,79 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
|
3
|
-
class EmailRecipientTest < Test::Unit::TestCase
|
4
|
-
fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
|
5
|
-
|
6
|
-
def test_recipient_with_email_address_should_be_valid
|
7
|
-
assert_valid message_recipients(:bob_to_john)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_recipient_with_receiver_spec_should_be_valid
|
11
|
-
assert_valid message_recipients(:bob_to_random)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_recipient_with_email_address_attribute_should_be_valid
|
15
|
-
assert_valid message_recipients(:bob_to_marketing)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_require_receiver_spec
|
19
|
-
assert_invalid message_recipients(:bob_to_random), :receiver_spec, nil
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_require_minimum_length_for_receiver_spec
|
23
|
-
assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'ab'
|
24
|
-
assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a@a'
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_require_maximum_length_for_receiver_spec
|
28
|
-
assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 20
|
29
|
-
assert_valid message_recipients(:bob_to_random), :receiver_spec, 'a' * 300 + '@' + 'a' * 19
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_require_specific_format_for_receiver_spec
|
33
|
-
assert_invalid message_recipients(:bob_to_random), :receiver_spec, 'aaaaaaaaaa'
|
34
|
-
assert_valid message_recipients(:bob_to_random), :receiver_spec, 'aaa@aaa.com'
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_email_getter_should_be_same_as_message_getter
|
38
|
-
r = message_recipients(:bob_to_john)
|
39
|
-
assert_equal r.email, r.message
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_email_setter_should_be_same_as_message_setter
|
43
|
-
r = message_recipients(:bob_to_john)
|
44
|
-
r.email = messages(:sent_from_mary)
|
45
|
-
assert_equal r.email, r.message
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_email_id_getter_should_be_same_as_message_id_getter
|
49
|
-
r = message_recipients(:bob_to_john)
|
50
|
-
assert_equal r.email_id, r.message_id
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_email_id_setter_should_be_same_as_message_id_setter
|
54
|
-
r = message_recipients(:bob_to_john)
|
55
|
-
r.email_id = messages(:sent_from_mary).id
|
56
|
-
assert_equal r.email_id, r.message_id
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_receiver_should_be_receiver_spec_if_string_recipient
|
60
|
-
assert_equal 'random@random.com', message_recipients(:bob_to_random).receiver
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_receiver_should_be_model_if_not_string_recipient
|
64
|
-
assert_equal email_addresses(:john), message_recipients(:bob_to_john).receiver
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_should_set_receiver_spec_if_receiver_is_string
|
68
|
-
r = EmailRecipient.new
|
69
|
-
r.receiver = 'test@me.com'
|
70
|
-
assert_equal 'test@me.com', r.receiver_spec
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_should_set_receiver_and_receiver_spec_if_receiver_is_not_string
|
74
|
-
r = EmailRecipient.new
|
75
|
-
r.receiver = email_addresses(:john)
|
76
|
-
assert_equal 'john@john.com', r.receiver_spec
|
77
|
-
assert_equal email_addresses(:john), r.receiver
|
78
|
-
end
|
79
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
|
3
|
-
class HasEmailsTest < Test::Unit::TestCase
|
4
|
-
fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
|
5
|
-
|
6
|
-
def test_should_generate_received_association
|
7
|
-
assert_equal [messages(:sent_from_bob), messages(:sent_from_mary)], users(:john).received_emails.map(&:email)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_generate_unsent_association
|
11
|
-
assert_equal [messages(:unsent_from_bob)], users(:bob).unsent_emails
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_should_generate_sent_association
|
15
|
-
assert_equal [messages(:sent_from_bob), messages(:queued_from_bob)], users(:bob).sent_emails
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_generate_inbox
|
19
|
-
assert_instance_of MessageBox, users(:bob).email_box
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_inbox_should_contain_received_messages
|
23
|
-
u = users(:bob)
|
24
|
-
assert_equal u.received_emails, u.email_box.inbox
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_inbox_should_contain_unsent_messages
|
28
|
-
u = users(:bob)
|
29
|
-
assert_equal u.unsent_emails, u.email_box.unsent
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_inbox_should_contain_sent_messages
|
33
|
-
u = users(:bob)
|
34
|
-
assert_equal u.sent_emails, u.email_box.sent
|
35
|
-
end
|
36
|
-
end
|
@@ -1,99 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
|
3
|
-
class RecipientExtensionTest < Test::Unit::TestCase
|
4
|
-
fixtures :users, :email_addresses, :messages, :message_recipients, :state_changes
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@email = messages(:unsent_from_bob)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_input_string
|
11
|
-
@email.to << 'test@me.com'
|
12
|
-
assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_input_receiver
|
16
|
-
@email.to << email_addresses(:bob)
|
17
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_input_message_recipients
|
21
|
-
@email.to << EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')
|
22
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_push_string
|
26
|
-
@email.to.push('test@me.com')
|
27
|
-
assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_push_receiver
|
31
|
-
@email.to.push(email_addresses(:bob))
|
32
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_push_message_recipients
|
36
|
-
@email.to.push(EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to'))
|
37
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_should_concat_string
|
41
|
-
@email.to.concat(['test@me.com'])
|
42
|
-
assert_equal ['john@john.com', 'test@me.com'], @email.to.map(&:email_address).map(&:to_s)
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_concat_receiver
|
46
|
-
@email.to.concat([email_addresses(:bob)])
|
47
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_should_concat_message_recipients
|
51
|
-
@email.to.concat([EmailRecipient.new(:receiver => email_addresses(:bob), :kind => 'to')])
|
52
|
-
assert_equal [email_addresses(:john), email_addresses(:bob)], @email.to_receivers
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_should_delete_string
|
56
|
-
@email.to.delete('john@john.com')
|
57
|
-
assert_equal [], @email.to_receivers
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_should_delete_receiver
|
61
|
-
@email.to.delete(email_addresses(:john))
|
62
|
-
assert_equal [], @email.to_receivers
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_should_delete_message_recipients
|
66
|
-
@email.to.delete(@email.to.first)
|
67
|
-
assert_equal [], @email.to
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_should_replace_string
|
71
|
-
@email.to.replace(['bob@bob.com'])
|
72
|
-
assert_equal ['bob@bob.com'], @email.to.map(&:email_address).map(&:to_s)
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_should_replace_receiver
|
76
|
-
@email.to.replace([email_addresses(:bob)])
|
77
|
-
assert_equal [email_addresses(:bob)], @email.to_receivers
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_should_replace_message_recipients
|
81
|
-
@email.to.replace([])
|
82
|
-
assert_equal [], @email.to_receivers
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_should_set_kind_for_to_recipients
|
86
|
-
@email.to << users(:bob)
|
87
|
-
assert_equal 'to', @email.to.last.kind
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_should_set_kind_for_cc_recipients
|
91
|
-
@email.cc << users(:bob)
|
92
|
-
assert_equal 'cc', @email.cc.last.kind
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_should_set_kind_for_bcc_recipients
|
96
|
-
@email.bcc << users(:bob)
|
97
|
-
assert_equal 'bcc', @email.bcc.last.kind
|
98
|
-
end
|
99
|
-
end
|