comparison test/unit/repository_bazaar_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
1 # redMine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
8 # 8 #
9 # This program is distributed in the hope that it will be useful, 9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details. 12 # GNU General Public License for more details.
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.expand_path('../../test_helper', __FILE__) 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 class RepositoryBazaarTest < ActiveSupport::TestCase 20 class RepositoryBazaarTest < ActiveSupport::TestCase
21 fixtures :projects 21 fixtures :projects
22 22
23 # No '..' in the repository path 23 REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository/trunk').to_s
24 REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/bazaar_repository'
25 REPOSITORY_PATH.gsub!(/\/+/, '/') 24 REPOSITORY_PATH.gsub!(/\/+/, '/')
25 NUM_REV = 4
26 26
27 def setup 27 def setup
28 @project = Project.find(3) 28 @project = Project.find(3)
29 @repository = Repository::Bazaar.create( 29 @repository = Repository::Bazaar.create(
30 :project => @project, :url => "file:///#{REPOSITORY_PATH}", 30 :project => @project, :url => "file:///#{REPOSITORY_PATH}",
31 :log_encoding => 'UTF-8') 31 :log_encoding => 'UTF-8')
32 assert @repository 32 assert @repository
33 end 33 end
34 34
35 if File.directory?(REPOSITORY_PATH) 35 if File.directory?(REPOSITORY_PATH)
36 def test_fetch_changesets_from_scratch 36 def test_fetch_changesets_from_scratch
37 assert_equal 0, @repository.changesets.count
37 @repository.fetch_changesets 38 @repository.fetch_changesets
38 @repository.reload 39 @project.reload
39 40
40 assert_equal 4, @repository.changesets.count 41 assert_equal NUM_REV, @repository.changesets.count
41 assert_equal 9, @repository.changes.count 42 assert_equal 9, @repository.changes.count
42 assert_equal 'Initial import', @repository.changesets.find_by_revision('1').comments 43 assert_equal 'Initial import', @repository.changesets.find_by_revision('1').comments
43 end 44 end
44 45
45 def test_fetch_changesets_incremental 46 def test_fetch_changesets_incremental
47 assert_equal 0, @repository.changesets.count
46 @repository.fetch_changesets 48 @repository.fetch_changesets
49 @project.reload
50 assert_equal NUM_REV, @repository.changesets.count
47 # Remove changesets with revision > 5 51 # Remove changesets with revision > 5
48 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2} 52 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2}
49 @repository.reload 53 @project.reload
50 assert_equal 2, @repository.changesets.count 54 assert_equal 2, @repository.changesets.count
51 55
52 @repository.fetch_changesets 56 @repository.fetch_changesets
53 assert_equal 4, @repository.changesets.count 57 @project.reload
58 assert_equal NUM_REV, @repository.changesets.count
54 end 59 end
55 60
56 def test_entries 61 def test_entries
57 entries = @repository.entries 62 entries = @repository.entries
58 assert_equal 2, entries.size 63 assert_equal 2, entries.size
59 64
60 assert_equal 'dir', entries[0].kind 65 assert_equal 'dir', entries[0].kind
61 assert_equal 'directory', entries[0].name 66 assert_equal 'directory', entries[0].name
62 67
63 assert_equal 'file', entries[1].kind 68 assert_equal 'file', entries[1].kind
64 assert_equal 'doc-mkdir.txt', entries[1].name 69 assert_equal 'doc-mkdir.txt', entries[1].name
65 end 70 end
66 71
67 def test_entries_in_subdirectory 72 def test_entries_in_subdirectory
68 entries = @repository.entries('directory') 73 entries = @repository.entries('directory')
69 assert_equal 3, entries.size 74 assert_equal 3, entries.size
70 75
71 assert_equal 'file', entries.last.kind 76 assert_equal 'file', entries.last.kind
72 assert_equal 'edit.png', entries.last.name 77 assert_equal 'edit.png', entries.last.name
73 end 78 end
74 79
75 def test_previous 80 def test_previous
81 assert_equal 0, @repository.changesets.count
76 @repository.fetch_changesets 82 @repository.fetch_changesets
77 @repository.reload 83 @project.reload
84 assert_equal NUM_REV, @repository.changesets.count
78 changeset = @repository.find_changeset_by_name('3') 85 changeset = @repository.find_changeset_by_name('3')
79 assert_equal @repository.find_changeset_by_name('2'), changeset.previous 86 assert_equal @repository.find_changeset_by_name('2'), changeset.previous
80 end 87 end
81 88
82 def test_previous_nil 89 def test_previous_nil
90 assert_equal 0, @repository.changesets.count
83 @repository.fetch_changesets 91 @repository.fetch_changesets
84 @repository.reload 92 @project.reload
93 assert_equal NUM_REV, @repository.changesets.count
85 changeset = @repository.find_changeset_by_name('1') 94 changeset = @repository.find_changeset_by_name('1')
86 assert_nil changeset.previous 95 assert_nil changeset.previous
87 end 96 end
88 97
89 def test_next 98 def test_next
99 assert_equal 0, @repository.changesets.count
90 @repository.fetch_changesets 100 @repository.fetch_changesets
91 @repository.reload 101 @project.reload
102 assert_equal NUM_REV, @repository.changesets.count
92 changeset = @repository.find_changeset_by_name('2') 103 changeset = @repository.find_changeset_by_name('2')
93 assert_equal @repository.find_changeset_by_name('3'), changeset.next 104 assert_equal @repository.find_changeset_by_name('3'), changeset.next
94 end 105 end
95 106
96 def test_next_nil 107 def test_next_nil
108 assert_equal 0, @repository.changesets.count
97 @repository.fetch_changesets 109 @repository.fetch_changesets
98 @repository.reload 110 @project.reload
111 assert_equal NUM_REV, @repository.changesets.count
99 changeset = @repository.find_changeset_by_name('4') 112 changeset = @repository.find_changeset_by_name('4')
100 assert_nil changeset.next 113 assert_nil changeset.next
101 end 114 end
102 else 115 else
103 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!" 116 puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"