##// END OF EJS Templates
scm: darcs: code clean up functional test....
Toshi MARUYAMA -
r6112:1a1724128baa
parent child
Show More
@@ -1,110 +1,112
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
30
31 def setup
31 def setup
32 @controller = RepositoriesController.new
32 @controller = RepositoriesController.new
33 @request = ActionController::TestRequest.new
33 @request = ActionController::TestRequest.new
34 @response = ActionController::TestResponse.new
34 @response = ActionController::TestResponse.new
35 User.current = nil
35 User.current = nil
36 @project = Project.find(PRJ_ID)
36 @project = Project.find(PRJ_ID)
37 @repository = Repository::Darcs.create(
37 @repository = Repository::Darcs.create(
38 :project => @project, :url => REPOSITORY_PATH,
38 :project => @project,
39 :log_encoding => 'UTF-8')
39 :url => REPOSITORY_PATH,
40 :log_encoding => 'UTF-8'
41 )
40 assert @repository
42 assert @repository
41 end
43 end
42
44
43 if File.directory?(REPOSITORY_PATH)
45 if File.directory?(REPOSITORY_PATH)
44 def test_browse_root
46 def test_browse_root
45 @repository.fetch_changesets
47 @repository.fetch_changesets
46 @repository.reload
48 @repository.reload
47 get :show, :id => PRJ_ID
49 get :show, :id => PRJ_ID
48 assert_response :success
50 assert_response :success
49 assert_template 'show'
51 assert_template 'show'
50 assert_not_nil assigns(:entries)
52 assert_not_nil assigns(:entries)
51 assert_equal 3, assigns(:entries).size
53 assert_equal 3, assigns(:entries).size
52 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
54 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
53 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
55 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
54 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
56 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
55 end
57 end
56
58
57 def test_browse_directory
59 def test_browse_directory
58 @repository.fetch_changesets
60 @repository.fetch_changesets
59 @repository.reload
61 @repository.reload
60 get :show, :id => PRJ_ID, :path => ['images']
62 get :show, :id => PRJ_ID, :path => ['images']
61 assert_response :success
63 assert_response :success
62 assert_template 'show'
64 assert_template 'show'
63 assert_not_nil assigns(:entries)
65 assert_not_nil assigns(:entries)
64 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
66 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
65 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
67 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
66 assert_not_nil entry
68 assert_not_nil entry
67 assert_equal 'file', entry.kind
69 assert_equal 'file', entry.kind
68 assert_equal 'images/edit.png', entry.path
70 assert_equal 'images/edit.png', entry.path
69 end
71 end
70
72
71 def test_browse_at_given_revision
73 def test_browse_at_given_revision
72 @repository.fetch_changesets
74 @repository.fetch_changesets
73 @repository.reload
75 @repository.reload
74 get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
76 get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
75 assert_response :success
77 assert_response :success
76 assert_template 'show'
78 assert_template 'show'
77 assert_not_nil assigns(:entries)
79 assert_not_nil assigns(:entries)
78 assert_equal ['delete.png'], assigns(:entries).collect(&:name)
80 assert_equal ['delete.png'], assigns(:entries).collect(&:name)
79 end
81 end
80
82
81 def test_changes
83 def test_changes
82 @repository.fetch_changesets
84 @repository.fetch_changesets
83 @repository.reload
85 @repository.reload
84 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
86 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
85 assert_response :success
87 assert_response :success
86 assert_template 'changes'
88 assert_template 'changes'
87 assert_tag :tag => 'h2', :content => 'edit.png'
89 assert_tag :tag => 'h2', :content => 'edit.png'
88 end
90 end
89
91
90 def test_diff
92 def test_diff
91 @repository.fetch_changesets
93 @repository.fetch_changesets
92 @repository.reload
94 @repository.reload
93 # Full diff of changeset 5
95 # Full diff of changeset 5
94 ['inline', 'sbs'].each do |dt|
96 ['inline', 'sbs'].each do |dt|
95 get :diff, :id => PRJ_ID, :rev => 5, :type => dt
97 get :diff, :id => PRJ_ID, :rev => 5, :type => dt
96 assert_response :success
98 assert_response :success
97 assert_template 'diff'
99 assert_template 'diff'
98 # Line 22 removed
100 # Line 22 removed
99 assert_tag :tag => 'th',
101 assert_tag :tag => 'th',
100 :content => '22',
102 :content => '22',
101 :sibling => { :tag => 'td',
103 :sibling => { :tag => 'td',
102 :attributes => { :class => /diff_out/ },
104 :attributes => { :class => /diff_out/ },
103 :content => /def remove/ }
105 :content => /def remove/ }
104 end
106 end
105 end
107 end
106 else
108 else
107 puts "Darcs test repository NOT FOUND. Skipping functional tests !!!"
109 puts "Darcs test repository NOT FOUND. Skipping functional tests !!!"
108 def test_fake; assert true end
110 def test_fake; assert true end
109 end
111 end
110 end
112 end
General Comments 0
You need to be logged in to leave comments. Login now