@@ -154,14 +154,18 module Redmine | |||
|
154 | 154 | def diff(path, identifier_from, identifier_to=nil) |
|
155 | 155 | path ||= '' |
|
156 | 156 | diff_args = '' |
|
157 | diff = [] | |
|
157 | 158 | if identifier_to |
|
158 | 159 | diff_args = "-r #{hgrev(identifier_to)} -r #{hgrev(identifier_from)}" |
|
159 | 160 | else |
|
160 | diff_args = "-c #{hgrev(identifier_from)}" | |
|
161 | if self.class.client_version_above?([1, 2]) | |
|
162 | diff_args = "-c #{hgrev(identifier_from)}" | |
|
163 | else | |
|
164 | return [] | |
|
165 | end | |
|
161 | 166 | end |
|
162 | 167 | cmd = "#{HG_BIN} -R #{target('')} diff --nodates --git #{diff_args}" |
|
163 | 168 | cmd << " -I #{target(path)}" unless path.empty? |
|
164 | diff = [] | |
|
165 | 169 | shellout(cmd) do |io| |
|
166 | 170 | io.each_line do |line| |
|
167 | 171 | diff << line |
@@ -32,9 +32,10 class RepositoriesMercurialControllerTest < ActionController::TestCase | |||
|
32 | 32 | @request = ActionController::TestRequest.new |
|
33 | 33 | @response = ActionController::TestResponse.new |
|
34 | 34 | User.current = nil |
|
35 | Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH) | |
|
35 | @repository = Repository::Mercurial.create(:project => Project.find(3), :url => REPOSITORY_PATH) | |
|
36 | assert @repository | |
|
36 | 37 | end |
|
37 | ||
|
38 | ||
|
38 | 39 | if File.directory?(REPOSITORY_PATH) |
|
39 | 40 | def test_show |
|
40 | 41 | get :show, :id => 3 |
@@ -132,12 +133,15 class RepositoriesMercurialControllerTest < ActionController::TestCase | |||
|
132 | 133 | get :diff, :id => 3, :rev => 4 |
|
133 | 134 | assert_response :success |
|
134 | 135 | assert_template 'diff' |
|
135 | # Line 22 removed | |
|
136 | assert_tag :tag => 'th', | |
|
137 | :content => '22', | |
|
138 |
|
|
|
139 | :attributes => { :class => /diff_out/ }, | |
|
140 | :content => /def remove/ } | |
|
136 | ||
|
137 | if @repository.scm.class.client_version_above?([1, 2]) | |
|
138 | # Line 22 removed | |
|
139 | assert_tag :tag => 'th', | |
|
140 | :content => '22', | |
|
141 | :sibling => { :tag => 'td', | |
|
142 | :attributes => { :class => /diff_out/ }, | |
|
143 | :content => /def remove/ } | |
|
144 | end | |
|
141 | 145 | end |
|
142 | 146 | end |
|
143 | 147 |
@@ -43,13 +43,19 begin | |||
|
43 | 43 | end |
|
44 | 44 | |
|
45 | 45 | def test_diff |
|
46 | assert_nil @adapter.diff(nil, '100000') | |
|
46 | if @adapter.class.client_version_above?([1, 2]) | |
|
47 | assert_nil @adapter.diff(nil, '100000') | |
|
48 | end | |
|
47 | 49 | assert_nil @adapter.diff(nil, '100000', '200000') |
|
48 | 50 | [2, '400bb8672109', '400', 400].each do |r1| |
|
49 | 51 | diff1 = @adapter.diff(nil, r1) |
|
50 | assert_equal 28, diff1.size | |
|
51 | buf = diff1[24].gsub(/\r\n|\r|\n/, "") | |
|
52 | assert_equal "+ return true unless klass.respond_to?('watched_by')", buf | |
|
52 | if @adapter.class.client_version_above?([1, 2]) | |
|
53 | assert_equal 28, diff1.size | |
|
54 | buf = diff1[24].gsub(/\r\n|\r|\n/, "") | |
|
55 | assert_equal "+ return true unless klass.respond_to?('watched_by')", buf | |
|
56 | else | |
|
57 | assert_equal 0, diff1.size | |
|
58 | end | |
|
53 | 59 | [4, 'def6d2f1254a'].each do |r2| |
|
54 | 60 | diff2 = @adapter.diff(nil,r1,r2) |
|
55 | 61 | assert_equal 50, diff2.size |
General Comments 0
You need to be logged in to leave comments.
Login now