diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-01-17 14:14:12 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2015-01-17 14:14:12 +0000 |
commit | e3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189 (patch) | |
tree | 3b54c10eecece6cc2674491a76a4e5e932d82d1e /test/functional | |
parent | 7f29c2fd88f271ac59f1c10b90942fec57b35ae2 (diff) | |
download | redmine-e3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189.tar.gz redmine-e3618bdbecd9b5d86eb6d2c8c256ba3fcdf05189.zip |
Add support for multiple email addresses per user (#4244).
git-svn-id: http://svn.redmine.org/redmine/trunk@13886 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/functional')
20 files changed, 163 insertions, 19 deletions
diff --git a/test/functional/admin_controller_test.rb b/test/functional/admin_controller_test.rb index 00a503051..bef3e4284 100644 --- a/test/functional/admin_controller_test.rb +++ b/test/functional/admin_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class AdminControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles + fixtures :projects, :users, :email_addresses, :roles def setup User.current = nil diff --git a/test/functional/documents_controller_test.rb b/test/functional/documents_controller_test.rb index 065922a56..c53142b5b 100644 --- a/test/functional/documents_controller_test.rb +++ b/test/functional/documents_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class DocumentsControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, :documents, :enumerations, :groups_users, :attachments diff --git a/test/functional/email_addresses_controller_test.rb b/test/functional/email_addresses_controller_test.rb new file mode 100644 index 000000000..7c52d9c1d --- /dev/null +++ b/test/functional/email_addresses_controller_test.rb @@ -0,0 +1,144 @@ +# Redmine - project management software +# Copyright (C) 2006-2015 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require File.expand_path('../../test_helper', __FILE__) + +class EmailAddressesControllerTest < ActionController::TestCase + fixtures :users, :email_addresses + + def setup + User.current = nil + end + + def test_index_with_no_additional_emails + @request.session[:user_id] = 2 + get :index, :user_id => 2 + assert_response :success + assert_template 'index' + end + + def test_index_with_additional_emails + @request.session[:user_id] = 2 + EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + get :index, :user_id => 2 + assert_response :success + assert_template 'index' + assert_select '.email', :text => 'another@somenet.foo' + end + + def test_index_with_additional_emails_as_js + @request.session[:user_id] = 2 + EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + xhr :get, :index, :user_id => 2 + assert_response :success + assert_template 'index' + assert_include 'another@somenet.foo', response.body + end + + def test_index_by_admin_should_be_allowed + @request.session[:user_id] = 1 + get :index, :user_id => 2 + assert_response :success + assert_template 'index' + end + + def test_index_by_another_user_should_be_denied + @request.session[:user_id] = 3 + get :index, :user_id => 2 + assert_response 403 + end + + def test_create + @request.session[:user_id] = 2 + assert_difference 'EmailAddress.count' do + post :create, :user_id => 2, :email_address => {:address => 'another@somenet.foo'} + assert_response 302 + assert_redirected_to '/users/2/email_addresses' + end + email = EmailAddress.order('id DESC').first + assert_equal 2, email.user_id + assert_equal 'another@somenet.foo', email.address + end + + def test_create_as_js + @request.session[:user_id] = 2 + assert_difference 'EmailAddress.count' do + xhr :post, :create, :user_id => 2, :email_address => {:address => 'another@somenet.foo'} + assert_response 200 + end + end + + def test_create_with_failure + @request.session[:user_id] = 2 + assert_no_difference 'EmailAddress.count' do + post :create, :user_id => 2, :email_address => {:address => 'invalid'} + assert_response 200 + end + end + + def test_update + @request.session[:user_id] = 2 + email = EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + put :update, :user_id => 2, :id => email.id, :notify => '0' + assert_response 302 + + assert_equal false, email.reload.notify + end + + def test_update_as_js + @request.session[:user_id] = 2 + email = EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + xhr :put, :update, :user_id => 2, :id => email.id, :notify => '0' + assert_response 200 + + assert_equal false, email.reload.notify + end + + def test_destroy + @request.session[:user_id] = 2 + email = EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + assert_difference 'EmailAddress.count', -1 do + delete :destroy, :user_id => 2, :id => email.id + assert_response 302 + assert_redirected_to '/users/2/email_addresses' + end + end + + def test_destroy_as_js + @request.session[:user_id] = 2 + email = EmailAddress.create!(:user_id => 2, :address => 'another@somenet.foo') + + assert_difference 'EmailAddress.count', -1 do + xhr :delete, :destroy, :user_id => 2, :id => email.id + assert_response 200 + end + end + + def test_should_not_destroy_default + @request.session[:user_id] = 2 + + assert_no_difference 'EmailAddress.count' do + delete :destroy, :user_id => 2, :id => User.find(2).email_address.id + assert_response 404 + end + end +end diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 04ebec0df..86c5cdb16 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -19,7 +19,7 @@ require File.expand_path('../../test_helper', __FILE__) class IssuesControllerTest < ActionController::TestCase fixtures :projects, - :users, + :users, :email_addresses, :roles, :members, :member_roles, diff --git a/test/functional/issues_custom_fields_visibility_test.rb b/test/functional/issues_custom_fields_visibility_test.rb index 7d8cfa9a4..6e9ec5f11 100644 --- a/test/functional/issues_custom_fields_visibility_test.rb +++ b/test/functional/issues_custom_fields_visibility_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class IssuesCustomFieldsVisibilityTest < ActionController::TestCase tests IssuesController fixtures :projects, - :users, + :users, :email_addresses, :roles, :members, :member_roles, diff --git a/test/functional/mail_handler_controller_test.rb b/test/functional/mail_handler_controller_test.rb index 91ae34122..3487d5eb2 100644 --- a/test/functional/mail_handler_controller_test.rb +++ b/test/functional/mail_handler_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class MailHandlerControllerTest < ActionController::TestCase - fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, + fixtures :users, :email_addresses, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :projects_trackers, :enumerations FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler' diff --git a/test/functional/messages_controller_test.rb b/test/functional/messages_controller_test.rb index 9669379d9..cc61e5a14 100644 --- a/test/functional/messages_controller_test.rb +++ b/test/functional/messages_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class MessagesControllerTest < ActionController::TestCase - fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules + fixtures :projects, :users, :email_addresses, :members, :member_roles, :roles, :boards, :messages, :enabled_modules def setup User.current = nil diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb index 32317cd7c..5f14c5791 100644 --- a/test/functional/my_controller_test.rb +++ b/test/functional/my_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class MyControllerTest < ActionController::TestCase - fixtures :users, :user_preferences, :roles, :projects, :members, :member_roles, + fixtures :users, :email_addresses, :user_preferences, :roles, :projects, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations, :custom_fields, :auth_sources def setup diff --git a/test/functional/news_controller_test.rb b/test/functional/news_controller_test.rb index 554d1b290..b957dde6e 100644 --- a/test/functional/news_controller_test.rb +++ b/test/functional/news_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class NewsControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, :news, :comments, :attachments diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 379fe04da..fa86f1a0f 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class ProjectsControllerTest < ActionController::TestCase - fixtures :projects, :versions, :users, :roles, :members, + fixtures :projects, :versions, :users, :email_addresses, :roles, :members, :member_roles, :issues, :journals, :journal_details, :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages, diff --git a/test/functional/repositories_bazaar_controller_test.rb b/test/functional/repositories_bazaar_controller_test.rb index 0374559ba..cde2d1cf7 100644 --- a/test/functional/repositories_bazaar_controller_test.rb +++ b/test/functional/repositories_bazaar_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesBazaarControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository').to_s diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb index 4dedaf0f0..14f6a6355 100644 --- a/test/functional/repositories_controller_test.rb +++ b/test/functional/repositories_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers diff --git a/test/functional/repositories_cvs_controller_test.rb b/test/functional/repositories_cvs_controller_test.rb index 094d027e9..ba35e1ea0 100644 --- a/test/functional/repositories_cvs_controller_test.rb +++ b/test/functional/repositories_cvs_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesCvsControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/cvs_repository').to_s diff --git a/test/functional/repositories_darcs_controller_test.rb b/test/functional/repositories_darcs_controller_test.rb index dd41f51ab..9df8b2a24 100644 --- a/test/functional/repositories_darcs_controller_test.rb +++ b/test/functional/repositories_darcs_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesDarcsControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s diff --git a/test/functional/repositories_filesystem_controller_test.rb b/test/functional/repositories_filesystem_controller_test.rb index 0de6f6c61..34333cf89 100644 --- a/test/functional/repositories_filesystem_controller_test.rb +++ b/test/functional/repositories_filesystem_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesFilesystemControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/filesystem_repository').to_s diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb index f085661dd..c6d7ada9b 100644 --- a/test/functional/repositories_git_controller_test.rb +++ b/test/functional/repositories_git_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesGitControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s diff --git a/test/functional/repositories_mercurial_controller_test.rb b/test/functional/repositories_mercurial_controller_test.rb index e4485b91c..734fe0e23 100644 --- a/test/functional/repositories_mercurial_controller_test.rb +++ b/test/functional/repositories_mercurial_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesMercurialControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :repositories, :enabled_modules REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s diff --git a/test/functional/repositories_subversion_controller_test.rb b/test/functional/repositories_subversion_controller_test.rb index 9afced4e4..664330ff4 100644 --- a/test/functional/repositories_subversion_controller_test.rb +++ b/test/functional/repositories_subversion_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class RepositoriesSubversionControllerTest < ActionController::TestCase tests RepositoriesController - fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb index 2fc48dbcc..b34c80945 100644 --- a/test/functional/users_controller_test.rb +++ b/test/functional/users_controller_test.rb @@ -20,7 +20,7 @@ require File.expand_path('../../test_helper', __FILE__) class UsersControllerTest < ActionController::TestCase include Redmine::I18n - fixtures :users, :projects, :members, :member_roles, :roles, + fixtures :users, :email_addresses, :projects, :members, :member_roles, :roles, :custom_fields, :custom_values, :groups_users, :auth_sources, :enabled_modules, diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index fb9537a04..9bffe66c7 100644 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -18,7 +18,7 @@ require File.expand_path('../../test_helper', __FILE__) class WikiControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :member_roles, + fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments, :issues, :issue_statuses |