Add more tests restricted-html
authorJuliana Rodrigueiro <juliana.rodrigueiro@intra2net.com>
Wed, 19 Sep 2018 15:19:39 +0000 (17:19 +0200)
committerJuliana Rodrigueiro <juliana.rodrigueiro@intra2net.com>
Wed, 19 Sep 2018 15:49:34 +0000 (17:49 +0200)
Covering void tags, whitespaces, error for unopened tags and
decoding of unencoded urls.

test/test_restricted_html.cpp

index 36d86bb..6cae5d4 100644 (file)
@@ -237,6 +237,30 @@ BOOST_AUTO_TEST_CASE(InvalidTag2)
     BOOST_CHECK_EQUAL(string(""), output);
 }
 
+BOOST_AUTO_TEST_CASE(TagsWithWhitespaces)
+{
+    string output = restrict_html("< h1  >Title< / h1 >"); // invalid
+    BOOST_CHECK_EQUAL(string("Title"), output);
+
+    output = restrict_html("<h1  >Title</h1  >");
+    BOOST_CHECK_EQUAL(string("<h1  >Title</h1  >"), output);
+}
+
+BOOST_AUTO_TEST_CASE(SelfClosingTagNotation)
+{
+    string output = restrict_html("<br />");
+    BOOST_CHECK_EQUAL(string("<br />"), output);
+
+    output = restrict_html("<br/>");
+    BOOST_CHECK_EQUAL(string("<br/>"), output);
+
+    output = restrict_html("<br / >"); // invalid
+    BOOST_CHECK_EQUAL(string(""), output);
+
+    output = restrict_html("<img />");
+    BOOST_CHECK_EQUAL(string(""), output);
+}
+
 BOOST_AUTO_TEST_CASE(NonStripMode)
 {
     BOOST_CHECK_THROW(restrict_html("<a href=\"http://site.com/dir\"onclick=\"e"
@@ -255,6 +279,11 @@ BOOST_AUTO_TEST_CASE(NonStripMode3)
                                        "m\">test</a>", false));
 }
 
+BOOST_AUTO_TEST_CASE(NonStripMode4)
+{
+    BOOST_CHECK_THROW(restrict_html("<h1>Title</h2>", false), runtime_error);
+}
+
 BOOST_AUTO_TEST_CASE(DecodeStringURL)
 {
     string output = decode_url("%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D");
@@ -268,6 +297,12 @@ BOOST_AUTO_TEST_CASE(DecodeStringURL2)
     BOOST_CHECK_EQUAL(string("<script>alert(document.cookie)</script>"), output);
 }
 
+BOOST_AUTO_TEST_CASE(DecodeStringURL3)
+{
+    string output = decode_url("http://www.google.com/aaaa?aa=vv&cc=dd");
+    BOOST_CHECK_EQUAL(string("http://www.google.com/aaaa?aa=vv&cc=dd"), output);
+}
+
 BOOST_AUTO_TEST_CASE(EncodeStringURL)
 {
     string output = encode_url("http://www.domain.com/params?param=b'ar:!~/");