diff options
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/document_test.rb | 2 | ||||
-rw-r--r-- | test/unit/issue_test.rb | 2 | ||||
-rw-r--r-- | test/unit/mail_handler_test.rb | 11 | ||||
-rw-r--r-- | test/unit/mailer_test.rb | 34 | ||||
-rw-r--r-- | test/unit/user_test.rb | 45 | ||||
-rw-r--r-- | test/unit/watcher_test.rb | 2 |
6 files changed, 85 insertions, 11 deletions
diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb index 98d15c0e0..50decb7c7 100644 --- a/test/unit/document_test.rb +++ b/test/unit/document_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class DocumentTest < ActiveSupport::TestCase fixtures :projects, :enumerations, :documents, :attachments, :enabled_modules, - :users, :members, :member_roles, :roles, + :users, :email_addresses, :members, :member_roles, :roles, :groups_users def test_create diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 03208d397..0384dfb0e 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class IssueTest < ActiveSupport::TestCase - fixtures :projects, :users, :members, :member_roles, :roles, + fixtures :projects, :users, :email_addresses, :members, :member_roles, :roles, :groups_users, :trackers, :projects_trackers, :enabled_modules, diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index a8a7846ba..bc7e0a0d0 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -223,6 +223,17 @@ class MailHandlerTest < ActiveSupport::TestCase assert_equal 1, issue.watcher_user_ids.size end + def test_add_issue_from_additional_email_address + user = User.find(2) + user.mail = 'mainaddress@somenet.foo' + user.save! + EmailAddress.create!(:user => user, :address => 'jsmith@somenet.foo') + + issue = submit_email('ticket_on_given_project.eml') + assert issue + assert_equal user, issue.author + end + def test_add_issue_by_unknown_user assert_no_difference 'User.count' do assert_equal false, diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index 9728387a4..b020e5303 100644 --- a/test/unit/mailer_test.rb +++ b/test/unit/mailer_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class MailerTest < ActiveSupport::TestCase include Redmine::I18n include ActionDispatch::Assertions::SelectorAssertions - fixtures :projects, :enabled_modules, :issues, :users, :members, + fixtures :projects, :enabled_modules, :issues, :users, :email_addresses, :members, :member_roles, :roles, :documents, :attachments, :news, :tokens, :journals, :journal_details, :changesets, :trackers, :projects_trackers, @@ -298,6 +298,14 @@ class MailerTest < ActiveSupport::TestCase assert last_email.bcc.include?('dlopper@somenet.foo') end + def test_issue_add_should_send_mail_to_all_user_email_address + EmailAddress.create!(:user_id => 3, :address => 'otheremail@somenet.foo') + issue = Issue.find(1) + assert Mailer.deliver_issue_add(issue) + assert last_email.bcc.include?('dlopper@somenet.foo') + assert last_email.bcc.include?('otheremail@somenet.foo') + end + test "#issue_add should not notify project members that are not allow to view the issue" do issue = Issue.find(1) Role.find(2).remove_permission!(:view_issues) @@ -771,6 +779,30 @@ class MailerTest < ActiveSupport::TestCase ActionMailer::Base.delivery_method = :test end + def test_email_addresses_should_keep_addresses + assert_equal ["foo@example.net"], + Mailer.email_addresses("foo@example.net") + + assert_equal ["foo@example.net", "bar@example.net"], + Mailer.email_addresses(["foo@example.net", "bar@example.net"]) + end + + def test_email_addresses_should_replace_users_with_their_email_addresses + assert_equal ["admin@somenet.foo"], + Mailer.email_addresses(User.find(1)) + + assert_equal ["admin@somenet.foo", "jsmith@somenet.foo"], + Mailer.email_addresses(User.where(:id => [1,2])).sort + end + + def test_email_addresses_should_include_notified_emails_addresses_only + EmailAddress.create!(:user_id => 2, :address => "another@somenet.foo", :notify => false) + EmailAddress.create!(:user_id => 2, :address => "another2@somenet.foo") + + assert_equal ["another2@somenet.foo", "jsmith@somenet.foo"], + Mailer.email_addresses(User.find(2)).sort + end + private def last_email diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index fbe35f253..429f2908b 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class UserTest < ActiveSupport::TestCase - fixtures :users, :members, :projects, :roles, :member_roles, :auth_sources, + fixtures :users, :email_addresses, :members, :projects, :roles, :member_roles, :auth_sources, :trackers, :issue_statuses, :projects_trackers, :watchers, @@ -57,11 +57,41 @@ class UserTest < ActiveSupport::TestCase assert_equal "foo@bar.com", u.mail end - def test_mail_validation - u = User.new + def test_should_create_email_address + u = User.new(:firstname => "new", :lastname => "user") + u.login = "create_email_address" + u.mail = "defaultemail@somenet.foo" + assert u.save + u.reload + assert u.email_address + assert_equal "defaultemail@somenet.foo", u.email_address.address + assert_equal true, u.email_address.is_default + assert_equal true, u.email_address.notify + end + + def test_should_not_create_user_without_mail + set_language_if_valid 'en' + u = User.new(:firstname => "new", :lastname => "user") + u.login = "user_without_mail" + assert !u.save + assert_equal ["Email #{I18n.translate('activerecord.errors.messages.blank')}"], u.errors.full_messages + end + + def test_should_not_create_user_with_blank_mail + set_language_if_valid 'en' + u = User.new(:firstname => "new", :lastname => "user") + u.login = "user_with_blank_mail" + u.mail = '' + assert !u.save + assert_equal ["Email #{I18n.translate('activerecord.errors.messages.blank')}"], u.errors.full_messages + end + + def test_should_not_update_user_with_blank_mail + set_language_if_valid 'en' + u = User.find(2) u.mail = '' - assert !u.valid? - assert_include I18n.translate('activerecord.errors.messages.blank'), u.errors[:mail] + assert !u.save + assert_equal ["Email #{I18n.translate('activerecord.errors.messages.blank')}"], u.errors.full_messages end def test_login_length_validation @@ -151,6 +181,7 @@ class UserTest < ActiveSupport::TestCase end def test_mail_uniqueness_should_not_be_case_sensitive + set_language_if_valid 'en' u = User.new(:firstname => "new", :lastname => "user", :mail => "newuser@somenet.foo") u.login = 'newuser1' u.password, u.password_confirmation = "password", "password" @@ -160,7 +191,7 @@ class UserTest < ActiveSupport::TestCase u.login = 'newuser2' u.password, u.password_confirmation = "password", "password" assert !u.save - assert_include I18n.translate('activerecord.errors.messages.taken'), u.errors[:mail] + assert_include "Email #{I18n.translate('activerecord.errors.messages.taken')}", u.errors.full_messages end def test_update @@ -677,7 +708,7 @@ class UserTest < ActiveSupport::TestCase assert_kind_of AnonymousUser, anon1 anon2 = AnonymousUser.create( :lastname => 'Anonymous', :firstname => '', - :mail => '', :login => '', :status => 0) + :login => '', :status => 0) assert_equal 1, anon2.errors.count end diff --git a/test/unit/watcher_test.rb b/test/unit/watcher_test.rb index f10276ccb..e7417332c 100644 --- a/test/unit/watcher_test.rb +++ b/test/unit/watcher_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class WatcherTest < ActiveSupport::TestCase - fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules, + fixtures :projects, :users, :email_addresses, :members, :member_roles, :roles, :enabled_modules, :issues, :issue_statuses, :enumerations, :trackers, :projects_trackers, :boards, :messages, :wikis, :wiki_pages, |