| Index: chrome_frame/test/html_util_unittests.cc
|
| ===================================================================
|
| --- chrome_frame/test/html_util_unittests.cc (revision 68996)
|
| +++ chrome_frame/test/html_util_unittests.cc (working copy)
|
| @@ -213,12 +213,112 @@
|
|
|
| HTMLScanner scanner(test_data.c_str());
|
|
|
| - // Grab the meta tag from the document and ensure that we get exactly one.
|
| + // Ensure that the the meta tag is NOT detected.
|
| HTMLScanner::StringRangeList tag_list;
|
| scanner.GetTagsByName(L"meta", &tag_list, L"body");
|
| ASSERT_TRUE(tag_list.empty());
|
| }
|
|
|
| +TEST_F(HtmlUtilUnittest, IEConditionalCommentTest) {
|
| + std::wstring test_data(
|
| + L"<!--[if lte IE 8]><META http-equiv=X-UA-Compatible content='chrome=1'/>"
|
| + L"<![endif]-->");
|
| +
|
| + HTMLScanner scanner(test_data.c_str());
|
| +
|
| + // Ensure that the the meta tag IS detected.
|
| + HTMLScanner::StringRangeList tag_list;
|
| + scanner.GetTagsByName(L"meta", &tag_list, L"body");
|
| + ASSERT_EQ(1, tag_list.size());
|
| +}
|
| +
|
| +TEST_F(HtmlUtilUnittest, IEConditionalCommentWithNestedCommentTest) {
|
| + std::wstring test_data(
|
| + L"<!--[if IE]><!--<META http-equiv=X-UA-Compatible content='chrome=1'/>"
|
| + L"--><![endif]-->");
|
| +
|
| + HTMLScanner scanner(test_data.c_str());
|
| +
|
| + // Ensure that the the meta tag IS NOT detected.
|
| + HTMLScanner::StringRangeList tag_list;
|
| + scanner.GetTagsByName(L"meta", &tag_list, L"body");
|
| + ASSERT_TRUE(tag_list.empty());
|
| +}
|
| +
|
| +TEST_F(HtmlUtilUnittest, IEConditionalCommentWithMultipleNestedTagsTest) {
|
| + std::wstring test_data(
|
| + L"<!--[if lte IE 8]> <META http-equiv=X-UA-Compatible "
|
| + L"content='chrome=1'/><foo bar></foo><foo baz/><![endif]-->"
|
| + L"<boo hoo><boo hah>");
|
| +
|
| + HTMLScanner scanner(test_data.c_str());
|
| +
|
| + // Ensure that the the meta tag IS detected.
|
| + HTMLScanner::StringRangeList meta_tag_list;
|
| + scanner.GetTagsByName(L"meta", &meta_tag_list, L"body");
|
| + ASSERT_EQ(1, meta_tag_list.size());
|
| +
|
| + // Ensure that the foo tags are also detected.
|
| + HTMLScanner::StringRangeList foo_tag_list;
|
| + scanner.GetTagsByName(L"foo", &foo_tag_list, L"body");
|
| + ASSERT_EQ(2, foo_tag_list.size());
|
| +
|
| + // Ensure that the boo tags are also detected.
|
| + HTMLScanner::StringRangeList boo_tag_list;
|
| + scanner.GetTagsByName(L"boo", &boo_tag_list, L"body");
|
| + ASSERT_EQ(2, boo_tag_list.size());
|
| +}
|
| +
|
| +TEST_F(HtmlUtilUnittest, IEConditionalCommentWithAlternateEndingTest) {
|
| + std::wstring test_data(
|
| + L"<!--[if lte IE 8]> <META http-equiv=X-UA-Compatible "
|
| + L"content='chrome=1'/><foo bar></foo><foo baz/><![endif]>"
|
| + L"<boo hoo><!--><boo hah>");
|
| +
|
| + HTMLScanner scanner(test_data.c_str());
|
| +
|
| + // Ensure that the the meta tag IS detected.
|
| + HTMLScanner::StringRangeList meta_tag_list;
|
| + scanner.GetTagsByName(L"meta", &meta_tag_list, L"body");
|
| + ASSERT_EQ(1, meta_tag_list.size());
|
| +
|
| + // Ensure that the foo tags are also detected.
|
| + HTMLScanner::StringRangeList foo_tag_list;
|
| + scanner.GetTagsByName(L"foo", &foo_tag_list, L"body");
|
| + ASSERT_EQ(2, foo_tag_list.size());
|
| +
|
| + // Ensure that the boo tags are also detected.
|
| + HTMLScanner::StringRangeList boo_tag_list;
|
| + scanner.GetTagsByName(L"boo", &boo_tag_list, L"body");
|
| + ASSERT_EQ(2, boo_tag_list.size());
|
| +}
|
| +
|
| +TEST_F(HtmlUtilUnittest, IEConditionalCommentNonTerminatedTest) {
|
| + // This test shouldn't detect any tags up until the end of the conditional
|
| + // comment tag.
|
| + std::wstring test_data(
|
| + L"<!--[if lte IE 8> <META http-equiv=X-UA-Compatible "
|
| + L"content='chrome=1'/><foo bar></foo><foo baz/><![endif]>"
|
| + L"<boo hoo><!--><boo hah>");
|
| +
|
| + HTMLScanner scanner(test_data.c_str());
|
| +
|
| + // Ensure that the the meta tag IS NOT detected.
|
| + HTMLScanner::StringRangeList meta_tag_list;
|
| + scanner.GetTagsByName(L"meta", &meta_tag_list, L"body");
|
| + ASSERT_TRUE(meta_tag_list.empty());
|
| +
|
| + // Ensure that the foo tags are NOT detected.
|
| + HTMLScanner::StringRangeList foo_tag_list;
|
| + scanner.GetTagsByName(L"foo", &foo_tag_list, L"body");
|
| + ASSERT_TRUE(foo_tag_list.empty());
|
| +
|
| + // Ensure that the boo tags are detected.
|
| + HTMLScanner::StringRangeList boo_tag_list;
|
| + scanner.GetTagsByName(L"boo", &boo_tag_list, L"body");
|
| + ASSERT_EQ(2, boo_tag_list.size());
|
| +}
|
| +
|
| TEST_F(HtmlUtilUnittest, AddChromeFrameToUserAgentValue) {
|
| struct TestCase {
|
| std::string input_;
|
|
|