|
1 | NO CONTENT: new file 100644, binary diff hidden |
@@ -0,0 +1,73 | |||
|
1 | # redMine - project management software | |
|
2 | # Copyright (C) 2006-2007 Jean-Philippe Lang | |
|
3 | # | |
|
4 | # This program is free software; you can redistribute it and/or | |
|
5 | # modify it under the terms of the GNU General Public License | |
|
6 | # as published by the Free Software Foundation; either version 2 | |
|
7 | # of the License, or (at your option) any later version. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU General Public License | |
|
15 | # along with this program; if not, write to the Free Software | |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
|
17 | ||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |
|
19 | require 'account_controller' | |
|
20 | ||
|
21 | # Re-raise errors caught by the controller. | |
|
22 | class AccountController; def rescue_action(e) raise e end; end | |
|
23 | ||
|
24 | class AccountControllerTest < Test::Unit::TestCase | |
|
25 | fixtures :users | |
|
26 | ||
|
27 | def setup | |
|
28 | @controller = AccountController.new | |
|
29 | @request = ActionController::TestRequest.new | |
|
30 | @response = ActionController::TestResponse.new | |
|
31 | User.current = nil | |
|
32 | end | |
|
33 | ||
|
34 | def test_show | |
|
35 | get :show, :id => 2 | |
|
36 | assert_response :success | |
|
37 | assert_template 'show' | |
|
38 | assert_not_nil assigns(:user) | |
|
39 | end | |
|
40 | ||
|
41 | def test_show_inactive | |
|
42 | get :show, :id => 5 | |
|
43 | assert_response 404 | |
|
44 | assert_nil assigns(:user) | |
|
45 | end | |
|
46 | ||
|
47 | def test_login_with_wrong_password | |
|
48 | post :login, :login => 'admin', :password => 'bad' | |
|
49 | assert_response :success | |
|
50 | assert_template 'login' | |
|
51 | assert_tag 'div', | |
|
52 | :attributes => { :class => "flash error" }, | |
|
53 | :content => /Invalid user or password/ | |
|
54 | end | |
|
55 | ||
|
56 | def test_autologin | |
|
57 | Setting.autologin = "7" | |
|
58 | Token.delete_all | |
|
59 | post :login, :login => 'admin', :password => 'admin', :autologin => 1 | |
|
60 | assert_redirected_to 'my/page' | |
|
61 | token = Token.find :first | |
|
62 | assert_not_nil token | |
|
63 | assert_equal User.find_by_login('admin'), token.user | |
|
64 | assert_equal 'autologin', token.action | |
|
65 | end | |
|
66 | ||
|
67 | def test_logout | |
|
68 | @request.session[:user_id] = 2 | |
|
69 | get :logout | |
|
70 | assert_redirected_to '' | |
|
71 | assert_nil @request.session[:user_id] | |
|
72 | end | |
|
73 | end |
@@ -0,0 +1,61 | |||
|
1 | # redMine - project management software | |
|
2 | # Copyright (C) 2006-2007 Jean-Philippe Lang | |
|
3 | # | |
|
4 | # This program is free software; you can redistribute it and/or | |
|
5 | # modify it under the terms of the GNU General Public License | |
|
6 | # as published by the Free Software Foundation; either version 2 | |
|
7 | # of the License, or (at your option) any later version. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU General Public License | |
|
15 | # along with this program; if not, write to the Free Software | |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
|
17 | ||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |
|
19 | require 'admin_controller' | |
|
20 | ||
|
21 | # Re-raise errors caught by the controller. | |
|
22 | class AdminController; def rescue_action(e) raise e end; end | |
|
23 | ||
|
24 | class AdminControllerTest < Test::Unit::TestCase | |
|
25 | fixtures :projects, :users | |
|
26 | ||
|
27 | def setup | |
|
28 | @controller = AdminController.new | |
|
29 | @request = ActionController::TestRequest.new | |
|
30 | @response = ActionController::TestResponse.new | |
|
31 | User.current = nil | |
|
32 | @request.session[:user_id] = 1 # admin | |
|
33 | end | |
|
34 | ||
|
35 | def test_get_mail_options | |
|
36 | get :mail_options | |
|
37 | assert_response :success | |
|
38 | assert_template 'mail_options' | |
|
39 | end | |
|
40 | ||
|
41 | def test_post_mail_options | |
|
42 | post :mail_options, :settings => {'mail_from' => 'functional@test.foo'} | |
|
43 | assert_redirected_to 'admin/mail_options' | |
|
44 | assert_equal 'functional@test.foo', Setting.mail_from | |
|
45 | end | |
|
46 | ||
|
47 | def test_test_email | |
|
48 | get :test_email | |
|
49 | assert_redirected_to 'admin/mail_options' | |
|
50 | mail = ActionMailer::Base.deliveries.last | |
|
51 | assert_kind_of TMail::Mail, mail | |
|
52 | user = User.find(1) | |
|
53 | assert_equal [user.mail], mail.bcc | |
|
54 | end | |
|
55 | ||
|
56 | def test_info | |
|
57 | get :info | |
|
58 | assert_response :success | |
|
59 | assert_template 'info' | |
|
60 | end | |
|
61 | end |
@@ -0,0 +1,62 | |||
|
1 | # redMine - project management software | |
|
2 | # Copyright (C) 2006-2007 Jean-Philippe Lang | |
|
3 | # | |
|
4 | # This program is free software; you can redistribute it and/or | |
|
5 | # modify it under the terms of the GNU General Public License | |
|
6 | # as published by the Free Software Foundation; either version 2 | |
|
7 | # of the License, or (at your option) any later version. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU General Public License | |
|
15 | # along with this program; if not, write to the Free Software | |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
|
17 | ||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |
|
19 | require 'users_controller' | |
|
20 | ||
|
21 | # Re-raise errors caught by the controller. | |
|
22 | class UsersController; def rescue_action(e) raise e end; end | |
|
23 | ||
|
24 | class UsersControllerTest < Test::Unit::TestCase | |
|
25 | fixtures :users, :projects, :members | |
|
26 | ||
|
27 | def setup | |
|
28 | @controller = UsersController.new | |
|
29 | @request = ActionController::TestRequest.new | |
|
30 | @response = ActionController::TestResponse.new | |
|
31 | User.current = nil | |
|
32 | @request.session[:user_id] = 1 # admin | |
|
33 | end | |
|
34 | ||
|
35 | def test_index | |
|
36 | get :index | |
|
37 | assert_response :success | |
|
38 | assert_template 'list' | |
|
39 | end | |
|
40 | ||
|
41 | def test_list | |
|
42 | get :list | |
|
43 | assert_response :success | |
|
44 | assert_template 'list' | |
|
45 | assert_not_nil assigns(:users) | |
|
46 | # active users only | |
|
47 | assert_nil assigns(:users).detect {|u| !u.active?} | |
|
48 | end | |
|
49 | ||
|
50 | def test_edit_membership | |
|
51 | post :edit_membership, :id => 2, :membership_id => 1, | |
|
52 | :membership => { :role_id => 2} | |
|
53 | assert_redirected_to 'users/edit/2' | |
|
54 | assert_equal 2, Member.find(1).role_id | |
|
55 | end | |
|
56 | ||
|
57 | def test_destroy_membership | |
|
58 | post :destroy_membership, :id => 2, :membership_id => 1 | |
|
59 | assert_redirected_to 'users/edit/2' | |
|
60 | assert_nil Member.find_by_id(1) | |
|
61 | end | |
|
62 | end |
@@ -0,0 +1,49 | |||
|
1 | # redMine - project management software | |
|
2 | # Copyright (C) 2006-2007 Jean-Philippe Lang | |
|
3 | # | |
|
4 | # This program is free software; you can redistribute it and/or | |
|
5 | # modify it under the terms of the GNU General Public License | |
|
6 | # as published by the Free Software Foundation; either version 2 | |
|
7 | # of the License, or (at your option) any later version. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU General Public License | |
|
15 | # along with this program; if not, write to the Free Software | |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
|
17 | ||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |
|
19 | require 'welcome_controller' | |
|
20 | ||
|
21 | # Re-raise errors caught by the controller. | |
|
22 | class WelcomeController; def rescue_action(e) raise e end; end | |
|
23 | ||
|
24 | class WelcomeControllerTest < Test::Unit::TestCase | |
|
25 | fixtures :projects, :news | |
|
26 | ||
|
27 | def setup | |
|
28 | @controller = WelcomeController.new | |
|
29 | @request = ActionController::TestRequest.new | |
|
30 | @response = ActionController::TestResponse.new | |
|
31 | User.current = nil | |
|
32 | end | |
|
33 | ||
|
34 | def test_index | |
|
35 | get :index | |
|
36 | assert_response :success | |
|
37 | assert_template 'index' | |
|
38 | assert_not_nil assigns(:news) | |
|
39 | assert_not_nil assigns(:projects) | |
|
40 | assert !assigns(:projects).include?(Project.find(:first, :conditions => {:is_public => false})) | |
|
41 | end | |
|
42 | ||
|
43 | def test_browser_language | |
|
44 | Setting.default_language = 'en' | |
|
45 | @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3' | |
|
46 | get :index | |
|
47 | assert_equal :fr, @controller.current_language | |
|
48 | end | |
|
49 | end |
@@ -0,0 +1,60 | |||
|
1 | # redMine - project management software | |
|
2 | # Copyright (C) 2006-2007 Jean-Philippe Lang | |
|
3 | # | |
|
4 | # This program is free software; you can redistribute it and/or | |
|
5 | # modify it under the terms of the GNU General Public License | |
|
6 | # as published by the Free Software Foundation; either version 2 | |
|
7 | # of the License, or (at your option) any later version. | |
|
8 | # | |
|
9 | # This program is distributed in the hope that it will be useful, | |
|
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
12 | # GNU General Public License for more details. | |
|
13 | # | |
|
14 | # You should have received a copy of the GNU General Public License | |
|
15 | # along with this program; if not, write to the Free Software | |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
|
17 | ||
|
18 | require File.dirname(__FILE__) + '/../test_helper' | |
|
19 | require 'pp' | |
|
20 | class RepositoryCvsTest < Test::Unit::TestCase | |
|
21 | fixtures :projects | |
|
22 | ||
|
23 | # No '..' in the repository path | |
|
24 | REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository' | |
|
25 | REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/ | |
|
26 | # CVS module | |
|
27 | MODULE_NAME = 'test' | |
|
28 | ||
|
29 | def setup | |
|
30 | @project = Project.find(1) | |
|
31 | assert @repository = Repository::Cvs.create(:project => @project, | |
|
32 | :root_url => REPOSITORY_PATH, | |
|
33 | :url => MODULE_NAME) | |
|
34 | end | |
|
35 | ||
|
36 | if File.directory?(REPOSITORY_PATH) | |
|
37 | def test_fetch_changesets_from_scratch | |
|
38 | @repository.fetch_changesets | |
|
39 | @repository.reload | |
|
40 | ||
|
41 | assert_equal 5, @repository.changesets.count | |
|
42 | assert_equal 14, @repository.changes.count | |
|
43 | assert_equal 'Two files changed', @repository.changesets.find_by_revision(3).comments | |
|
44 | end | |
|
45 | ||
|
46 | def test_fetch_changesets_incremental | |
|
47 | @repository.fetch_changesets | |
|
48 | # Remove changesets with revision > 2 | |
|
49 | @repository.changesets.find(:all, :conditions => 'revision > 2').each(&:destroy) | |
|
50 | @repository.reload | |
|
51 | assert_equal 2, @repository.changesets.count | |
|
52 | ||
|
53 | @repository.fetch_changesets | |
|
54 | assert_equal 5, @repository.changesets.count | |
|
55 | end | |
|
56 | else | |
|
57 | puts "CVS test repository NOT FOUND. Skipping unit tests !!!" | |
|
58 | def test_fake; assert true end | |
|
59 | end | |
|
60 | end |
@@ -48,7 +48,7 class AdminController < ApplicationController | |||
|
48 | 48 | def mail_options |
|
49 | 49 | @notifiables = %w(issue_added issue_updated news_added document_added file_added message_posted) |
|
50 | 50 | if request.post? |
|
51 | settings = (params[:settings] || {}).dup | |
|
51 | settings = (params[:settings] || {}).dup.symbolize_keys | |
|
52 | 52 | settings[:notified_events] ||= [] |
|
53 | 53 | settings.each { |name, value| Setting[name] = value } |
|
54 | 54 | flash[:notice] = l(:notice_successful_update) |
@@ -8,6 +8,10 Subversion | |||
|
8 | 8 | svnadmin create tmp/test/subversion_repository |
|
9 | 9 | gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load tmp/test/subversion_repository |
|
10 | 10 | |
|
11 | CVS | |
|
12 | --- | |
|
13 | gunzip < test/fixtures/repositories/cvs_repository.tar.gz | tar -xv -C tmp/test | |
|
14 | ||
|
11 | 15 | Bazaar |
|
12 | 16 | ------ |
|
13 | 17 | gunzip < test/fixtures/repositories/bazaar_repository.tar.gz | tar -xv -C tmp/test No newline at end of file |
@@ -76,6 +76,8 roles_001: | |||
|
76 | 76 | - :edit_wiki_pages |
|
77 | 77 | - :delete_wiki_pages |
|
78 | 78 | - :add_messages |
|
79 | - :edit_messages | |
|
80 | - :delete_messages | |
|
79 | 81 | - :manage_boards |
|
80 | 82 | - :view_files |
|
81 | 83 | - :manage_files |
@@ -22,7 +22,17 require 'issues_controller' | |||
|
22 | 22 | class IssuesController; def rescue_action(e) raise e end; end |
|
23 | 23 | |
|
24 | 24 | class IssuesControllerTest < Test::Unit::TestCase |
|
25 | fixtures :projects, :users, :roles, :members, :issues, :enabled_modules, :enumerations | |
|
25 | fixtures :projects, | |
|
26 | :users, | |
|
27 | :roles, | |
|
28 | :members, | |
|
29 | :issues, | |
|
30 | :issue_statuses, | |
|
31 | :trackers, | |
|
32 | :issue_categories, | |
|
33 | :enabled_modules, | |
|
34 | :enumerations, | |
|
35 | :attachments | |
|
26 | 36 | |
|
27 | 37 | def setup |
|
28 | 38 | @controller = IssuesController.new |
@@ -40,10 +40,60 class MessagesControllerTest < Test::Unit::TestCase | |||
|
40 | 40 | assert_not_nil assigns(:topic) |
|
41 | 41 | end |
|
42 | 42 | |
|
43 | def test_show_message_not_found | |
|
44 | get :show, :board_id => 1, :id => 99999 | |
|
45 | assert_response 404 | |
|
46 | end | |
|
47 | ||
|
48 | def test_get_new | |
|
49 | @request.session[:user_id] = 2 | |
|
50 | get :new, :board_id => 1 | |
|
51 | assert_response :success | |
|
52 | assert_template 'new' | |
|
53 | end | |
|
54 | ||
|
55 | def test_post_new | |
|
56 | @request.session[:user_id] = 2 | |
|
57 | post :new, :board_id => 1, | |
|
58 | :message => { :subject => 'Test created message', | |
|
59 | :content => 'Message body'} | |
|
60 | assert_redirected_to 'messages/show' | |
|
61 | message = Message.find_by_subject('Test created message') | |
|
62 | assert_not_nil message | |
|
63 | assert_equal 'Message body', message.content | |
|
64 | assert_equal 2, message.author_id | |
|
65 | assert_equal 1, message.board_id | |
|
66 | end | |
|
67 | ||
|
68 | def test_get_edit | |
|
69 | @request.session[:user_id] = 2 | |
|
70 | get :edit, :board_id => 1, :id => 1 | |
|
71 | assert_response :success | |
|
72 | assert_template 'edit' | |
|
73 | end | |
|
74 | ||
|
75 | def test_post_edit | |
|
76 | @request.session[:user_id] = 2 | |
|
77 | post :edit, :board_id => 1, :id => 1, | |
|
78 | :message => { :subject => 'New subject', | |
|
79 | :content => 'New body'} | |
|
80 | assert_redirected_to 'messages/show' | |
|
81 | message = Message.find(1) | |
|
82 | assert_equal 'New subject', message.subject | |
|
83 | assert_equal 'New body', message.content | |
|
84 | end | |
|
85 | ||
|
43 | 86 | def test_reply |
|
44 | 87 | @request.session[:user_id] = 2 |
|
45 | 88 | post :reply, :board_id => 1, :id => 1, :reply => { :content => 'This is a test reply', :subject => 'Test reply' } |
|
46 | 89 | assert_redirected_to 'messages/show' |
|
47 | 90 | assert Message.find_by_subject('Test reply') |
|
48 | 91 | end |
|
92 | ||
|
93 | def test_destroy_topic | |
|
94 | @request.session[:user_id] = 2 | |
|
95 | post :destroy, :board_id => 1, :id => 1 | |
|
96 | assert_redirected_to 'boards/show' | |
|
97 | assert_nil Message.find_by_id(1) | |
|
98 | end | |
|
49 | 99 | end |
@@ -22,7 +22,7 require 'my_controller' | |||
|
22 | 22 | class MyController; def rescue_action(e) raise e end; end |
|
23 | 23 | |
|
24 | 24 | class MyControllerTest < Test::Unit::TestCase |
|
25 | fixtures :users | |
|
25 | fixtures :users, :issues, :issue_statuses, :trackers, :enumerations | |
|
26 | 26 | |
|
27 | 27 | def setup |
|
28 | 28 | @controller = MyController.new |
@@ -21,7 +21,7 require 'repositories_controller' | |||
|
21 | 21 | # Re-raise errors caught by the controller. |
|
22 | 22 | class RepositoriesController; def rescue_action(e) raise e end; end |
|
23 | 23 | |
|
24 | class RepositoriesControllerTest < Test::Unit::TestCase | |
|
24 | class RepositoriesSubversionControllerTest < Test::Unit::TestCase | |
|
25 | 25 | fixtures :projects, :users, :roles, :members, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers |
|
26 | 26 | |
|
27 | 27 | # No '..' in the repository path for svn |
@@ -39,4 +39,35 class VersionsControllerTest < Test::Unit::TestCase | |||
|
39 | 39 | |
|
40 | 40 | assert_tag :tag => 'h2', :content => /1.0/ |
|
41 | 41 | end |
|
42 | ||
|
43 | def test_get_edit | |
|
44 | @request.session[:user_id] = 2 | |
|
45 | get :edit, :id => 2 | |
|
46 | assert_response :success | |
|
47 | assert_template 'edit' | |
|
48 | end | |
|
49 | ||
|
50 | def test_post_edit | |
|
51 | @request.session[:user_id] = 2 | |
|
52 | post :edit, :id => 2, | |
|
53 | :version => { :name => 'New version name', | |
|
54 | :effective_date => Date.today.strftime("%Y-%m-%d")} | |
|
55 | assert_redirected_to 'projects/settings/1' | |
|
56 | version = Version.find(2) | |
|
57 | assert_equal 'New version name', version.name | |
|
58 | assert_equal Date.today, version.effective_date | |
|
59 | end | |
|
60 | ||
|
61 | def test_destroy | |
|
62 | @request.session[:user_id] = 2 | |
|
63 | post :destroy, :id => 2 | |
|
64 | assert_redirected_to 'projects/settings/1' | |
|
65 | assert_nil Version.find_by_id(2) | |
|
66 | end | |
|
67 | ||
|
68 | def test_issue_status_by | |
|
69 | xhr :get, :status_by, :id => 2 | |
|
70 | assert_response :success | |
|
71 | assert_template '_issue_counts' | |
|
72 | end | |
|
42 | 73 | end |
General Comments 0
You need to be logged in to leave comments.
Login now