diff test/functional/repositories_mercurial_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 0c939c159af4
children 5e80956cc792 433d4f72a19b
line wrap: on
line diff
--- a/test/functional/repositories_mercurial_controller_test.rb	Fri Feb 24 18:36:29 2012 +0000
+++ b/test/functional/repositories_mercurial_controller_test.rb	Fri Feb 24 19:09:32 2012 +0000
@@ -22,13 +22,13 @@
 class RepositoriesController; def rescue_action(e) raise e end; end
 
 class RepositoriesMercurialControllerTest < 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/mercurial_repository'
+  REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
   CHAR_1_HEX = "\xc3\x9c"
   PRJ_ID     = 3
+  NUM_REV    = 32
 
   ruby19_non_utf8_pass =
      (RUBY_VERSION >= '1.9' && Encoding.default_external.to_s != 'UTF-8')
@@ -65,8 +65,10 @@
     def test_fake; assert true end
   elsif File.directory?(REPOSITORY_PATH)
     def test_show_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'
@@ -76,12 +78,14 @@
       assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
       assert assigns(:entries).detect {|e| e.name == 'README'  && e.kind == 'file'}
       assert_not_nil assigns(:changesets)
-      assigns(:changesets).size > 0
+      assert assigns(:changesets).size > 0
     end
 
     def test_show_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'
@@ -92,12 +96,14 @@
       assert_equal 'file', entry.kind
       assert_equal 'images/edit.png', entry.path
       assert_not_nil assigns(:changesets)
-      assigns(:changesets).size > 0
+      assert assigns(:changesets).size > 0
     end
 
     def test_show_at_given_revision
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [0, '0', '0885933ad4f6'].each do |r1|
         get :show, :id => PRJ_ID, :path => ['images'], :rev => r1
         assert_response :success
@@ -105,13 +111,15 @@
         assert_not_nil assigns(:entries)
         assert_equal ['delete.png'], assigns(:entries).collect(&:name)
         assert_not_nil assigns(:changesets)
-        assigns(:changesets).size > 0
+        assert assigns(:changesets).size > 0
       end
     end
 
     def test_show_directory_sql_escape_percent
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [13, '13', '3a330eb32958'].each do |r1|
         get :show, :id => PRJ_ID, :path => ['sql_escape', 'percent%dir'],
             :rev => r1
@@ -123,14 +131,16 @@
                      assigns(:entries).collect(&:name)
         changesets = assigns(:changesets)
         assert_not_nil changesets
-        assigns(:changesets).size > 0
+        assert assigns(:changesets).size > 0
         assert_equal %w(13 11 10 9), changesets.collect(&:revision)
       end
     end
 
     def test_show_directory_latin_1_path
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [21, '21', 'adf805632193'].each do |r1|
         get :show, :id => PRJ_ID, :path => ['latin-1-dir'], :rev => r1
         assert_response :success
