comparison test/functional/repositories_darcs_controller_test.rb @ 524:1248a47e81b3 feature_36

Merge from branch "luisf"
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Mon, 25 Jul 2011 14:39:38 +0100
parents cbce1fd3b1b7
children cbb26bc654de
comparison
equal deleted inserted replaced
519:3be6bc3c2a17 524:1248a47e81b3
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.dirname(__FILE__) + '/../test_helper' 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, :repositories, :enabled_modules 25 fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
26 26
27 # No '..' in the repository path 27 # No '..' in the repository path
28 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository' 28 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository'
29 PRJ_ID = 3
29 30
30 def setup 31 def setup
31 @controller = RepositoriesController.new 32 @controller = RepositoriesController.new
32 @request = ActionController::TestRequest.new 33 @request = ActionController::TestRequest.new
33 @response = ActionController::TestResponse.new 34 @response = ActionController::TestResponse.new
34 User.current = nil 35 User.current = nil
35 Repository::Darcs.create(:project => Project.find(3), :url => REPOSITORY_PATH) 36 @project = Project.find(PRJ_ID)
37 @repository = Repository::Darcs.create(
38 :project => @project, :url => REPOSITORY_PATH,
39 :log_encoding => 'UTF-8')
40 assert @repository
36 end 41 end
37 42
38 if File.directory?(REPOSITORY_PATH) 43 if File.directory?(REPOSITORY_PATH)
39 def test_show
40 get :show, :id => 3
41 assert_response :success
42 assert_template 'show'
43 assert_not_nil assigns(:entries)
44 assert_not_nil assigns(:changesets)
45 end
46
47 def test_browse_root 44 def test_browse_root
48 get :show, :id => 3 45 @repository.fetch_changesets
46 @repository.reload
47 get :show, :id => PRJ_ID
49 assert_response :success 48 assert_response :success
50 assert_template 'show' 49 assert_template 'show'
51 assert_not_nil assigns(:entries) 50 assert_not_nil assigns(:entries)
52 assert_equal 3, assigns(:entries).size 51 assert_equal 3, assigns(:entries).size
53 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'} 52 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
54 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'} 53 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
55 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'} 54 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
56 end 55 end
57 56
58 def test_browse_directory 57 def test_browse_directory
59 get :show, :id => 3, :path => ['images'] 58 @repository.fetch_changesets
59 @repository.reload
60 get :show, :id => PRJ_ID, :path => ['images']
60 assert_response :success 61 assert_response :success
61 assert_template 'show' 62 assert_template 'show'
62 assert_not_nil assigns(:entries) 63 assert_not_nil assigns(:entries)
63 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name) 64 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
64 entry = assigns(:entries).detect {|e| e.name == 'edit.png'} 65 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
65 assert_not_nil entry 66 assert_not_nil entry
66 assert_equal 'file', entry.kind 67 assert_equal 'file', entry.kind
67 assert_equal 'images/edit.png', entry.path 68 assert_equal 'images/edit.png', entry.path
68 end 69 end
69 70
70 def test_browse_at_given_revision 71 def test_browse_at_given_revision
71 Project.find(3).repository.fetch_changesets 72 @repository.fetch_changesets
72 get :show, :id => 3, :path => ['images'], :rev => 1 73 @repository.reload
74 get :show, :id => PRJ_ID, :path => ['images'], :rev => 1
73 assert_response :success 75 assert_response :success
74 assert_template 'show' 76 assert_template 'show'
75 assert_not_nil assigns(:entries) 77 assert_not_nil assigns(:entries)
76 assert_equal ['delete.png'], assigns(:entries).collect(&:name) 78 assert_equal ['delete.png'], assigns(:entries).collect(&:name)
77 end 79 end
78 80
79 def test_changes 81 def test_changes
80 get :changes, :id => 3, :path => ['images', 'edit.png'] 82 @repository.fetch_changesets
83 @repository.reload
84 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
81 assert_response :success 85 assert_response :success
82 assert_template 'changes' 86 assert_template 'changes'
83 assert_tag :tag => 'h2', :content => 'edit.png' 87 assert_tag :tag => 'h2', :content => 'edit.png'
84 end 88 end
85 89
86 def test_diff 90 def test_diff
87 Project.find(3).repository.fetch_changesets 91 @repository.fetch_changesets
92 @repository.reload
88 # Full diff of changeset 5 93 # Full diff of changeset 5
89 get :diff, :id => 3, :rev => 5 94 get :diff, :id => PRJ_ID, :rev => 5
90 assert_response :success 95 assert_response :success
91 assert_template 'diff' 96 assert_template 'diff'
92 # Line 22 removed 97 # Line 22 removed
93 assert_tag :tag => 'th', 98 assert_tag :tag => 'th',
94 :content => /22/, 99 :content => /22/,