##// END OF EJS Templates
scm: bazaar: replace RAILS_ROOT to Rails.root in functional test....
Toshi MARUYAMA -
r5938:406b582a82c8
parent child
Show More
@@ -1,155 +1,153
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
2 # Copyright (C) 2006-2011 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 'repositories_controller'
19 require 'repositories_controller'
20
20
21 # Re-raise errors caught by the controller.
21 # Re-raise errors caught by the controller.
22 class RepositoriesController; def rescue_action(e) raise e end; end
22 class RepositoriesController; def rescue_action(e) raise e end; end
23
23
24 class RepositoriesBazaarControllerTest < ActionController::TestCase
24 class RepositoriesBazaarControllerTest < ActionController::TestCase
25 fixtures :projects, :users, :roles, :members, :member_roles,
25 fixtures :projects, :users, :roles, :members, :member_roles,
26 :repositories, :enabled_modules
26 :repositories, :enabled_modules
27
27
28 # No '..' in the repository path
28 REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository/trunk').to_s
29 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') +
30 '/tmp/test/bazaar_repository/trunk'
31 PRJ_ID = 3
29 PRJ_ID = 3
32
30
33 def setup
31 def setup
34 @controller = RepositoriesController.new
32 @controller = RepositoriesController.new
35 @request = ActionController::TestRequest.new
33 @request = ActionController::TestRequest.new
36 @response = ActionController::TestResponse.new
34 @response = ActionController::TestResponse.new
37 User.current = nil
35 User.current = nil
38 @project = Project.find(PRJ_ID)
36 @project = Project.find(PRJ_ID)
39 @repository = Repository::Bazaar.create(
37 @repository = Repository::Bazaar.create(
40 :project => @project,
38 :project => @project,
41 :url => REPOSITORY_PATH,
39 :url => REPOSITORY_PATH,
42 :log_encoding => 'UTF-8')
40 :log_encoding => 'UTF-8')
43 assert @repository
41 assert @repository
44 end
42 end
45
43
46 if File.directory?(REPOSITORY_PATH)
44 if File.directory?(REPOSITORY_PATH)
47 def test_browse_root
45 def test_browse_root
48 get :show, :id => PRJ_ID
46 get :show, :id => PRJ_ID
49 assert_response :success
47 assert_response :success
50 assert_template 'show'
48 assert_template 'show'
51 assert_not_nil assigns(:entries)
49 assert_not_nil assigns(:entries)
52 assert_equal 2, assigns(:entries).size
50 assert_equal 2, assigns(:entries).size
53 assert assigns(:entries).detect {|e| e.name == 'directory' && e.kind == 'dir'}
51 assert assigns(:entries).detect {|e| e.name == 'directory' && e.kind == 'dir'}
54 assert assigns(:entries).detect {|e| e.name == 'doc-mkdir.txt' && e.kind == 'file'}
52 assert assigns(:entries).detect {|e| e.name == 'doc-mkdir.txt' && e.kind == 'file'}
55 end
53 end
56
54
57 def test_browse_directory
55 def test_browse_directory
58 get :show, :id => PRJ_ID, :path => ['directory']
56 get :show, :id => PRJ_ID, :path => ['directory']
59 assert_response :success
57 assert_response :success
60 assert_template 'show'
58 assert_template 'show'
61 assert_not_nil assigns(:entries)
59 assert_not_nil assigns(:entries)
62 assert_equal ['doc-ls.txt', 'document.txt', 'edit.png'], assigns(:entries).collect(&:name)
60 assert_equal ['doc-ls.txt', 'document.txt', 'edit.png'], assigns(:entries).collect(&:name)
63 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
61 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
64 assert_not_nil entry
62 assert_not_nil entry
65 assert_equal 'file', entry.kind
63 assert_equal 'file', entry.kind
66 assert_equal 'directory/edit.png', entry.path
64 assert_equal 'directory/edit.png', entry.path
67 end
65 end
68
66
69 def test_browse_at_given_revision
67 def test_browse_at_given_revision
70 get :show, :id => PRJ_ID, :path => [], :rev => 3
68 get :show, :id => PRJ_ID, :path => [], :rev => 3
71 assert_response :success
69 assert_response :success
72 assert_template 'show'
70 assert_template 'show'
73 assert_not_nil assigns(:entries)
71 assert_not_nil assigns(:entries)
74 assert_equal ['directory', 'doc-deleted.txt', 'doc-ls.txt', 'doc-mkdir.txt'],
72 assert_equal ['directory', 'doc-deleted.txt', 'doc-ls.txt', 'doc-mkdir.txt'],
75 assigns(:entries).collect(&:name)
73 assigns(:entries).collect(&:name)
76 end
74 end
77
75
78 def test_changes
76 def test_changes
79 get :changes, :id => PRJ_ID, :path => ['doc-mkdir.txt']
77 get :changes, :id => PRJ_ID, :path => ['doc-mkdir.txt']
80 assert_response :success
78 assert_response :success
81 assert_template 'changes'
79 assert_template 'changes'
82 assert_tag :tag => 'h2', :content => 'doc-mkdir.txt'
80 assert_tag :tag => 'h2', :content => 'doc-mkdir.txt'
83 end
81 end
84
82
85 def test_entry_show
83 def test_entry_show
86 get :entry, :id => PRJ_ID, :path => ['directory', 'doc-ls.txt']
84 get :entry, :id => PRJ_ID, :path => ['directory', 'doc-ls.txt']
87 assert_response :success
85 assert_response :success
88 assert_template 'entry'
86 assert_template 'entry'
89 # Line 19
87 # Line 19
90 assert_tag :tag => 'th',
88 assert_tag :tag => 'th',
91 :content => /29/,
89 :content => /29/,
92 :attributes => { :class => /line-num/ },
90 :attributes => { :class => /line-num/ },
93 :sibling => { :tag => 'td', :content => /Show help message/ }
91 :sibling => { :tag => 'td', :content => /Show help message/ }
94 end
92 end
95
93
96 def test_entry_download
94 def test_entry_download
97 get :entry, :id => PRJ_ID, :path => ['directory', 'doc-ls.txt'], :format => 'raw'
95 get :entry, :id => PRJ_ID, :path => ['directory', 'doc-ls.txt'], :format => 'raw'
98 assert_response :success
96 assert_response :success
99 # File content
97 # File content
100 assert @response.body.include?('Show help message')
98 assert @response.body.include?('Show help message')
101 end
99 end
102
100
103 def test_directory_entry
101 def test_directory_entry
104 get :entry, :id => PRJ_ID, :path => ['directory']
102 get :entry, :id => PRJ_ID, :path => ['directory']
105 assert_response :success
103 assert_response :success
106 assert_template 'show'
104 assert_template 'show'
107 assert_not_nil assigns(:entry)
105 assert_not_nil assigns(:entry)
108 assert_equal 'directory', assigns(:entry).name
106 assert_equal 'directory', assigns(:entry).name
109 end
107 end
110
108
111 def test_diff
109 def test_diff
112 # Full diff of changeset 3
110 # Full diff of changeset 3
113 ['inline', 'sbs'].each do |dt|
111 ['inline', 'sbs'].each do |dt|
114 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
112 get :diff, :id => PRJ_ID, :rev => 3, :type => dt
115 assert_response :success
113 assert_response :success
116 assert_template 'diff'
114 assert_template 'diff'
117 # Line 11 removed
115 # Line 11 removed
118 assert_tag :tag => 'th',
116 assert_tag :tag => 'th',
119 :content => '11',
117 :content => '11',
120 :sibling => { :tag => 'td',
118 :sibling => { :tag => 'td',
121 :attributes => { :class => /diff_out/ },
119 :attributes => { :class => /diff_out/ },
122 :content => /Display more information/ }
120 :content => /Display more information/ }
123 end
121 end
124 end
122 end
125
123
126 def test_annotate
124 def test_annotate
127 get :annotate, :id => PRJ_ID, :path => ['doc-mkdir.txt']
125 get :annotate, :id => PRJ_ID, :path => ['doc-mkdir.txt']
128 assert_response :success
126 assert_response :success
129 assert_template 'annotate'
127 assert_template 'annotate'
130 assert_tag :tag => 'th', :content => '2',
128 assert_tag :tag => 'th', :content => '2',
131 :sibling => {
129 :sibling => {
132 :tag => 'td',
130 :tag => 'td',
133 :child => {
131 :child => {
134 :tag => 'a',
132 :tag => 'a',
135 :content => '3'
133 :content => '3'
136 }
134 }
137 }
135 }
138 assert_tag :tag => 'th', :content => '2',
136 assert_tag :tag => 'th', :content => '2',
139 :sibling => { :tag => 'td', :content => /jsmith/ }
137 :sibling => { :tag => 'td', :content => /jsmith/ }
140 assert_tag :tag => 'th', :content => '2',
138 assert_tag :tag => 'th', :content => '2',
141 :sibling => {
139 :sibling => {
142 :tag => 'td',
140 :tag => 'td',
143 :child => {
141 :child => {
144 :tag => 'a',
142 :tag => 'a',
145 :content => '3'
143 :content => '3'
146 }
144 }
147 }
145 }
148 assert_tag :tag => 'th', :content => '2',
146 assert_tag :tag => 'th', :content => '2',
149 :sibling => { :tag => 'td', :content => /Main purpose/ }
147 :sibling => { :tag => 'td', :content => /Main purpose/ }
150 end
148 end
151 else
149 else
152 puts "Bazaar test repository NOT FOUND. Skipping functional tests !!!"
150 puts "Bazaar test repository NOT FOUND. Skipping functional tests !!!"
153 def test_fake; assert true end
151 def test_fake; assert true end
154 end
152 end
155 end
153 end
General Comments 0
You need to be logged in to leave comments. Login now