User.current.preference.save
end
@cache_key = "repositories/diff/#{@repository.id}/" +
- Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}")
+ Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}-#{current_language}")
unless read_fragment(@cache_key)
@diff = @repository.diff(@path, @rev, @rev_to)
show_error_not_found unless @diff
if @char_1.respond_to?(:force_encoding)
@char_1.force_encoding('UTF-8')
end
+
+ Setting.default_language = 'en'
end
if File.directory?(REPOSITORY_PATH)
end
end
+ def test_diff_truncated
+ @repository.fetch_changesets
+ @repository.reload
+ Setting.diff_max_lines_displayed = 5
+
+ # Truncated diff of changeset 2f9c0091
+ with_cache do
+ get :diff, :id => PRJ_ID, :type => 'inline',
+ :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+ assert_response :success
+ assert @response.body.include?("... This diff was truncated")
+
+ Setting.default_language = 'fr'
+ get :diff, :id => PRJ_ID, :type => 'inline',
+ :rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
+ assert_response :success
+ assert ! @response.body.include?("... This diff was truncated")
+ assert @response.body.include?("... Ce diff")
+ end
+ end
+
def test_diff_two_revs
@repository.fetch_changesets
@repository.reload
puts "Git test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end
end
+
+ private
+ def with_cache(&block)
+ before = ActionController::Base.perform_caching
+ ActionController::Base.perform_caching = true
+ block.call
+ ActionController::Base.perform_caching = before
+ end
end