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 !!!"