mirror of
https://github.com/redmine/redmine.git
synced 2026-05-05 13:36:55 +02:00
Add support for multiple email addresses per user (#4244).
git-svn-id: http://svn.redmine.org/redmine/trunk@13886 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
144
test/functional/email_addresses_controller_test.rb
Normal file
144
test/functional/email_addresses_controller_test.rb
Normal file
@@ -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
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user