Mercurial > hg > soundsoftware-site
comparison test/unit/.svn/text-base/repository_mercurial_test.rb.svn-base @ 117:af80e5618e9b redmine-1.1
* Update to Redmine 1.1-stable branch (Redmine SVN rev 4707)
author | Chris Cannam |
---|---|
date | Thu, 13 Jan 2011 12:53:21 +0000 |
parents | 513646585e45 |
children | cd2282d2aa55 |
comparison
equal
deleted
inserted
replaced
39:150ceac17a8d | 117:af80e5618e9b |
---|---|
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 | 19 |
20 class RepositoryMercurialTest < ActiveSupport::TestCase | 20 class RepositoryMercurialTest < ActiveSupport::TestCase |
21 fixtures :projects | 21 fixtures :projects |
22 | 22 |
23 # No '..' in the repository path | 23 # No '..' in the repository path |
31 if File.directory?(REPOSITORY_PATH) | 31 if File.directory?(REPOSITORY_PATH) |
32 def test_fetch_changesets_from_scratch | 32 def test_fetch_changesets_from_scratch |
33 @repository.fetch_changesets | 33 @repository.fetch_changesets |
34 @repository.reload | 34 @repository.reload |
35 | 35 |
36 assert_equal 6, @repository.changesets.count | 36 assert_equal 17, @repository.changesets.count |
37 assert_equal 11, @repository.changes.count | 37 assert_equal 25, @repository.changes.count |
38 assert_equal "Initial import.\nThe repository contains 3 files.", @repository.changesets.find_by_revision('0').comments | 38 assert_equal "Initial import.\nThe repository contains 3 files.", @repository.changesets.find_by_revision('0').comments |
39 end | 39 end |
40 | 40 |
41 def test_fetch_changesets_incremental | 41 def test_fetch_changesets_incremental |
42 @repository.fetch_changesets | 42 @repository.fetch_changesets |
44 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} | 44 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} |
45 @repository.reload | 45 @repository.reload |
46 assert_equal 3, @repository.changesets.count | 46 assert_equal 3, @repository.changesets.count |
47 | 47 |
48 @repository.fetch_changesets | 48 @repository.fetch_changesets |
49 assert_equal 6, @repository.changesets.count | 49 assert_equal 17, @repository.changesets.count |
50 end | 50 end |
51 | 51 |
52 def test_entries | 52 def test_entries |
53 assert_equal 2, @repository.entries("sources", 2).size | 53 assert_equal 2, @repository.entries("sources", 2).size |
54 assert_equal 1, @repository.entries("sources", 3).size | 54 assert_equal 1, @repository.entries("sources", 3).size |
55 end | 55 end |
56 | 56 |
57 def test_locate_on_outdated_repository | 57 def test_locate_on_outdated_repository |
58 # Change the working dir state | |
59 %x{hg -R #{REPOSITORY_PATH} up -r 0} | |
60 assert_equal 1, @repository.entries("images", 0).size | 58 assert_equal 1, @repository.entries("images", 0).size |
61 assert_equal 2, @repository.entries("images").size | 59 assert_equal 2, @repository.entries("images").size |
62 assert_equal 2, @repository.entries("images", 2).size | 60 assert_equal 2, @repository.entries("images", 2).size |
63 end | 61 end |
64 | 62 |
65 | 63 def test_isodatesec |
66 def test_cat | 64 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher |
67 assert @repository.scm.cat("sources/welcome_controller.rb", 2) | 65 if @repository.scm.class.client_version_above?([1, 0]) |
68 assert_nil @repository.scm.cat("sources/welcome_controller.rb") | 66 @repository.fetch_changesets |
67 @repository.reload | |
68 rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52) | |
69 assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on | |
70 end | |
69 end | 71 end |
70 | 72 |
73 def test_changeset_order_by_revision | |
74 @repository.fetch_changesets | |
75 @repository.reload | |
76 | |
77 c0 = @repository.latest_changeset | |
78 c1 = @repository.changesets.find_by_revision('0') | |
79 # sorted by revision (id), not by date | |
80 assert c0.revision.to_i > c1.revision.to_i | |
81 assert c0.committed_on < c1.committed_on | |
82 end | |
83 | |
84 def test_latest_changesets | |
85 @repository.fetch_changesets | |
86 @repository.reload | |
87 | |
88 # with_limit | |
89 changesets = @repository.latest_changesets('', nil, 2) | |
90 assert_equal @repository.latest_changesets('', nil)[0, 2], changesets | |
91 | |
92 # with_filepath | |
93 changesets = @repository.latest_changesets('/sql_escape/percent%dir/percent%file1.txt', nil) | |
94 assert_equal %w|11 10 9|, changesets.collect(&:revision) | |
95 | |
96 changesets = @repository.latest_changesets('/sql_escape/underscore_dir/understrike_file.txt', nil) | |
97 assert_equal %w|12 9|, changesets.collect(&:revision) | |
98 end | |
99 | |
100 def test_copied_files | |
101 @repository.fetch_changesets | |
102 @repository.reload | |
103 | |
104 cs1 = @repository.changesets.find_by_revision('13') | |
105 assert_not_nil cs1 | |
106 c1 = cs1.changes.sort_by(&:path) | |
107 assert_equal 2, c1.size | |
108 | |
109 assert_equal 'A', c1[0].action | |
110 assert_equal '/sql_escape/percent%dir/percentfile1.txt', c1[0].path | |
111 assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path | |
112 | |
113 assert_equal 'A', c1[1].action | |
114 assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path | |
115 assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path | |
116 | |
117 cs2 = @repository.changesets.find_by_revision('15') | |
118 c2 = cs2.changes | |
119 assert_equal 1, c2.size | |
120 | |
121 assert_equal 'A', c2[0].action | |
122 assert_equal '/README (1)[2]&,%.-3_4', c2[0].path | |
123 assert_equal '/README', c2[0].from_path | |
124 end | |
71 else | 125 else |
72 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" | 126 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" |
73 def test_fake; assert true end | 127 def test_fake; assert true end |
74 end | 128 end |
75 end | 129 end |