@@ -148,8 +158,10 @@
     end
 
     def test_show_branch
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
        [
           'default',
           @branch_char_1,
@@ -164,13 +176,15 @@
         assert_not_nil assigns(:entries)
         assert assigns(:entries).size > 0
         assert_not_nil assigns(:changesets)
-        assigns(:changesets).size > 0
+        assert assigns(:changesets).size > 0
       end
     end
 
     def test_show_tag
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
        [
         @tag_char_1,
         'tag_test.00',
@@ -182,7 +196,7 @@
         assert_not_nil assigns(:entries)
         assert assigns(:entries).size > 0
         assert_not_nil assigns(:changesets)
-        assigns(:changesets).size > 0
+        assert assigns(:changesets).size > 0
       end
     end
 
@@ -257,38 +271,49 @@
     end
 
     def test_diff
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [4, '4', 'def6d2f1254a'].each do |r1|
         # Full diff of changeset 4
-        get :diff, :id => PRJ_ID, :rev => r1
-        assert_response :success
-        assert_template 'diff'
-        if @diff_c_support
-          # Line 22 removed
-          assert_tag :tag => 'th',
-                     :content => '22',
-                     :sibling => { :tag => 'td',
-                                   :attributes => { :class => /diff_out/ },
-                                   :content => /def remove/ }
-          assert_tag :tag => 'h2', :content => /4:def6d2f1254a/
+        ['inline', 'sbs'].each do |dt|
+          get :diff, :id => PRJ_ID, :rev => r1, :type => dt
+          assert_response :success
+          assert_template 'diff'
+          if @diff_c_support
+            # Line 22 removed
+            assert_tag :tag => 'th',
+                       :content => '22',
+                       :sibling => { :tag => 'td',
+                                     :attributes => { :class => /diff_out/ },
+                                     :content => /def remove/ }
+            assert_tag :tag => 'h2', :content => /4:def6d2f1254a/
+          end
         end
       end
     end
 
     def test_diff_two_revs
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [2, '400bb8672109', '400', 400].each do |r1|
         [4, 'def6d2f1254a'].each do |r2|
-          get :diff, :id => PRJ_ID, :rev    => r1,
-                                    :rev_to => r2
-          assert_response :success
-          assert_template 'diff'
-
-          diff = assigns(:diff)
-          assert_not_nil diff
-          assert_tag :tag => 'h2', :content => /4:def6d2f1254a 2:400bb8672109/
+          ['inline', 'sbs'].each do |dt|
+            get :diff,
+                :id     => PRJ_ID,
+                :rev    => r1,
+                :rev_to => r2,
+                :type => dt
+            assert_response :success
+            assert_template 'diff'
+            diff = assigns(:diff)
+            assert_not_nil diff
+            assert_tag :tag => 'h2',
+                       :content => /4:def6d2f1254a 2:400bb8672109/
+          end
         end
       end
     end
@@ -296,23 +321,25 @@
     def test_diff_latin_1_path
       with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
         [21, 'adf805632193'].each do |r1|
-          get :diff, :id => PRJ_ID, :rev => r1
-          assert_response :success
-          assert_template 'diff'
-          assert_tag :tag => 'thead',
-                     :descendant => {
-                       :tag => 'th',
-                       :attributes => { :class => 'filename' } ,
-                       :content => /latin-1-dir\/test-#{@char_1}-2.txt/ ,
-                      },
-                     :sibling => {
-                       :tag => 'tbody',
+          ['inline', 'sbs'].each do |dt|
+            get :diff, :id => PRJ_ID, :rev => r1, :type => dt
+            assert_response :success
+            assert_template 'diff'
+            assert_tag :tag => 'thead',
                        :descendant => {
-                          :tag => 'td',
-                          :attributes => { :class => /diff_in/ },
-                          :content => /It is written in Python/
+                         :tag => 'th',
+                         :attributes => { :class => 'filename' } ,
+                         :content => /latin-1-dir\/test-#{@char_1}-2.txt/ ,
+                        },
+                       :sibling => {
+                         :tag => 'tbody',
+                         :descendant => {
+                            :tag => 'td',
+                            :attributes => { :class => /diff_in/ },
+                            :content => /It is written in Python/
+                         }
                        }
-                     }
+          end
         end
       end
     end
@@ -347,9 +374,10 @@
     end
 
     def test_annotate_not_in_tip
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
-      assert @repository.changesets.size > 0
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
 
       get :annotate, :id => PRJ_ID,
           :path => ['sources', 'welcome_controller.rb']
@@ -358,8 +386,10 @@
     end
 
     def test_annotate_at_given_revision
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       [2, '400bb8672109', '400', 400].each do |r1|
         get :annotate, :id => PRJ_ID, :rev => r1,
             :path => ['sources', 'watchers_controller.rb']
@@ -417,8 +447,10 @@
     end
 
     def test_empty_revision
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
       ['', ' ', nil].each do |r|
         get :revision, :id => PRJ_ID, :rev => r
         assert_response 404
@@ -428,9 +460,10 @@
 
     def test_destroy_valid_repository
       @request.session[:user_id] = 1 # admin
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
-      assert @repository.changesets.count > 0
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
 
       get :destroy, :id => PRJ_ID
       assert_response 302
@@ -440,9 +473,10 @@
 
     def test_destroy_invalid_repository
       @request.session[:user_id] = 1 # admin
+      assert_equal 0, @repository.changesets.count
       @repository.fetch_changesets
-      @repository.reload
-      assert @repository.changesets.count > 0
+      @project.reload
+      assert_equal NUM_REV, @repository.changesets.count
 
       get :destroy, :id => PRJ_ID
       assert_response 302
@@ -456,7 +490,7 @@
                       )
       assert @repository
       @repository.fetch_changesets
-      @repository.reload
+      @project.reload
       assert_equal 0, @repository.changesets.count
 
       get :destroy, :id => PRJ_ID