diff test/unit/repository_mercurial_test.rb @ 245:051f544170fe

* Update to SVN trunk revision 4993
author Chris Cannam
date Thu, 03 Mar 2011 11:42:28 +0000
parents 8661b858af72
children eeebe205a056 cbce1fd3b1b7
line wrap: on
line diff
--- a/test/unit/repository_mercurial_test.rb	Thu Mar 03 11:40:10 2011 +0000
+++ b/test/unit/repository_mercurial_test.rb	Thu Mar 03 11:42:28 2011 +0000
@@ -22,23 +22,23 @@
   
   # No '..' in the repository path
   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
-  
+
   def setup
-    @project = Project.find(1)
-    assert @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+    @project = Project.find(3)
+    @repository = Repository::Mercurial.create(:project => @project, :url => REPOSITORY_PATH)
+    assert @repository
   end
-  
+
   if File.directory?(REPOSITORY_PATH)  
     def test_fetch_changesets_from_scratch
       @repository.fetch_changesets
       @repository.reload
-      
       assert_equal 17, @repository.changesets.count
       assert_equal 25, @repository.changes.count
       assert_equal "Initial import.\nThe repository contains 3 files.",
                    @repository.changesets.find_by_revision('0').comments
     end
-    
+
     def test_fetch_changesets_incremental
       @repository.fetch_changesets
       # Remove changesets with revision > 2
@@ -49,19 +49,6 @@
       @repository.fetch_changesets
       assert_equal 17, @repository.changesets.count
     end
-    
-    def test_entries
-      assert_equal 2, @repository.entries("sources", 2).size
-      assert_equal 2, @repository.entries("sources", '400bb8672109').size
-      assert_equal 1, @repository.entries("sources", 3).size
-      assert_equal 1, @repository.entries("sources", 'b3a615152df8').size
-    end
-
-    def test_locate_on_outdated_repository
-      assert_equal 1, @repository.entries("images", 0).size
-      assert_equal 2, @repository.entries("images").size
-      assert_equal 2, @repository.entries("images", 2).size
-    end
 
     def test_isodatesec
       # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
@@ -171,6 +158,43 @@
       assert c.event_title.include?('123:abc400bb8672:')
       assert_equal 'abc400bb8672', c.event_url[:rev]
     end
+
+    def test_latest_changesets_with_limit
+      @repository.fetch_changesets
+      @repository.reload
+      changesets = @repository.latest_changesets('', nil, 2)
+      assert_equal @repository.latest_changesets('', nil)[0, 2], changesets
+    end
+
+    def test_latest_changesets_with_filepath
+      @repository.fetch_changesets
+      @repository.reload
+      changesets = @repository.latest_changesets('README', nil)
+      assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
+
+      path = 'sql_escape/percent%dir/percent%file1.txt'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+      path = 'sql_escape/underscore_dir/understrike_file.txt'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|12 9|, changesets.collect(&:revision)
+    end
+
+    def test_latest_changesets_with_dirpath
+      @repository.fetch_changesets
+      @repository.reload
+      changesets = @repository.latest_changesets('images', nil)
+      assert_equal %w|1 0|, changesets.collect(&:revision)
+
+      path = 'sql_escape/percent%dir'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|13 11 10 9|, changesets.collect(&:revision)
+
+      path = 'sql_escape/underscore_dir'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|13 12 9|, changesets.collect(&:revision)
+    end
   else
     puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end