Mercurial > hg > soundsoftware-site
comparison test/unit/repository_subversion_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 |
comparison
equal
deleted
inserted
replaced
908:c6c2cbd0afee | 909:cbb26bc654de |
---|---|
18 require File.expand_path('../../test_helper', __FILE__) | 18 require File.expand_path('../../test_helper', __FILE__) |
19 | 19 |
20 class RepositorySubversionTest < ActiveSupport::TestCase | 20 class RepositorySubversionTest < ActiveSupport::TestCase |
21 fixtures :projects, :repositories, :enabled_modules, :users, :roles | 21 fixtures :projects, :repositories, :enabled_modules, :users, :roles |
22 | 22 |
23 NUM_REV = 11 | |
24 | |
23 def setup | 25 def setup |
24 @project = Project.find(3) | 26 @project = Project.find(3) |
25 @repository = Repository::Subversion.create(:project => @project, | 27 @repository = Repository::Subversion.create(:project => @project, |
26 :url => self.class.subversion_repository_url) | 28 :url => self.class.subversion_repository_url) |
27 assert @repository | 29 assert @repository |
28 end | 30 end |
29 | 31 |
30 if repository_configured?('subversion') | 32 if repository_configured?('subversion') |
31 def test_fetch_changesets_from_scratch | 33 def test_fetch_changesets_from_scratch |
32 @repository.fetch_changesets | 34 assert_equal 0, @repository.changesets.count |
33 @repository.reload | 35 @repository.fetch_changesets |
34 | 36 @project.reload |
35 assert_equal 11, @repository.changesets.count | 37 |
38 assert_equal NUM_REV, @repository.changesets.count | |
36 assert_equal 20, @repository.changes.count | 39 assert_equal 20, @repository.changes.count |
37 assert_equal 'Initial import.', @repository.changesets.find_by_revision('1').comments | 40 assert_equal 'Initial import.', @repository.changesets.find_by_revision('1').comments |
38 end | 41 end |
39 | 42 |
40 def test_fetch_changesets_incremental | 43 def test_fetch_changesets_incremental |
41 @repository.fetch_changesets | 44 assert_equal 0, @repository.changesets.count |
45 @repository.fetch_changesets | |
46 @project.reload | |
47 assert_equal NUM_REV, @repository.changesets.count | |
48 | |
42 # Remove changesets with revision > 5 | 49 # Remove changesets with revision > 5 |
43 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 5} | 50 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 5} |
44 @repository.reload | 51 @project.reload |
45 assert_equal 5, @repository.changesets.count | 52 assert_equal 5, @repository.changesets.count |
46 | 53 |
47 @repository.fetch_changesets | 54 @repository.fetch_changesets |
48 assert_equal 11, @repository.changesets.count | 55 @project.reload |
56 assert_equal NUM_REV, @repository.changesets.count | |
49 end | 57 end |
50 | 58 |
51 def test_latest_changesets | 59 def test_latest_changesets |
52 @repository.fetch_changesets | 60 assert_equal 0, @repository.changesets.count |
61 @repository.fetch_changesets | |
62 @project.reload | |
63 assert_equal NUM_REV, @repository.changesets.count | |
53 | 64 |
54 # with limit | 65 # with limit |
55 changesets = @repository.latest_changesets('', nil, 2) | 66 changesets = @repository.latest_changesets('', nil, 2) |
56 assert_equal 2, changesets.size | 67 assert_equal 2, changesets.size |
57 assert_equal @repository.latest_changesets('', nil).slice(0,2), changesets | 68 assert_equal @repository.latest_changesets('', nil).slice(0,2), changesets |
64 changesets = @repository.latest_changesets('subversion_test/folder', 8) | 75 changesets = @repository.latest_changesets('subversion_test/folder', 8) |
65 assert_equal ["7", "6", "5", "2"], changesets.collect(&:revision) | 76 assert_equal ["7", "6", "5", "2"], changesets.collect(&:revision) |
66 end | 77 end |
67 | 78 |
68 def test_directory_listing_with_square_brackets_in_path | 79 def test_directory_listing_with_square_brackets_in_path |
69 @repository.fetch_changesets | 80 assert_equal 0, @repository.changesets.count |
70 @repository.reload | 81 @repository.fetch_changesets |
82 @project.reload | |
83 assert_equal NUM_REV, @repository.changesets.count | |
71 | 84 |
72 entries = @repository.entries('subversion_test/[folder_with_brackets]') | 85 entries = @repository.entries('subversion_test/[folder_with_brackets]') |
73 assert_not_nil entries, 'Expect to find entries in folder_with_brackets' | 86 assert_not_nil entries, 'Expect to find entries in folder_with_brackets' |
74 assert_equal 1, entries.size, 'Expect one entry in folder_with_brackets' | 87 assert_equal 1, entries.size, 'Expect one entry in folder_with_brackets' |
75 assert_equal 'README.txt', entries.first.name | 88 assert_equal 'README.txt', entries.first.name |
79 @project = Project.find(3) | 92 @project = Project.find(3) |
80 @repository = Repository::Subversion.create( | 93 @repository = Repository::Subversion.create( |
81 :project => @project, | 94 :project => @project, |
82 :url => "file:///#{self.class.repository_path('subversion')}/subversion_test/[folder_with_brackets]") | 95 :url => "file:///#{self.class.repository_path('subversion')}/subversion_test/[folder_with_brackets]") |
83 | 96 |
84 @repository.fetch_changesets | 97 assert_equal 0, @repository.changesets.count |
85 @repository.reload | 98 @repository.fetch_changesets |
99 @project.reload | |
86 | 100 |
87 assert_equal 1, @repository.changesets.count, 'Expected to see 1 revision' | 101 assert_equal 1, @repository.changesets.count, 'Expected to see 1 revision' |
88 assert_equal 2, @repository.changes.count, 'Expected to see 2 changes, dir add and file add' | 102 assert_equal 2, @repository.changes.count, 'Expected to see 2 changes, dir add and file add' |
89 | 103 |
90 entries = @repository.entries('') | 104 entries = @repository.entries('') |
92 assert_equal 1, entries.size, 'Expect a single entry' | 106 assert_equal 1, entries.size, 'Expect a single entry' |
93 assert_equal 'README.txt', entries.first.name | 107 assert_equal 'README.txt', entries.first.name |
94 end | 108 end |
95 | 109 |
96 def test_identifier | 110 def test_identifier |
97 @repository.fetch_changesets | 111 assert_equal 0, @repository.changesets.count |
98 @repository.reload | 112 @repository.fetch_changesets |
113 @project.reload | |
114 assert_equal NUM_REV, @repository.changesets.count | |
99 c = @repository.changesets.find_by_revision('1') | 115 c = @repository.changesets.find_by_revision('1') |
100 assert_equal c.revision, c.identifier | 116 assert_equal c.revision, c.identifier |
101 end | 117 end |
102 | 118 |
103 def test_find_changeset_by_empty_name | 119 def test_find_changeset_by_empty_name |
104 @repository.fetch_changesets | 120 assert_equal 0, @repository.changesets.count |
105 @repository.reload | 121 @repository.fetch_changesets |
122 @project.reload | |
123 assert_equal NUM_REV, @repository.changesets.count | |
106 ['', ' ', nil].each do |r| | 124 ['', ' ', nil].each do |r| |
107 assert_nil @repository.find_changeset_by_name(r) | 125 assert_nil @repository.find_changeset_by_name(r) |
108 end | 126 end |
109 end | 127 end |
110 | 128 |
113 :revision => '123456789', :comments => 'test') | 131 :revision => '123456789', :comments => 'test') |
114 assert_equal c.identifier, c.revision | 132 assert_equal c.identifier, c.revision |
115 end | 133 end |
116 | 134 |
117 def test_format_identifier | 135 def test_format_identifier |
118 @repository.fetch_changesets | 136 assert_equal 0, @repository.changesets.count |
119 @repository.reload | 137 @repository.fetch_changesets |
138 @project.reload | |
139 assert_equal NUM_REV, @repository.changesets.count | |
120 c = @repository.changesets.find_by_revision('1') | 140 c = @repository.changesets.find_by_revision('1') |
121 assert_equal c.format_identifier, c.revision | 141 assert_equal c.format_identifier, c.revision |
122 end | 142 end |
123 | 143 |
124 def test_format_identifier_nine_digit | 144 def test_format_identifier_nine_digit |
158 assert_equal s2, c.comments | 178 assert_equal s2, c.comments |
159 end | 179 end |
160 end | 180 end |
161 | 181 |
162 def test_previous | 182 def test_previous |
163 @repository.fetch_changesets | 183 assert_equal 0, @repository.changesets.count |
164 @repository.reload | 184 @repository.fetch_changesets |
185 @project.reload | |
186 assert_equal NUM_REV, @repository.changesets.count | |
165 changeset = @repository.find_changeset_by_name('3') | 187 changeset = @repository.find_changeset_by_name('3') |
166 assert_equal @repository.find_changeset_by_name('2'), changeset.previous | 188 assert_equal @repository.find_changeset_by_name('2'), changeset.previous |
167 end | 189 end |
168 | 190 |
169 def test_previous_nil | 191 def test_previous_nil |
170 @repository.fetch_changesets | 192 assert_equal 0, @repository.changesets.count |
171 @repository.reload | 193 @repository.fetch_changesets |
194 @project.reload | |
195 assert_equal NUM_REV, @repository.changesets.count | |
172 changeset = @repository.find_changeset_by_name('1') | 196 changeset = @repository.find_changeset_by_name('1') |
173 assert_nil changeset.previous | 197 assert_nil changeset.previous |
174 end | 198 end |
175 | 199 |
176 def test_next | 200 def test_next |
177 @repository.fetch_changesets | 201 assert_equal 0, @repository.changesets.count |
178 @repository.reload | 202 @repository.fetch_changesets |
203 @project.reload | |
204 assert_equal NUM_REV, @repository.changesets.count | |
179 changeset = @repository.find_changeset_by_name('2') | 205 changeset = @repository.find_changeset_by_name('2') |
180 assert_equal @repository.find_changeset_by_name('3'), changeset.next | 206 assert_equal @repository.find_changeset_by_name('3'), changeset.next |
181 end | 207 end |
182 | 208 |
183 def test_next_nil | 209 def test_next_nil |
184 @repository.fetch_changesets | 210 assert_equal 0, @repository.changesets.count |
185 @repository.reload | 211 @repository.fetch_changesets |
212 @project.reload | |
213 assert_equal NUM_REV, @repository.changesets.count | |
186 changeset = @repository.find_changeset_by_name('11') | 214 changeset = @repository.find_changeset_by_name('11') |
187 assert_nil changeset.next | 215 assert_nil changeset.next |
188 end | 216 end |
189 else | 217 else |
190 puts "Subversion test repository NOT FOUND. Skipping unit tests !!!" | 218 puts "Subversion test repository NOT FOUND. Skipping unit tests !!!" |