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,70 +16,74 @@ class EnvironmentMailingTest < ActiveSupport::TestCase | ||
16 | should 'require source_id' do | 16 | should 'require source_id' do |
17 | mailing = EnvironmentMailing.new | 17 | mailing = EnvironmentMailing.new |
18 | mailing.valid? | 18 | mailing.valid? |
19 | - assert mailing.errors.invalid?(:source_id) | 19 | + assert mailing.errors[:source_id].any? |
20 | 20 | ||
21 | mailing.source_id = environment.id | 21 | mailing.source_id = environment.id |
22 | mailing.valid? | 22 | mailing.valid? |
23 | - assert !mailing.errors.invalid?(:source_id) | 23 | + assert !mailing.errors[:source_id].any? |
24 | end | 24 | end |
25 | 25 | ||
26 | should 'return environment name' do | 26 | should 'return environment name' do |
27 | - mailing = EnvironmentMailing.new(:source => environment) | 27 | + mailing = new_mailing(environment) |
28 | assert_equal environment.name, mailing.source.name | 28 | assert_equal environment.name, mailing.source.name |
29 | end | 29 | end |
30 | 30 | ||
31 | should 'return environment with source_id' do | 31 | should 'return environment with source_id' do |
32 | - mailing = EnvironmentMailing.new(:source => environment) | 32 | + mailing = new_mailing(environment) |
33 | assert_equal environment, mailing.source | 33 | assert_equal environment, mailing.source |
34 | end | 34 | end |
35 | 35 | ||
36 | should 'return signature message' do | 36 | should 'return signature message' do |
37 | - mailing = EnvironmentMailing.new(:source => environment) | 37 | + mailing = new_mailing(environment) |
38 | assert_equal 'Sent by Network.', mailing.signature_message | 38 | assert_equal 'Sent by Network.', mailing.signature_message |
39 | end | 39 | end |
40 | 40 | ||
41 | should 'return url for environment on url' do | 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 | assert_equal 'http://noosfero.net', mailing.url | 46 | assert_equal 'http://noosfero.net', mailing.url |
45 | end | 47 | end |
46 | 48 | ||
47 | should 'display name and email on generate_from' do | 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 | assert_equal "#{environment.name} <#{environment.contact_email}>", mailing.generate_from | 53 | assert_equal "#{environment.name} <#{environment.contact_email}>", mailing.generate_from |
50 | end | 54 | end |
51 | 55 | ||
52 | should 'deliver mailing to each recipient after create' do | 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 | process_delayed_job_queue | 58 | process_delayed_job_queue |
55 | assert_equal 2, ActionMailer::Base.deliveries.count | 59 | assert_equal 2, ActionMailer::Base.deliveries.count |
56 | end | 60 | end |
57 | 61 | ||
58 | should 'create mailing sent to each recipient after delivering mailing' do | 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 | assert_difference MailingSent, :count, 2 do | 64 | assert_difference MailingSent, :count, 2 do |
61 | process_delayed_job_queue | 65 | process_delayed_job_queue |
62 | end | 66 | end |
63 | end | 67 | end |
64 | 68 | ||
65 | should 'change locale according to the mailing locale' do | 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 | Noosfero.expects(:with_locale).with('pt') | 71 | Noosfero.expects(:with_locale).with('pt') |
68 | process_delayed_job_queue | 72 | process_delayed_job_queue |
69 | end | 73 | end |
70 | 74 | ||
71 | should 'return recipients' do | 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 | assert_equal [person_1, person_2], mailing.recipients | 77 | assert_equal [person_1, person_2], mailing.recipients |
74 | end | 78 | end |
75 | 79 | ||
76 | should 'return recipients according to limit' do | 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 | assert_equal [person_1], mailing.recipients(0, 1) | 82 | assert_equal [person_1], mailing.recipients(0, 1) |
79 | end | 83 | end |
80 | 84 | ||
81 | should 'return true if already sent mailing to a recipient' do | 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 | process_delayed_job_queue | 87 | process_delayed_job_queue |
84 | 88 | ||
85 | assert mailing.mailing_sents.find_by_person_id(person_1.id) | 89 | assert mailing.mailing_sents.find_by_person_id(person_1.id) |
@@ -88,10 +92,24 @@ class EnvironmentMailingTest < ActiveSupport::TestCase | @@ -88,10 +92,24 @@ class EnvironmentMailingTest < ActiveSupport::TestCase | ||
88 | should 'return false if did not sent mailing to a recipient' do | 92 | should 'return false if did not sent mailing to a recipient' do |
89 | recipient = fast_create(Person) | 93 | recipient = fast_create(Person) |
90 | person = Person['user_one'] | 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 | process_delayed_job_queue | 96 | process_delayed_job_queue |
93 | 97 | ||
94 | assert !mailing.mailing_sents.find_by_person_id(recipient.id) | 98 | assert !mailing.mailing_sents.find_by_person_id(recipient.id) |
95 | end | 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 | end | 115 | end |