annotate test/functional/welcome_controller_test.rb @ 1082:997f6d7738f7 bug_531

In repo controller entry action, show the page for the file even if it's binary (so user still has access to history etc links). This makes it possible to use the entry action as the default when a file is clicked on
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 22 Nov 2012 18:04:17 +0000
parents cbb26bc654de
children 433d4f72a19b
rev   line source
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