Commit f0f47ad960ce242a17ad910cbf66653b9d7697e7
1 parent
70ba11a8
Exists in
master
and in
29 other branches
rails3: partially fix EnvironmentMailing tests
3 tests are still failing, waiting for the migration to the new ActionMailer API
Showing
1 changed file
with
33 additions
and
15 deletions
Show diff stats
test/unit/environment_mailing_test.rb
... | ... | @@ -16,70 +16,74 @@ class EnvironmentMailingTest < ActiveSupport::TestCase |
16 | 16 | should 'require source_id' do |
17 | 17 | mailing = EnvironmentMailing.new |
18 | 18 | mailing.valid? |
19 | - assert mailing.errors.invalid?(:source_id) | |
19 | + assert mailing.errors[:source_id].any? | |
20 | 20 | |
21 | 21 | mailing.source_id = environment.id |
22 | 22 | mailing.valid? |
23 | - assert !mailing.errors.invalid?(:source_id) | |
23 | + assert !mailing.errors[:source_id].any? | |
24 | 24 | end |
25 | 25 | |
26 | 26 | should 'return environment name' do |
27 | - mailing = EnvironmentMailing.new(:source => environment) | |
27 | + mailing = new_mailing(environment) | |
28 | 28 | assert_equal environment.name, mailing.source.name |
29 | 29 | end |
30 | 30 | |
31 | 31 | should 'return environment with source_id' do |
32 | - mailing = EnvironmentMailing.new(:source => environment) | |
32 | + mailing = new_mailing(environment) | |
33 | 33 | assert_equal environment, mailing.source |
34 | 34 | end |
35 | 35 | |
36 | 36 | should 'return signature message' do |
37 | - mailing = EnvironmentMailing.new(:source => environment) | |
37 | + mailing = new_mailing(environment) | |
38 | 38 | assert_equal 'Sent by Network.', mailing.signature_message |
39 | 39 | end |
40 | 40 | |
41 | 41 | should 'return url for environment on url' do |
42 | - mailing = EnvironmentMailing.new(:source => environment) | |
43 | - environment.domains << Domain.create(:name => 'noosfero.net', :is_default => true) | |
42 | + mailing = new_mailing(environment) | |
43 | + domain = Domain.new(:name => 'noosfero.net') | |
44 | + domain.is_default = true | |
45 | + environment.domains << domain | |
44 | 46 | assert_equal 'http://noosfero.net', mailing.url |
45 | 47 | end |
46 | 48 | |
47 | 49 | should 'display name and email on generate_from' do |
48 | - mailing = EnvironmentMailing.new(:source => environment, :person => person_1) | |
50 | + mailing = new_mailing(environment).tap do |m| | |
51 | + m.person = person_1 | |
52 | + end | |
49 | 53 | assert_equal "#{environment.name} <#{environment.contact_email}>", mailing.generate_from |
50 | 54 | end |
51 | 55 | |
52 | 56 | should 'deliver mailing to each recipient after create' do |
53 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :person => person_1) | |
57 | + mailing = create_mailing(environment, :person => person_1) | |
54 | 58 | process_delayed_job_queue |
55 | 59 | assert_equal 2, ActionMailer::Base.deliveries.count |
56 | 60 | end |
57 | 61 | |
58 | 62 | should 'create mailing sent to each recipient after delivering mailing' do |
59 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :person => person_1) | |
63 | + mailing = create_mailing(environment, :person => person_1) | |
60 | 64 | assert_difference MailingSent, :count, 2 do |
61 | 65 | process_delayed_job_queue |
62 | 66 | end |
63 | 67 | end |
64 | 68 | |
65 | 69 | should 'change locale according to the mailing locale' do |
66 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :locale => 'pt', :person => person_1) | |
70 | + mailing = create_mailing(environment, :locale => 'pt', :person => person_1) | |
67 | 71 | Noosfero.expects(:with_locale).with('pt') |
68 | 72 | process_delayed_job_queue |
69 | 73 | end |
70 | 74 | |
71 | 75 | should 'return recipients' do |
72 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :locale => 'pt', :person => person_1) | |
76 | + mailing = create_mailing(environment, :locale => 'pt', :person => person_1) | |
73 | 77 | assert_equal [person_1, person_2], mailing.recipients |
74 | 78 | end |
75 | 79 | |
76 | 80 | should 'return recipients according to limit' do |
77 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :locale => 'pt', :person => person_1) | |
81 | + mailing = create_mailing(environment, :locale => 'pt', :person => person_1) | |
78 | 82 | assert_equal [person_1], mailing.recipients(0, 1) |
79 | 83 | end |
80 | 84 | |
81 | 85 | should 'return true if already sent mailing to a recipient' do |
82 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :person => person_1) | |
86 | + mailing = create_mailing(environment, :person => person_1) | |
83 | 87 | process_delayed_job_queue |
84 | 88 | |
85 | 89 | assert mailing.mailing_sents.find_by_person_id(person_1.id) |
... | ... | @@ -88,10 +92,24 @@ class EnvironmentMailingTest < ActiveSupport::TestCase |
88 | 92 | should 'return false if did not sent mailing to a recipient' do |
89 | 93 | recipient = fast_create(Person) |
90 | 94 | person = Person['user_one'] |
91 | - mailing = EnvironmentMailing.create(:source => environment, :subject => 'Hello', :body => 'We have some news', :person => person_1) | |
95 | + mailing = create_mailing(environment, :person => person_1) | |
92 | 96 | process_delayed_job_queue |
93 | 97 | |
94 | 98 | assert !mailing.mailing_sents.find_by_person_id(recipient.id) |
95 | 99 | end |
96 | 100 | |
101 | + def new_mailing(environment) | |
102 | + m = EnvironmentMailing.new(:subject => 'Hello', :body => 'We have some news') | |
103 | + m.source = environment | |
104 | + m | |
105 | + end | |
106 | + | |
107 | + def create_mailing(environment, options) | |
108 | + new_mailing(environment).tap do |m| | |
109 | + m.locale = options[:locale] | |
110 | + m.person = options[:person] | |
111 | + m.save! | |
112 | + end | |
113 | + end | |
114 | + | |
97 | 115 | end | ... | ... |