summaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/document_test.rb2
-rw-r--r--test/unit/issue_test.rb2
-rw-r--r--test/unit/mail_handler_test.rb11
-rw-r--r--test/unit/mailer_test.rb34
-rw-r--r--test/unit/user_test.rb45
-rw-r--r--test/unit/watcher_test.rb2
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,