Mercurial > hg > soundsoftware-site
diff test/functional/repositories_darcs_controller_test.rb @ 909:cbb26bc654de redmine-1.3
Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author | Chris Cannam |
---|---|
date | Fri, 24 Feb 2012 19:09:32 +0000 |
parents | cbce1fd3b1b7 |
children | 433d4f72a19b |
line wrap: on
line diff
--- a/test/functional/repositories_darcs_controller_test.rb Fri Feb 24 18:36:29 2012 +0000 +++ b/test/functional/repositories_darcs_controller_test.rb Fri Feb 24 19:09:32 2012 +0000 @@ -1,16 +1,16 @@ -# redMine - project management software -# Copyright (C) 2006-2008 Jean-Philippe Lang +# Redmine - project management software +# Copyright (C) 2006-2011 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. @@ -22,11 +22,12 @@ class RepositoriesController; def rescue_action(e) raise e end; end class RepositoriesDarcsControllerTest < ActionController::TestCase - fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules + fixtures :projects, :users, :roles, :members, :member_roles, + :repositories, :enabled_modules - # No '..' in the repository path - REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/darcs_repository' + REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s PRJ_ID = 3 + NUM_REV = 6 def setup @controller = RepositoriesController.new @@ -35,15 +36,19 @@ User.current = nil @project = Project.find(PRJ_ID) @repository = Repository::Darcs.create( - :project => @project, :url => REPOSITORY_PATH, - :log_encoding => 'UTF-8') + :project => @project, + :url => REPOSITORY_PATH, + :log_encoding => 'UTF-8' + ) assert @repository end if File.directory?(REPOSITORY_PATH) def test_browse_root + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count get :show, :id => PRJ_ID assert_response :success assert_template 'show' @@ -55,8 +60,10 @@ end def test_browse_directory + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count get :show, :id => PRJ_ID, :path => ['images'] assert_response :success assert_template 'show' @@ -69,8 +76,10 @@ end def test_browse_at_given_revision + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count get :show, :id => PRJ_ID, :path => ['images'], :rev => 1 assert_response :success assert_template 'show' @@ -79,8 +88,10 @@ end def test_changes + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count get :changes, :id => PRJ_ID, :path => ['images', 'edit.png'] assert_response :success assert_template 'changes' @@ -88,18 +99,63 @@ end def test_diff + assert_equal 0, @repository.changesets.count @repository.fetch_changesets - @repository.reload + @project.reload + assert_equal NUM_REV, @repository.changesets.count # Full diff of changeset 5 - get :diff, :id => PRJ_ID, :rev => 5 - assert_response :success - assert_template 'diff' - # Line 22 removed - assert_tag :tag => 'th', - :content => /22/, - :sibling => { :tag => 'td', - :attributes => { :class => /diff_out/ }, - :content => /def remove/ } + ['inline', 'sbs'].each do |dt| + get :diff, :id => PRJ_ID, :rev => 5, :type => dt + assert_response :success + assert_template 'diff' + # Line 22 removed + assert_tag :tag => 'th', + :content => '22', + :sibling => { :tag => 'td', + :attributes => { :class => /diff_out/ }, + :content => /def remove/ } + end + end + + def test_destroy_valid_repository + @request.session[:user_id] = 1 # admin + assert_equal 0, @repository.changesets.count + @repository.fetch_changesets + @project.reload + assert_equal NUM_REV, @repository.changesets.count + + get :destroy, :id => PRJ_ID + assert_response 302 + @project.reload + assert_nil @project.repository + end + + def test_destroy_invalid_repository + @request.session[:user_id] = 1 # admin + assert_equal 0, @repository.changesets.count + @repository.fetch_changesets + @project.reload + assert_equal NUM_REV, @repository.changesets.count + + get :destroy, :id => PRJ_ID + assert_response 302 + @project.reload + assert_nil @project.repository + + @repository = Repository::Darcs.create( + :project => @project, + :url => "/invalid", + :log_encoding => 'UTF-8' + ) + assert @repository + @repository.fetch_changesets + @project.reload + assert_equal 0, @repository.changesets.count + + get :destroy, :id => PRJ_ID + assert_response 302 + @project.reload + assert_nil @project.repository end else puts "Darcs test repository NOT FOUND. Skipping functional tests !!!"