##// END OF EJS Templates
Rails3: scm: darcs: fix error of test_diff at functional test...
Toshi MARUYAMA -
r7039:3df1878dafae
parent child
Show More
@@ -1,160 +1,162
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 RepositoriesDarcsControllerTest < ActionController::TestCase
24 class RepositoriesDarcsControllerTest < 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 REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s
28 REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s
29 PRJ_ID = 3
29 PRJ_ID = 3
30 NUM_REV = 6
30 NUM_REV = 6
31
31
32 def setup
32 def setup
33 @controller = RepositoriesController.new
33 @controller = RepositoriesController.new
34 @request = ActionController::TestRequest.new
34 @request = ActionController::TestRequest.new
35 @response = ActionController::TestResponse.new
35 @response = ActionController::TestResponse.new
36 User.current = nil
36 User.current = nil
37 @project = Project.find(PRJ_ID)
37 @project = Project.find(PRJ_ID)
38 @repository = Repository::Darcs.create(
38 @repository = Repository::Darcs.create(
39 :project => @project,
39 :project => @project,
40 :url => REPOSITORY_PATH,
40 :url => REPOSITORY_PATH,
41 :log_encoding => 'UTF-8'
41 :log_encoding => 'UTF-8'
42 )
42 )
43 assert @repository
43 assert @repository
44 end
44 end
45
45
46 if File.directory?(REPOSITORY_PATH)
46 if File.directory?(REPOSITORY_PATH)
47 def test_browse_root
47 def test_browse_root
48 assert_equal 0, @repository.changesets.count
48 assert_equal 0, @repository.changesets.count
49 @repository.fetch_changesets
49 @repository.fetch_changesets
50 @project.reload
50 @project.reload
51 assert_equal NUM_REV, @repository.changesets.count
51 assert_equal NUM_REV, @repository.changesets.count
52 get :show, :id => PRJ_ID
52 get :show, :id => PRJ_ID
53 assert_response :success
53 assert_response :success
54 assert_template 'show'
54 assert_template 'show'
55 assert_not_nil assigns(:entries)
55 assert_not_nil assigns(:entries)
56 assert_equal 3, assigns(:entries).size
56 assert_equal 3, assigns(:entries).size
57 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
57 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
58 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
58 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
59 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
59 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
60 end
60 end
61
61
62 def test_browse_directory
62 def test_browse_directory
63 assert_equal 0, @repository.changesets.count
63 assert_equal 0, @repository.changesets.count
64 @repository.fetch_changesets
64 @repository.fetch_changesets
65 @project.reload
65 @project.reload
66 assert_equal NUM_REV, @repository.changesets.count
66 assert_equal NUM_REV, @repository.changesets.count
67 get :show, :id => PRJ_ID, :path => ['images']
67 get :show, :id => PRJ_ID, :path => ['images']
68 assert_response :success
68 assert_response :success
69 assert_template 'show'
69 assert_template 'show'
70 assert_not_nil assigns(:entries)
70 assert_not_nil assigns(:entries)
71 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
71 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
72 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
72 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
73 assert_not_nil entry
73 assert_not_nil entry
74 assert_equal 'file', entry.kind
74 assert_equal 'file', entry.kind
75 assert_equal 'images/edit.png', entry.path
75 assert_equal 'images/edit.png', entry.path
76 end
76 end
77
77
78 def test_browse_at_given_revision
78 def test_browse_at_given_revision
79 assert_equal 0, @repository.changesets.count
79 assert_equal 0, @repository.changesets.count
80 @repository.fetch_changesets
80 @repository.fetch_changesets
81 @project.reload
81 @project.reload
82 assert_equal NUM_REV, @repository.changesets.count
82 assert_equal NUM_REV, @repository.changesets.count
83 get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
83 get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
84 assert_response :success
84 assert_response :success
85 assert_template 'show'
85 assert_template 'show'
86 assert_not_nil assigns(:entries)
86 assert_not_nil assigns(:entries)
87 assert_equal ['delete.png'], assigns(:entries).collect(&:name)
87 assert_equal ['delete.png'], assigns(:entries).collect(&:name)
88 end
88 end
89
89
90 def test_changes
90 def test_changes
91 assert_equal 0, @repository.changesets.count
91 assert_equal 0, @repository.changesets.count
92 @repository.fetch_changesets
92 @repository.fetch_changesets
93 @project.reload
93 @project.reload
94 assert_equal NUM_REV, @repository.changesets.count
94 assert_equal NUM_REV, @repository.changesets.count
95 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
95 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
96 assert_response :success
96 assert_response :success
97 assert_template 'changes'
97 assert_template 'changes'
98 assert_tag :tag => 'h2', :content => 'edit.png'
98 assert_tag :tag => 'h2', :content => 'edit.png'
99 end
99 end
100
100
101 def test_diff
101 def test_diff
102 assert_equal 0, @repository.changesets.count
102 @repository.fetch_changesets
103 @repository.fetch_changesets
103 @repository.reload
104 @project.reload
105 assert_equal NUM_REV, @repository.changesets.count
104 # Full diff of changeset 5
106 # Full diff of changeset 5
105 ['inline', 'sbs'].each do |dt|
107 ['inline', 'sbs'].each do |dt|
106 get :diff, :id => PRJ_ID, :rev => 5, :type => dt
108 get :diff, :id => PRJ_ID, :rev => 5, :type => dt
107 assert_response :success
109 assert_response :success
108 assert_template 'diff'
110 assert_template 'diff'
109 # Line 22 removed
111 # Line 22 removed
110 assert_tag :tag => 'th',
112 assert_tag :tag => 'th',
111 :content => '22',
113 :content => '22',
112 :sibling => { :tag => 'td',
114 :sibling => { :tag => 'td',
113 :attributes => { :class => /diff_out/ },
115 :attributes => { :class => /diff_out/ },
114 :content => /def remove/ }
116 :content => /def remove/ }
115 end
117 end
116 end
118 end
117
119
118 def test_destroy_valid_repository
120 def test_destroy_valid_repository
119 @request.session[:user_id] = 1 # admin
121 @request.session[:user_id] = 1 # admin
120 @repository.fetch_changesets
122 @repository.fetch_changesets
121 @repository.reload
123 @repository.reload
122 assert @repository.changesets.count > 0
124 assert @repository.changesets.count > 0
123
125
124 get :destroy, :id => PRJ_ID
126 get :destroy, :id => PRJ_ID
125 assert_response 302
127 assert_response 302
126 @project.reload
128 @project.reload
127 assert_nil @project.repository
129 assert_nil @project.repository
128 end
130 end
129
131
130 def test_destroy_invalid_repository
132 def test_destroy_invalid_repository
131 @request.session[:user_id] = 1 # admin
133 @request.session[:user_id] = 1 # admin
132 @repository.fetch_changesets
134 @repository.fetch_changesets
133 @repository.reload
135 @repository.reload
134 assert @repository.changesets.count > 0
136 assert @repository.changesets.count > 0
135
137
136 get :destroy, :id => PRJ_ID
138 get :destroy, :id => PRJ_ID
137 assert_response 302
139 assert_response 302
138 @project.reload
140 @project.reload
139 assert_nil @project.repository
141 assert_nil @project.repository
140
142
141 @repository = Repository::Darcs.create(
143 @repository = Repository::Darcs.create(
142 :project => @project,
144 :project => @project,
143 :url => "/invalid",
145 :url => "/invalid",
144 :log_encoding => 'UTF-8'
146 :log_encoding => 'UTF-8'
145 )
147 )
146 assert @repository
148 assert @repository
147 @repository.fetch_changesets
149 @repository.fetch_changesets
148 @repository.reload
150 @repository.reload
149 assert_equal 0, @repository.changesets.count
151 assert_equal 0, @repository.changesets.count
150
152
151 get :destroy, :id => PRJ_ID
153 get :destroy, :id => PRJ_ID
152 assert_response 302
154 assert_response 302
153 @project.reload
155 @project.reload
154 assert_nil @project.repository
156 assert_nil @project.repository
155 end
157 end
156 else
158 else
157 puts "Darcs test repository NOT FOUND. Skipping functional tests !!!"
159 puts "Darcs test repository NOT FOUND. Skipping functional tests !!!"
158 def test_fake; assert true end
160 def test_fake; assert true end
159 end
161 end
160 end
162 end
General Comments 0
You need to be logged in to leave comments. Login now