Skip to content

Commit 92fdb33

Browse files
committed
Add failing test cases for CGI::Escape.unescapeHTML
1 parent 1fda83f commit 92fdb33

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

test/cgi/test_cgi_util.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,22 @@ def test_cgi_unescapeHTML_invalid
186186
assert_equal('&<&amp>&quot&abcdefghijklmn', CGI.unescapeHTML('&&lt;&amp&gt;&quot&abcdefghijklmn'))
187187
end
188188

189+
module UnescapeHTMLTests
190+
def test_cgi_unescapeHTML_following_known_first_letter
191+
assert_equal('&a>&q>&l>&g>', CGI.unescapeHTML('&a&gt;&q&gt;&l&gt;&g&gt;'))
192+
end
193+
194+
def test_cgi_unescapeHTML_following_number_sign
195+
assert_equal('&#>&#x>', CGI.unescapeHTML('&#&gt;&#x&gt;'))
196+
end
197+
198+
def test_cgi_unescapeHTML_following_invalid_numeric
199+
assert_equal('&#1114112>&#x110000>', CGI.unescapeHTML('&#1114112&gt;&#x110000&gt;'))
200+
end
201+
end
202+
203+
include UnescapeHTMLTests
204+
189205
Encoding.list.each do |enc|
190206
begin
191207
escaped = "&#39;&amp;&quot;&gt;&lt;".encode(enc)
@@ -283,6 +299,8 @@ def teardown
283299
end if defined?(CGI::Escape)
284300
end
285301

302+
include CGIUtilTest::UnescapeHTMLTests
303+
286304
def test_cgi_escapeHTML_with_invalid_byte_sequence
287305
assert_equal("&lt;\xA4??&gt;", CGI.escapeHTML(%[<\xA4??>]))
288306
end

0 commit comments

Comments
 (0)