Commit f0f47ad960ce242a17ad910cbf66653b9d7697e7
1 parent
70ba11a8
Exists in
master
and in
27 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 |