diff test/functional/repositories_filesystem_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_filesystem_controller_test.rb	Fri Feb 24 18:36:29 2012 +0000
+++ b/test/functional/repositories_filesystem_controller_test.rb	Fri Feb 24 19:09:32 2012 +0000
@@ -22,10 +22,10 @@
 class RepositoriesController; def rescue_action(e) raise e end; end
 
 class RepositoriesFilesystemControllerTest < 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/filesystem_repository'
+  REPOSITORY_PATH = Rails.root.join('tmp/test/filesystem_repository').to_s
   PRJ_ID = 3
 
   def setup
@@ -36,8 +36,9 @@
     @response   = ActionController::TestResponse.new
     User.current = nil
     Setting.enabled_scm << 'Filesystem' unless Setting.enabled_scm.include?('Filesystem')
+    @project = Project.find(PRJ_ID)
     @repository = Repository::Filesystem.create(
-                      :project       => Project.find(PRJ_ID),
+                      :project       => @project,
                       :url           => REPOSITORY_PATH,
                       :path_encoding => ''
                       )
@@ -115,6 +116,36 @@
         assert_equal 'text/plain', @response.content_type
       end
     end
+
+    def test_destroy_valid_repository
+      @request.session[:user_id] = 1 # admin
+
+      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
+
+      get :destroy, :id => PRJ_ID
+      assert_response 302
+      @project.reload
+      assert_nil @project.repository
+
+      @repository = Repository::Filesystem.create(
+                      :project       => Project.find(PRJ_ID),
+                      :url           => "/invalid",
+                      :path_encoding => ''
+                      )
+      assert @repository
+
+      get :destroy, :id => PRJ_ID
+      assert_response 302
+      @project.reload
+      assert_nil @project.repository
+    end
   else
     puts "Filesystem test repository NOT FOUND. Skipping functional tests !!!"
     def test_fake; assert true end