##// END OF EJS Templates
Fixed test/functional/welcome_controller_test.rb breaking when run alone (#12285)...
Jean-Baptiste Barth -
r10563:ff9b3d3a06ad
parent child
Show More
@@ -1,165 +1,165
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
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
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.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../test_helper', __FILE__)
18 require File.expand_path('../../test_helper', __FILE__)
19 require 'welcome_controller'
19 require 'welcome_controller'
20
20
21 # Re-raise errors caught by the controller.
21 # Re-raise errors caught by the controller.
22 class WelcomeController; def rescue_action(e) raise e end; end
22 class WelcomeController; def rescue_action(e) raise e end; end
23
23
24 class WelcomeControllerTest < ActionController::TestCase
24 class WelcomeControllerTest < ActionController::TestCase
25 fixtures :projects, :news
25 fixtures :projects, :news, :users, :members
26
26
27 def setup
27 def setup
28 @controller = WelcomeController.new
28 @controller = WelcomeController.new
29 @request = ActionController::TestRequest.new
29 @request = ActionController::TestRequest.new
30 @response = ActionController::TestResponse.new
30 @response = ActionController::TestResponse.new
31 User.current = nil
31 User.current = nil
32 end
32 end
33
33
34 def test_index
34 def test_index
35 get :index
35 get :index
36 assert_response :success
36 assert_response :success
37 assert_template 'index'
37 assert_template 'index'
38 assert_not_nil assigns(:news)
38 assert_not_nil assigns(:news)
39 assert_not_nil assigns(:projects)
39 assert_not_nil assigns(:projects)
40 assert !assigns(:projects).include?(Project.find(:first, :conditions => {:is_public => false}))
40 assert !assigns(:projects).include?(Project.find(:first, :conditions => {:is_public => false}))
41 end
41 end
42
42
43 def test_browser_language
43 def test_browser_language
44 Setting.default_language = 'en'
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'
45 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3'
46 get :index
46 get :index
47 assert_equal :fr, @controller.current_language
47 assert_equal :fr, @controller.current_language
48 end
48 end
49
49
50 def test_browser_language_alternate
50 def test_browser_language_alternate
51 Setting.default_language = 'en'
51 Setting.default_language = 'en'
52 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'zh-TW'
52 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'zh-TW'
53 get :index
53 get :index
54 assert_equal :"zh-TW", @controller.current_language
54 assert_equal :"zh-TW", @controller.current_language
55 end
55 end
56
56
57 def test_browser_language_alternate_not_valid
57 def test_browser_language_alternate_not_valid
58 Setting.default_language = 'en'
58 Setting.default_language = 'en'
59 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr-CA'
59 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr-CA'
60 get :index
60 get :index
61 assert_equal :fr, @controller.current_language
61 assert_equal :fr, @controller.current_language
62 end
62 end
63
63
64 def test_robots
64 def test_robots
65 get :robots
65 get :robots
66 assert_response :success
66 assert_response :success
67 assert_equal 'text/plain', @response.content_type
67 assert_equal 'text/plain', @response.content_type
68 assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$})
68 assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$})
69 end
69 end
70
70
71 def test_warn_on_leaving_unsaved_turn_on
71 def test_warn_on_leaving_unsaved_turn_on
72 user = User.find(2)
72 user = User.find(2)
73 user.pref.warn_on_leaving_unsaved = '1'
73 user.pref.warn_on_leaving_unsaved = '1'
74 user.pref.save!
74 user.pref.save!
75 @request.session[:user_id] = 2
75 @request.session[:user_id] = 2
76
76
77 get :index
77 get :index
78 assert_tag 'script',
78 assert_tag 'script',
79 :attributes => {:type => "text/javascript"},
79 :attributes => {:type => "text/javascript"},
80 :content => %r{warnLeavingUnsaved}
80 :content => %r{warnLeavingUnsaved}
81 end
81 end
82
82
83 def test_warn_on_leaving_unsaved_turn_off
83 def test_warn_on_leaving_unsaved_turn_off
84 user = User.find(2)
84 user = User.find(2)
85 user.pref.warn_on_leaving_unsaved = '0'
85 user.pref.warn_on_leaving_unsaved = '0'
86 user.pref.save!
86 user.pref.save!
87 @request.session[:user_id] = 2
87 @request.session[:user_id] = 2
88
88
89 get :index
89 get :index
90 assert_no_tag 'script',
90 assert_no_tag 'script',
91 :attributes => {:type => "text/javascript"},
91 :attributes => {:type => "text/javascript"},
92 :content => %r{warnLeavingUnsaved}
92 :content => %r{warnLeavingUnsaved}
93 end
93 end
94
94
95 def test_call_hook_mixed_in
95 def test_call_hook_mixed_in
96 assert @controller.respond_to?(:call_hook)
96 assert @controller.respond_to?(:call_hook)
97 end
97 end
98
98
99 def test_project_jump_box_should_escape_names_once
99 def test_project_jump_box_should_escape_names_once
100 Project.find(1).update_attribute :name, 'Foo & Bar'
100 Project.find(1).update_attribute :name, 'Foo & Bar'
101 @request.session[:user_id] = 2
101 @request.session[:user_id] = 2
102
102
103 get :index
103 get :index
104 assert_select "#header select" do
104 assert_select "#header select" do
105 assert_select "option", :text => 'Foo &amp; Bar'
105 assert_select "option", :text => 'Foo &amp; Bar'
106 end
106 end
107 end
107 end
108
108
109 context "test_api_offset_and_limit" do
109 context "test_api_offset_and_limit" do
110 context "without params" do
110 context "without params" do
111 should "return 0, 25" do
111 should "return 0, 25" do
112 assert_equal [0, 25], @controller.api_offset_and_limit({})
112 assert_equal [0, 25], @controller.api_offset_and_limit({})
113 end
113 end
114 end
114 end
115
115
116 context "with limit" do
116 context "with limit" do
117 should "return 0, limit" do
117 should "return 0, limit" do
118 assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30})
118 assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30})
119 end
119 end
120
120
121 should "not exceed 100" do
121 should "not exceed 100" do
122 assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120})
122 assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120})
123 end
123 end
124
124
125 should "not be negative" do
125 should "not be negative" do
126 assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10})
126 assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10})
127 end
127 end
128 end
128 end
129
129
130 context "with offset" do
130 context "with offset" do
131 should "return offset, 25" do
131 should "return offset, 25" do
132 assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10})
132 assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10})
133 end
133 end
134
134
135 should "not be negative" do
135 should "not be negative" do
136 assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10})
136 assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10})
137 end
137 end
138
138
139 context "and limit" do
139 context "and limit" do
140 should "return offset, limit" do
140 should "return offset, limit" do
141 assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50})
141 assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50})
142 end
142 end
143 end
143 end
144 end
144 end
145
145
146 context "with page" do
146 context "with page" do
147 should "return offset, 25" do
147 should "return offset, 25" do
148 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1})
148 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1})
149 assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3})
149 assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3})
150 end
150 end
151
151
152 should "not be negative" do
152 should "not be negative" do
153 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0})
153 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0})
154 assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2})
154 assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2})
155 end
155 end
156
156
157 context "and limit" do
157 context "and limit" do
158 should "return offset, limit" do
158 should "return offset, limit" do
159 assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
159 assert_equal [0, 100], @controller.api_offset_and_limit({:page => 1, :limit => 100})
160 assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
160 assert_equal [200, 100], @controller.api_offset_and_limit({:page => 3, :limit => 100})
161 end
161 end
162 end
162 end
163 end
163 end
164 end
164 end
165 end
165 end
General Comments 0
You need to be logged in to leave comments. Login now