Chris@909
|
1 # Redmine - project management software
|
Chris@909
|
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
|
Chris@0
|
3 #
|
Chris@0
|
4 # This program is free software; you can redistribute it and/or
|
Chris@0
|
5 # modify it under the terms of the GNU General Public License
|
Chris@0
|
6 # as published by the Free Software Foundation; either version 2
|
Chris@0
|
7 # of the License, or (at your option) any later version.
|
Chris@909
|
8 #
|
Chris@0
|
9 # This program is distributed in the hope that it will be useful,
|
Chris@0
|
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
Chris@0
|
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
Chris@0
|
12 # GNU General Public License for more details.
|
Chris@909
|
13 #
|
Chris@0
|
14 # You should have received a copy of the GNU General Public License
|
Chris@0
|
15 # along with this program; if not, write to the Free Software
|
Chris@0
|
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
Chris@0
|
17
|
Chris@119
|
18 require File.expand_path('../../test_helper', __FILE__)
|
Chris@0
|
19 require 'welcome_controller'
|
Chris@0
|
20
|
Chris@0
|
21 # Re-raise errors caught by the controller.
|
Chris@0
|
22 class WelcomeController; def rescue_action(e) raise e end; end
|
Chris@0
|
23
|
Chris@0
|
24 class WelcomeControllerTest < ActionController::TestCase
|
Chris@0
|
25 fixtures :projects, :news
|
Chris@909
|
26
|
Chris@0
|
27 def setup
|
Chris@0
|
28 @controller = WelcomeController.new
|
Chris@0
|
29 @request = ActionController::TestRequest.new
|
Chris@0
|
30 @response = ActionController::TestResponse.new
|
Chris@0
|
31 User.current = nil
|
Chris@0
|
32 end
|
Chris@909
|
33
|
Chris@0
|
34 def test_index
|
Chris@0
|
35 get :index
|
Chris@0
|
36 assert_response :success
|
Chris@0
|
37 assert_template 'index'
|
Chris@0
|
38 assert_not_nil assigns(:news)
|
Chris@0
|
39 assert_not_nil assigns(:projects)
|
Chris@0
|
40 assert !assigns(:projects).include?(Project.find(:first, :conditions => {:is_public => false}))
|
Chris@0
|
41 end
|
Chris@909
|
42
|
Chris@0
|
43 def test_browser_language
|
Chris@0
|
44 Setting.default_language = 'en'
|
Chris@0
|
45 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3'
|
Chris@0
|
46 get :index
|
Chris@0
|
47 assert_equal :fr, @controller.current_language
|
Chris@0
|
48 end
|
Chris@909
|
49
|
Chris@0
|
50 def test_browser_language_alternate
|
Chris@0
|
51 Setting.default_language = 'en'
|
Chris@0
|
52 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'zh-TW'
|
Chris@0
|
53 get :index
|
Chris@0
|
54 assert_equal :"zh-TW", @controller.current_language
|
Chris@0
|
55 end
|
Chris@909
|
56
|
Chris@0
|
57 def test_browser_language_alternate_not_valid
|
Chris@0
|
58 Setting.default_language = 'en'
|
Chris@0
|
59 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'fr-CA'
|
Chris@0
|
60 get :index
|
Chris@0
|
61 assert_equal :fr, @controller.current_language
|
Chris@0
|
62 end
|
Chris@909
|
63
|
Chris@0
|
64 def test_robots
|
Chris@0
|
65 get :robots
|
Chris@0
|
66 assert_response :success
|
Chris@0
|
67 assert_equal 'text/plain', @response.content_type
|
Chris@0
|
68 assert @response.body.match(%r{^Disallow: /projects/ecookbook/issues\r?$})
|
Chris@0
|
69 end
|
Chris@909
|
70
|
Chris@245
|
71 def test_warn_on_leaving_unsaved_turn_on
|
Chris@245
|
72 user = User.find(2)
|
Chris@245
|
73 user.pref.warn_on_leaving_unsaved = '1'
|
Chris@245
|
74 user.pref.save!
|
Chris@245
|
75 @request.session[:user_id] = 2
|
Chris@909
|
76
|
Chris@245
|
77 get :index
|
Chris@245
|
78 assert_tag 'script',
|
Chris@245
|
79 :attributes => {:type => "text/javascript"},
|
Chris@245
|
80 :content => %r{new WarnLeavingUnsaved}
|
Chris@245
|
81 end
|
Chris@909
|
82
|
Chris@245
|
83 def test_warn_on_leaving_unsaved_turn_off
|
Chris@245
|
84 user = User.find(2)
|
Chris@245
|
85 user.pref.warn_on_leaving_unsaved = '0'
|
Chris@245
|
86 user.pref.save!
|
Chris@245
|
87 @request.session[:user_id] = 2
|
Chris@909
|
88
|
Chris@245
|
89 get :index
|
Chris@245
|
90 assert_no_tag 'script',
|
Chris@245
|
91 :attributes => {:type => "text/javascript"},
|
Chris@245
|
92 :content => %r{new WarnLeavingUnsaved}
|
Chris@245
|
93 end
|
Chris@0
|
94 end
|