Skip to content

Commit ce3a6c7

Browse files
author
Etienne Massip
committed
Added a unit test for HTML encoder (with a test for :line_independent option)
1 parent a2e9acc commit ce3a6c7

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

test/unit/html.rb

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
require 'test/unit'
2+
require 'coderay'
3+
4+
class HtmlTest < Test::Unit::TestCase
5+
6+
def test_independent_lines_option
7+
8+
snippets = {}
9+
10+
snippets[:ruby] = {}
11+
12+
snippets[:ruby][:in] = <<-RUBY
13+
ruby_inside = <<-RUBY_INSIDE
14+
This is tricky,
15+
isn't it?
16+
RUBY_INSIDE
17+
RUBY
18+
19+
snippets[:ruby][:expected_with_option_off] = <<-HTML_OPT_INDEPENDENT_LINES_OFF
20+
ruby_inside = <span class=\"string\"><span class=\"delimiter\">&lt;&lt;-RUBY_INSIDE</span></span><span class=\"string\"><span class=\"content\">
21+
This is tricky,
22+
isn't it?</span><span class=\"delimiter\">
23+
RUBY_INSIDE</span></span>
24+
HTML_OPT_INDEPENDENT_LINES_OFF
25+
26+
snippets[:ruby][:expected_with_option_on] = <<-HTML_OPT_INDEPENDENT_LINES_ON
27+
ruby_inside = <span class=\"string\"><span class=\"delimiter\">&lt;&lt;-RUBY_INSIDE</span></span><span class=\"string\"><span class=\"content\"></span></span>
28+
<span class=\"string\"><span class=\"content\">This is tricky,</span></span>
29+
<span class=\"string\"><span class=\"content\">isn't it?</span><span class=\"delimiter\"></span></span>
30+
<span class=\"string\"><span class=\"delimiter\">RUBY_INSIDE</span></span>
31+
HTML_OPT_INDEPENDENT_LINES_ON
32+
33+
snippets[:java] = {}
34+
35+
snippets[:java][:in] = <<-JAVA
36+
import java.lang.*;
37+
38+
/**
39+
* This is some multiline javadoc
40+
* used to test the
41+
*/
42+
public class Test {
43+
public static final String MESSAGE = "My message\
44+
To the world";
45+
46+
static void main() {
47+
/*
48+
* Another multiline
49+
* comment
50+
*/
51+
System.out.println(MESSAGE);
52+
}
53+
}
54+
JAVA
55+
56+
snippets[:java][:expected_with_option_off] = <<-HTML_OPT_INDEPENDENT_LINES_OFF
57+
<span class=\"keyword\">import</span> <span class=\"include\">java.lang</span>.*;
58+
59+
<span class=\"comment\">/**
60+
* This is some multiline javadoc
61+
* used to test the
62+
*/</span>
63+
<span class=\"directive\">public</span> <span class=\"type\">class</span> <span class=\"class\">Test</span> {
64+
<span class=\"directive\">public</span> <span class=\"directive\">static</span> <span class=\"directive\">final</span> <span class=\"predefined-type\">String</span> MESSAGE = <span class=\"string\"><span class=\"delimiter\">&quot;</span><span class=\"content\">My message To the world</span><span class=\"delimiter\">&quot;</span></span>;
65+
66+
<span class=\"directive\">static</span> <span class=\"type\">void</span> main() {
67+
<span class=\"comment\">/*
68+
* Another multiline
69+
* comment
70+
*/</span>
71+
<span class=\"predefined-type\">System</span>.out.println(MESSAGE);
72+
}
73+
}
74+
HTML_OPT_INDEPENDENT_LINES_OFF
75+
76+
snippets[:java][:expected_with_option_on] = <<-HTML_OPT_INDEPENDENT_LINES_ON
77+
<span class=\"keyword\">import</span> <span class=\"include\">java.lang</span>.*;
78+
79+
<span class=\"comment\">/**</span>
80+
<span class=\"comment\"> * This is some multiline javadoc</span>
81+
<span class=\"comment\"> * used to test the</span>
82+
<span class=\"comment\"> */</span>
83+
<span class=\"directive\">public</span> <span class=\"type\">class</span> <span class=\"class\">Test</span> {
84+
<span class=\"directive\">public</span> <span class=\"directive\">static</span> <span class=\"directive\">final</span> <span class=\"predefined-type\">String</span> MESSAGE = <span class=\"string\"><span class=\"delimiter\">&quot;</span><span class=\"content\">My message To the world</span><span class=\"delimiter\">&quot;</span></span>;
85+
86+
<span class=\"directive\">static</span> <span class=\"type\">void</span> main() {
87+
<span class=\"comment\">/*</span>
88+
<span class=\"comment\"> * Another multiline</span>
89+
<span class=\"comment\"> * comment</span>
90+
<span class=\"comment\"> */</span>
91+
<span class=\"predefined-type\">System</span>.out.println(MESSAGE);
92+
}
93+
}
94+
HTML_OPT_INDEPENDENT_LINES_ON
95+
96+
snippets.entries().each do |lang, code|
97+
tokens = CodeRay.scan code[:in], lang
98+
99+
assert_equal code[:expected_with_option_off], tokens.html
100+
assert_equal code[:expected_with_option_off], tokens.html(:independent_lines => false)
101+
assert_equal code[:expected_with_option_on], tokens.html(:independent_lines => true)
102+
end
103+
end
104+
end

0 commit comments

Comments
 (0)