##// END OF EJS Templates
scm: darcs: add test to override human_attribute_name of "path to repository"...
Toshi MARUYAMA -
r8839:b73d5d7ecc17
parent child
Show More
@@ -1,96 +1,124
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2011 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 RepositoryDarcsTest < ActiveSupport::TestCase
20 class RepositoryDarcsTest < ActiveSupport::TestCase
21 fixtures :projects
21 fixtures :projects
22
22
23 include Redmine::I18n
24
23 REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s
25 REPOSITORY_PATH = Rails.root.join('tmp/test/darcs_repository').to_s
24 NUM_REV = 6
26 NUM_REV = 6
25
27
26 def setup
28 def setup
27 @project = Project.find(3)
29 @project = Project.find(3)
28 @repository = Repository::Darcs.create(
30 @repository = Repository::Darcs.create(
29 :project => @project,
31 :project => @project,
30 :url => REPOSITORY_PATH,
32 :url => REPOSITORY_PATH,
31 :log_encoding => 'UTF-8'
33 :log_encoding => 'UTF-8'
32 )
34 )
33 assert @repository
35 assert @repository
34 end
36 end
35
37
38 def test_blank_path_to_repository_error_message
39 set_language_if_valid 'en'
40 repo = Repository::Darcs.new(
41 :project => @project,
42 :identifier => 'test',
43 :log_encoding => 'UTF-8'
44 )
45 assert !repo.save
46 assert_include "Path to repository can't be blank",
47 repo.errors.full_messages
48 end
49
50 def test_blank_path_to_repository_error_message_fr
51 set_language_if_valid 'fr'
52 str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)"
53 str.force_encoding('UTF-8') if str.respond_to?(:force_encoding)
54 repo = Repository::Darcs.new(
55 :project => @project,
56 :url => "",
57 :identifier => 'test',
58 :log_encoding => 'UTF-8'
59 )
60 assert !repo.save
61 assert_include str, repo.errors.full_messages
62 end
63
36 if File.directory?(REPOSITORY_PATH)
64 if File.directory?(REPOSITORY_PATH)
37 def test_fetch_changesets_from_scratch
65 def test_fetch_changesets_from_scratch
38 assert_equal 0, @repository.changesets.count
66 assert_equal 0, @repository.changesets.count
39 @repository.fetch_changesets
67 @repository.fetch_changesets
40 @project.reload
68 @project.reload
41
69
42 assert_equal NUM_REV, @repository.changesets.count
70 assert_equal NUM_REV, @repository.changesets.count
43 assert_equal 13, @repository.changes.count
71 assert_equal 13, @repository.changes.count
44 assert_equal "Initial commit.", @repository.changesets.find_by_revision('1').comments
72 assert_equal "Initial commit.", @repository.changesets.find_by_revision('1').comments
45 end
73 end
46
74
47 def test_fetch_changesets_incremental
75 def test_fetch_changesets_incremental
48 assert_equal 0, @repository.changesets.count
76 assert_equal 0, @repository.changesets.count
49 @repository.fetch_changesets
77 @repository.fetch_changesets
50 @project.reload
78 @project.reload
51 assert_equal NUM_REV, @repository.changesets.count
79 assert_equal NUM_REV, @repository.changesets.count
52
80
53 # Remove changesets with revision > 3
81 # Remove changesets with revision > 3
54 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 3}
82 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 3}
55 @project.reload
83 @project.reload
56 assert_equal 3, @repository.changesets.count
84 assert_equal 3, @repository.changesets.count
57
85
58 @repository.fetch_changesets
86 @repository.fetch_changesets
59 @project.reload
87 @project.reload
60 assert_equal NUM_REV, @repository.changesets.count
88 assert_equal NUM_REV, @repository.changesets.count
61 end
89 end
62
90
63 def test_entries_invalid_revision
91 def test_entries_invalid_revision
64 assert_equal 0, @repository.changesets.count
92 assert_equal 0, @repository.changesets.count
65 @repository.fetch_changesets
93 @repository.fetch_changesets
66 @project.reload
94 @project.reload
67 assert_equal NUM_REV, @repository.changesets.count
95 assert_equal NUM_REV, @repository.changesets.count
68 assert_nil @repository.entries('', '123')
96 assert_nil @repository.entries('', '123')
69 end
97 end
70
98
71 def test_deleted_files_should_not_be_listed
99 def test_deleted_files_should_not_be_listed
72 assert_equal 0, @repository.changesets.count
100 assert_equal 0, @repository.changesets.count
73 @repository.fetch_changesets
101 @repository.fetch_changesets
74 @project.reload
102 @project.reload
75 assert_equal NUM_REV, @repository.changesets.count
103 assert_equal NUM_REV, @repository.changesets.count
76 entries = @repository.entries('sources')
104 entries = @repository.entries('sources')
77 assert entries.detect {|e| e.name == 'watchers_controller.rb'}
105 assert entries.detect {|e| e.name == 'watchers_controller.rb'}
78 assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
106 assert_nil entries.detect {|e| e.name == 'welcome_controller.rb'}
79 end
107 end
80
108
81 def test_cat
109 def test_cat
82 if @repository.scm.supports_cat?
110 if @repository.scm.supports_cat?
83 assert_equal 0, @repository.changesets.count
111 assert_equal 0, @repository.changesets.count
84 @repository.fetch_changesets
112 @repository.fetch_changesets
85 @project.reload
113 @project.reload
86 assert_equal NUM_REV, @repository.changesets.count
114 assert_equal NUM_REV, @repository.changesets.count
87 cat = @repository.cat("sources/welcome_controller.rb", 2)
115 cat = @repository.cat("sources/welcome_controller.rb", 2)
88 assert_not_nil cat
116 assert_not_nil cat
89 assert cat.include?('class WelcomeController < ApplicationController')
117 assert cat.include?('class WelcomeController < ApplicationController')
90 end
118 end
91 end
119 end
92 else
120 else
93 puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
121 puts "Darcs test repository NOT FOUND. Skipping unit tests !!!"
94 def test_fake; assert true end
122 def test_fake; assert true end
95 end
123 end
96 end
124 end
General Comments 0
You need to be logged in to leave comments. Login now