summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2009-01-22 14:13:43 +0000
committermurphy <murphy@rubychan.de>2009-01-22 14:13:43 +0000
commit70dcba4428281407ff0b92a417c3d6d6939390a4 (patch)
treeb8e467002cd75e7a1694bc7e403218806e915c7d /test
parent4c64867ce924aca00fc40849e83acbfe2fcc3b29 (diff)
downloadcoderay-70dcba4428281407ff0b92a417c3d6d6939390a4.tar.gz
New feature: HTML encode option :highlight_lines. See documentation.
* The scanner test suite uses it and highlights the lines that differ after a failed complete test in *.actual.html.
Diffstat (limited to 'test')
-rw-r--r--test/scanners/coderay_suite.rb16
1 files changed, 11 insertions, 5 deletions
diff --git a/test/scanners/coderay_suite.rb b/test/scanners/coderay_suite.rb
index bdcbdce..9971889 100644
--- a/test/scanners/coderay_suite.rb
+++ b/test/scanners/coderay_suite.rb
@@ -209,12 +209,12 @@ module CodeRay
print '-skipped- '.concealed
end
- tokens, ok = complete_test scanner, code, name
+ tokens, ok, changed_lines = complete_test scanner, code, name
identity_test scanner, tokens
unless ENV['nohighlighting'] or (code.size > MAX_CODE_SIZE_TO_HIGHLIGHT and not ENV['only'])
- highlight_test tokens, name, ok
+ highlight_test tokens, name, ok, changed_lines
else
print '-- skipped -- '.concealed
end
@@ -303,6 +303,12 @@ module CodeRay
File.open(actual_filename, 'wb') { |f| f.write result }
diff = expected_filename.sub(/\.expected\..*/, '.debug.diff')
system "diff --unified=0 --text #{expected_filename} #{actual_filename} > #{diff}"
+ changed_lines = []
+ File.read(diff).scan(/^@@ -\d+(?:,\d+)? \+(\d+)(?:,(\d+))? @@/) do |offset, size|
+ offset = offset.to_i
+ size = (size || 1).to_i
+ changed_lines.concat Array(offset...offset + size)
+ end
end
assert(ok, "Scan error: unexpected output".red) if ENV['assert']
@@ -315,7 +321,7 @@ module CodeRay
ok = true
end
- return tokens, ok
+ return tokens, ok, changed_lines
end
def identity_test scanner, tokens
@@ -340,10 +346,10 @@ module CodeRay
:css => :class
)
- def highlight_test tokens, name, okay
+ def highlight_test tokens, name, okay, changed_lines
report 'highlighting' do
begin
- highlighted = Highlighter.encode_tokens tokens
+ highlighted = Highlighter.encode_tokens tokens, { :highlight_lines => changed_lines }
rescue
flunk 'highlighting test failed!' if ENV['assert']
return false