##// END OF EJS Templates
scm: filesystem: add test for UTF-16 file displaying (#6256)....
Toshi MARUYAMA -
r5086:fb0d24d37e71
parent child
Show More
@@ -1,83 +1,94
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19 require 'repositories_controller'
20 20
21 21 # Re-raise errors caught by the controller.
22 22 class RepositoriesController; def rescue_action(e) raise e end; end
23 23
24 24 class RepositoriesFilesystemControllerTest < ActionController::TestCase
25 25 fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
26 26
27 27 # No '..' in the repository path
28 28 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/filesystem_repository'
29 29 PRJ_ID = 3
30 30
31 31 def setup
32 32 @controller = RepositoriesController.new
33 33 @request = ActionController::TestRequest.new
34 34 @response = ActionController::TestResponse.new
35 35 User.current = nil
36 36 Setting.enabled_scm << 'Filesystem' unless Setting.enabled_scm.include?('Filesystem')
37 37 @repository = Repository::Filesystem.create(
38 38 :project => Project.find(PRJ_ID),
39 39 :url => REPOSITORY_PATH,
40 40 :path_encoding => ''
41 41 )
42 42 assert @repository
43 43 end
44 44
45 45 if File.directory?(REPOSITORY_PATH)
46 46 def test_browse_root
47 47 @repository.fetch_changesets
48 48 @repository.reload
49 49 get :show, :id => PRJ_ID
50 50 assert_response :success
51 51 assert_template 'show'
52 52 assert_not_nil assigns(:entries)
53 53 assert assigns(:entries).size > 0
54 54 assert_not_nil assigns(:changesets)
55 55 assert assigns(:changesets).size == 0
56 56 end
57 57
58 58 def test_show_no_extension
59 59 get :entry, :id => PRJ_ID, :path => ['test']
60 60 assert_response :success
61 61 assert_template 'entry'
62 62 assert_tag :tag => 'th',
63 63 :content => '1',
64 64 :attributes => { :class => 'line-num' },
65 65 :sibling => { :tag => 'td', :content => /TEST CAT/ }
66 66 end
67 67
68 68 def test_show_non_ascii_contents
69 69 with_settings :repositories_encodings => 'UTF-8,EUC-JP' do
70 70 get :entry, :id => PRJ_ID, :path => ['japanese', 'euc-jp.txt']
71 71 assert_response :success
72 72 assert_template 'entry'
73 73 assert_tag :tag => 'th',
74 74 :content => '2',
75 75 :attributes => { :class => 'line-num' },
76 76 :sibling => { :tag => 'td', :content => /japanese/ }
77 77 end
78 78 end
79
80 def test_show_utf16
81 with_settings :repositories_encodings => 'UTF-16' do
82 get :entry, :id => PRJ_ID, :path => ['japanese', 'utf-16.txt']
83 assert_response :success
84 assert_tag :tag => 'th',
85 :content => '2',
86 :attributes => { :class => 'line-num' },
87 :sibling => { :tag => 'td', :content => /japanese/ }
88 end
89 end
79 90 else
80 91 puts "Filesystem test repository NOT FOUND. Skipping functional tests !!!"
81 92 def test_fake; assert true end
82 93 end
83 94 end
General Comments 0
You need to be logged in to leave comments. Login now