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 | ... | ... |