Mercurial > hg > soundsoftware-site
comparison .svn/pristine/ec/ece91c997e03c02829d36bfa3c15802fe47dbaf8.svn-base @ 1296:038ba2d95de8 redmine-2.2
Fix redmine-2.2 branch update (add missing svn files)
author | Chris Cannam |
---|---|
date | Fri, 14 Jun 2013 09:05:06 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1294:3e4c3460b6ca | 1296:038ba2d95de8 |
---|---|
1 # Redmine - project management software | |
2 # Copyright (C) 2006-2012 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.expand_path('../../test_helper', __FILE__) | |
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 < ActionController::TestCase | |
25 fixtures :projects, :news, :users, :members | |
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 | |
50 def test_browser_language_alternate | |
51 Setting.default_language = 'en' | |
52 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'zh-TW' | |
53 get :index | |
54 assert_equal :"zh-TW", @controller.current_language | |
55 end | |
56 | |
57 def test_browser_language_alternate_not_valid | |
58 Setting.default_language = 'en' | |
59 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr-CA' | |
60 get :index | |
61 assert_equal :fr, @controller.current_language | |
62 end | |
63 | |
64 def test_robots | |
65 get :robots | |
66 assert_response :success | |
67 assert_equal 'text/plain', @response.content_type | |
68 assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$}) | |
69 end | |
70 | |
71 def test_warn_on_leaving_unsaved_turn_on | |
72 user = User.find(2) | |
73 user.pref.warn_on_leaving_unsaved = '1' | |
74 user.pref.save! | |
75 @request.session[:user_id] = 2 | |
76 | |
77 get :index | |
78 assert_tag 'script', | |
79 :attributes => {:type => "text/javascript"}, | |
80 :content => %r{warnLeavingUnsaved} | |
81 end | |
82 | |
83 def test_warn_on_leaving_unsaved_turn_off | |
84 user = User.find(2) | |
85 user.pref.warn_on_leaving_unsaved = '0' | |
86 user.pref.save! | |
87 @request.session[:user_id] = 2 | |
88 | |
89 get :index | |
90 assert_no_tag 'script', | |
91 :attributes => {:type => "text/javascript"}, | |
92 :content => %r{warnLeavingUnsaved} | |
93 end | |
94 | |
95 def test_call_hook_mixed_in | |
96 assert @controller.respond_to?(:call_hook) | |
97 end | |
98 | |
99 def test_project_jump_box_should_escape_names_once | |
100 Project.find(1).update_attribute :name, 'Foo & Bar' | |
101 @request.session[:user_id] = 2 | |
102 | |
103 get :index | |
104 assert_select "#header select" do | |
105 assert_select "option", :text => 'Foo & Bar' | |
106 end | |
107 end | |
108 | |
109 context "test_api_offset_and_limit" do | |
110 context "without params" do | |
111 should "return 0, 25" do | |
112 assert_equal [0, 25], @controller.api_offset_and_limit({}) | |
113 end | |
114 end | |
115 | |
116 context "with limit" do | |
117 should "return 0, limit" do | |
118 assert_equal [0, 30], @controller.api_offset_and_limit({:limit => 30}) | |
119 end | |
120 | |
121 should "not exceed 100" do | |
122 assert_equal [0, 100], @controller.api_offset_and_limit({:limit => 120}) | |
123 end | |
124 | |
125 should "not be negative" do | |
126 assert_equal [0, 25], @controller.api_offset_and_limit({:limit => -10}) | |
127 end | |
128 end | |
129 | |
130 context "with offset" do | |
131 should "return offset, 25" do | |
132 assert_equal [10, 25], @controller.api_offset_and_limit({:offset => 10}) | |
133 end | |
134 | |
135 should "not be negative" do | |
136 assert_equal [0, 25], @controller.api_offset_and_limit({:offset => -10}) | |
137 end | |
138 | |
139 context "and limit" do | |
140 should "return offset, limit" do | |
141 assert_equal [10, 50], @controller.api_offset_and_limit({:offset => 10, :limit => 50}) | |
142 end | |
143 end | |
144 end | |
145 | |
146 context "with page" do | |
147 should "return offset, 25" do | |
148 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 1}) | |
149 assert_equal [50, 25], @controller.api_offset_and_limit({:page => 3}) | |
150 end | |
151 | |
152 should "not be negative" do | |
153 assert_equal [0, 25], @controller.api_offset_and_limit({:page => 0}) | |
154 assert_equal [0, 25], @controller.api_offset_and_limit({:page => -2}) | |
155 end | |
156 | |
157 context "and limit" do | |
158 should "return offset, limit" do | |
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}) | |
161 end | |
162 end | |
163 end | |
164 end | |
165 end |