620 |
620 |
end
|
621 |
621 |
|
622 |
622 |
def test_reminders
|
623 |
|
Mailer.reminders(:days => 42)
|
624 |
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
625 |
|
mail = last_email
|
626 |
|
assert mail.bcc.include?('dlopper@somenet.foo')
|
627 |
|
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail
|
628 |
|
assert_mail_body_match 'View all issues (2 open)', mail
|
629 |
|
assert_select_email do
|
630 |
|
assert_select 'a[href=?]',
|
631 |
|
'http://localhost:3000/issues?assigned_to_id=me&set_filter=1&sort=due_date%3Aasc',
|
632 |
|
:text => 'View all issues'
|
633 |
|
assert_select '/p:nth-last-of-type(1)', :text => 'View all issues (2 open)'
|
|
623 |
travel_to Date.today.to_time(:utc) do
|
|
624 |
Mailer.reminders(:days => 42)
|
|
625 |
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
626 |
mail = last_email
|
|
627 |
assert mail.bcc.include?('dlopper@somenet.foo')
|
|
628 |
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail
|
|
629 |
assert_mail_body_match 'View all issues (2 open)', mail
|
|
630 |
assert_select_email do
|
|
631 |
assert_select 'a[href=?]',
|
|
632 |
'http://localhost:3000/issues?assigned_to_id=me&set_filter=1&sort=due_date%3Aasc',
|
|
633 |
:text => 'View all issues'
|
|
634 |
assert_select '/p:nth-last-of-type(1)', :text => 'View all issues (2 open)'
|
|
635 |
end
|
|
636 |
assert_equal '1 issue(s) due in the next 42 days', mail.subject
|
634 |
637 |
end
|
635 |
|
assert_equal '1 issue(s) due in the next 42 days', mail.subject
|
636 |
638 |
end
|
637 |
639 |
|
638 |
640 |
def test_reminders_language_auto
|
639 |
641 |
with_settings :default_language => 'fr' do
|
640 |
642 |
user = User.find(3)
|
641 |
643 |
user.update_attribute :language, ''
|
642 |
|
Mailer.reminders(:days => 42)
|
643 |
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
644 |
|
mail = last_email
|
645 |
|
assert mail.bcc.include?('dlopper@somenet.foo')
|
646 |
|
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (En retard de 5 jours)', mail
|
647 |
|
assert_equal "1 demande(s) arrivent à échéance (42)", mail.subject
|
|
644 |
travel_to Date.today.to_time(:utc) do
|
|
645 |
Mailer.reminders(:days => 42)
|
|
646 |
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
647 |
mail = last_email
|
|
648 |
assert mail.bcc.include?('dlopper@somenet.foo')
|
|
649 |
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (En retard de 5 jours)', mail
|
|
650 |
assert_equal "1 demande(s) arrivent à échéance (42)", mail.subject
|
|
651 |
end
|
648 |
652 |
end
|
649 |
653 |
end
|
650 |
654 |
|
... | ... | |
665 |
669 |
end
|
666 |
670 |
|
667 |
671 |
def test_reminders_for_users
|
668 |
|
Mailer.reminders(:days => 42, :users => ['5'])
|
669 |
|
assert_equal 0, ActionMailer::Base.deliveries.size # No mail for dlopper
|
670 |
|
Mailer.reminders(:days => 42, :users => ['3'])
|
671 |
|
assert_equal 1, ActionMailer::Base.deliveries.size # No mail for dlopper
|
672 |
|
mail = last_email
|
673 |
|
assert mail.bcc.include?('dlopper@somenet.foo')
|
674 |
|
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail
|
|
672 |
travel_to Date.today.to_time(:utc) do
|
|
673 |
Mailer.reminders(:days => 42, :users => ['5'])
|
|
674 |
assert_equal 0, ActionMailer::Base.deliveries.size # No mail for dlopper
|
|
675 |
Mailer.reminders(:days => 42, :users => ['3'])
|
|
676 |
assert_equal 1, ActionMailer::Base.deliveries.size # No mail for dlopper
|
|
677 |
mail = last_email
|
|
678 |
assert mail.bcc.include?('dlopper@somenet.foo')
|
|
679 |
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail
|
|
680 |
end
|
675 |
681 |
end
|
676 |
682 |
|
677 |
683 |
def test_reminder_should_include_issues_assigned_to_groups
|
... | ... | |
683 |
689 |
group.users << user_dlopper
|
684 |
690 |
|
685 |
691 |
Issue.update_all(:assigned_to_id => nil)
|
686 |
|
due_date = 10.days.from_now
|
687 |
|
Issue.update(1, :due_date => due_date, :assigned_to_id => user_dlopper.id)
|
688 |
|
Issue.update(2, :due_date => due_date, :assigned_to_id => group.id)
|
689 |
|
Issue.create!(:project_id => 1, :tracker_id => 1, :status_id => 1,
|
690 |
|
:subject => 'Assigned to group', :assigned_to => group,
|
691 |
|
:due_date => 5.days.from_now,
|
692 |
|
:author_id => 2)
|
693 |
|
ActionMailer::Base.deliveries.clear
|
694 |
|
|
695 |
|
Mailer.reminders(:days => 7)
|
696 |
|
assert_equal 2, ActionMailer::Base.deliveries.size
|
697 |
|
assert_equal %w(dlopper@somenet.foo jsmith@somenet.foo), recipients
|
698 |
|
ActionMailer::Base.deliveries.each do |mail|
|
699 |
|
assert_mail_body_match '1 issue(s) that are assigned to you are due in the next 7 days::', mail
|
700 |
|
assert_mail_body_match 'Assigned to group (Due in 5 days)', mail
|
701 |
|
assert_mail_body_match "View all issues (#{mail.bcc.include?('dlopper@somenet.foo') ? 3 : 2} open)", mail
|
|
692 |
travel_to Date.today.to_time(:utc) do
|
|
693 |
due_date = 10.days.from_now
|
|
694 |
Issue.update(1, :due_date => due_date, :assigned_to_id => user_dlopper.id)
|
|
695 |
Issue.update(2, :due_date => due_date, :assigned_to_id => group.id)
|
|
696 |
Issue.create!(:project_id => 1, :tracker_id => 1, :status_id => 1,
|
|
697 |
:subject => 'Assigned to group', :assigned_to => group,
|
|
698 |
:due_date => 5.days.from_now,
|
|
699 |
:author_id => 2)
|
|
700 |
ActionMailer::Base.deliveries.clear
|
|
701 |
|
|
702 |
Mailer.reminders(:days => 7)
|
|
703 |
assert_equal 2, ActionMailer::Base.deliveries.size
|
|
704 |
assert_equal %w(dlopper@somenet.foo jsmith@somenet.foo), recipients
|
|
705 |
ActionMailer::Base.deliveries.each do |mail|
|
|
706 |
assert_mail_body_match '1 issue(s) that are assigned to you are due in the next 7 days::', mail
|
|
707 |
assert_mail_body_match 'Assigned to group (Due in 5 days)', mail
|
|
708 |
assert_mail_body_match "View all issues (#{mail.bcc.include?('dlopper@somenet.foo') ? 3 : 2} open)", mail
|
|
709 |
end
|
702 |
710 |
end
|
703 |
711 |
end
|
704 |
712 |
end
|
... | ... | |
736 |
744 |
end
|
737 |
745 |
|
738 |
746 |
def test_reminders_should_sort_issues_by_due_date
|
739 |
|
user = User.find(2)
|
740 |
|
Issue.generate!(:assigned_to => user, :due_date => 2.days.from_now, :subject => 'quux')
|
741 |
|
Issue.generate!(:assigned_to => user, :due_date => 0.days.from_now, :subject => 'baz')
|
742 |
|
Issue.generate!(:assigned_to => user, :due_date => 1.days.from_now, :subject => 'qux')
|
743 |
|
Issue.generate!(:assigned_to => user, :due_date => -1.days.from_now, :subject => 'foo')
|
744 |
|
Issue.generate!(:assigned_to => user, :due_date => -1.days.from_now, :subject => 'bar')
|
745 |
|
ActionMailer::Base.deliveries.clear
|
|
747 |
travel_to Date.today.to_time(:utc) do
|
|
748 |
user = User.find(2)
|
|
749 |
Issue.generate!(:assigned_to => user, :due_date => 2.days.from_now, :subject => 'quux')
|
|
750 |
Issue.generate!(:assigned_to => user, :due_date => 0.days.from_now, :subject => 'baz')
|
|
751 |
Issue.generate!(:assigned_to => user, :due_date => 1.days.from_now, :subject => 'qux')
|
|
752 |
Issue.generate!(:assigned_to => user, :due_date => -1.days.from_now, :subject => 'foo')
|
|
753 |
Issue.generate!(:assigned_to => user, :due_date => -1.days.from_now, :subject => 'bar')
|
|
754 |
ActionMailer::Base.deliveries.clear
|
746 |
755 |
|
747 |
|
Mailer.reminders(:days => 7, :users => [user.id])
|
748 |
|
assert_equal 1, ActionMailer::Base.deliveries.size
|
749 |
|
assert_select_email do
|
750 |
|
assert_select 'li', 5
|
751 |
|
assert_select 'li:nth-child(1)', /foo \(1 day late\)/
|
752 |
|
assert_select 'li:nth-child(2)', /bar \(1 day late\)/
|
753 |
|
assert_select 'li:nth-child(3)', /baz \(Due in 0 days\)/
|
754 |
|
assert_select 'li:nth-child(4)', /qux \(Due in 1 day\)/
|
755 |
|
assert_select 'li:nth-child(5)', /quux \(Due in 2 days\)/
|
|
756 |
Mailer.reminders(:days => 7, :users => [user.id])
|
|
757 |
assert_equal 1, ActionMailer::Base.deliveries.size
|
|
758 |
assert_select_email do
|
|
759 |
assert_select 'li', 5
|
|
760 |
assert_select 'li:nth-child(1)', /foo \(1 day late\)/
|
|
761 |
assert_select 'li:nth-child(2)', /bar \(1 day late\)/
|
|
762 |
assert_select 'li:nth-child(3)', /baz \(Due in 0 days\)/
|
|
763 |
assert_select 'li:nth-child(4)', /qux \(Due in 1 day\)/
|
|
764 |
assert_select 'li:nth-child(5)', /quux \(Due in 2 days\)/
|
|
765 |
end
|
756 |
766 |
end
|
757 |
767 |
end
|
758 |
768 |
|