From deaa65660822e070294d6c2a7dfec286cbbdff56 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada
Date: Mon, 28 Mar 2022 18:36:56 +0900
Subject: [ruby/rdoc] Escape TIDYLINKs
https://hackerone.com/reports/1187156
https://github.com/ruby/rdoc/commit/1ad2dd3ca2
---
test/rdoc/test_rdoc_markup_to_html.rb | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
(limited to 'test')
diff --git a/test/rdoc/test_rdoc_markup_to_html.rb b/test/rdoc/test_rdoc_markup_to_html.rb
index 02baf13512..8a38694c45 100644
--- a/test/rdoc/test_rdoc_markup_to_html.rb
+++ b/test/rdoc/test_rdoc_markup_to_html.rb
@@ -704,6 +704,23 @@ EXPECTED
assert_equal "\nruby-lang
\n", result
end
+ def test_convert_TIDYLINK_escape_text
+ assert_escaped '}[a]'
+ assert_escaped '[[]'
+ end
+
+ def test_convert_TIDYLINK_escape_javascript
+ assert_not_include '{click}[javascript:alert`javascript_scheme`]', 'aaa[:symbol]
\n", @to.convert('+aaa+[:symbol]')
assert_equal "\naaa[:symbol]
\n", @to.convert('+aaa[:symbol]+')
@@ -903,5 +920,11 @@ EXPECTED
assert_include(res[%r<]*>.*em.* | >], 'em')
assert_include(res[%r<]*>.*strong.* | >], 'strong')
end
+
+ def assert_escaped(unexpected, code)
+ result = @to.convert(code)
+ assert_not_include result, unexpected
+ assert_include result, CGI.escapeHTML(unexpected)
+ end
end
--
cgit v1.2.3