has_emails 0.0.1 → 0.1.0
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.
- 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
|