diff options
author | murphy <murphy@rubychan.de> | 2009-01-22 14:13:43 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2009-01-22 14:13:43 +0000 |
commit | 70dcba4428281407ff0b92a417c3d6d6939390a4 (patch) | |
tree | b8e467002cd75e7a1694bc7e403218806e915c7d /test | |
parent | 4c64867ce924aca00fc40849e83acbfe2fcc3b29 (diff) | |
download | coderay-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.rb | 16 |
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 |