Index: chrome/browser/resources/shared/js/parse_html_subset_test.html |
=================================================================== |
--- chrome/browser/resources/shared/js/parse_html_subset_test.html (revision 0) |
+++ chrome/browser/resources/shared/js/parse_html_subset_test.html (revision 0) |
@@ -0,0 +1,85 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<title></title> |
+<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script> |
+<script src="parse_html_subset.js"></script> |
+<script> |
+ |
+goog.require('goog.testing.jsunit'); |
+ |
+</script> |
+ |
+</head> |
+<body> |
+<script> |
+ |
+function parseAndAssertThrows(s) { |
+ assertThrows(function() { |
+ parseHtmlSubset(s); |
+ }); |
+} |
+ |
+function parseAndAssertNotThrows(s) { |
+ assertNotThrows(function() { |
+ parseHtmlSubset(s); |
+ }); |
+} |
+ |
+function testText() { |
+ parseAndAssertNotThrows(''); |
+ parseAndAssertNotThrows('abc'); |
+ parseAndAssertNotThrows(' '); |
+} |
+ |
+function testSupportedTags() { |
+ parseAndAssertNotThrows('<b>bold</b>'); |
+ parseAndAssertNotThrows('Some <b>bold</b> text'); |
+ parseAndAssertNotThrows('Some <strong>strong</strong> text'); |
+ parseAndAssertNotThrows('<B>bold</B>'); |
+ parseAndAssertNotThrows('Some <B>bold</B> text'); |
+ parseAndAssertNotThrows('Some <STRONG>strong</STRONG> text'); |
+} |
+ |
+function testInvaliTags() { |
+ parseAndAssertThrows('<unknown_tag>x</unknown_tag>'); |
+ parseAndAssertThrows('<img>'); |
+ parseAndAssertThrows('<script>alert(1)<' + '/script>'); |
+} |
+ |
+function testInvalidAttributes() { |
+ parseAndAssertThrows('<b onclick="alert(1)">x</b>'); |
+ parseAndAssertThrows('<b style="color:red">x</b>'); |
+ parseAndAssertThrows('<b foo>x</b>'); |
+ parseAndAssertThrows('<b foo=bar></b>'); |
+} |
+ |
+function testValidAnchors() { |
+ parseAndAssertNotThrows('<a href="http://google.com">Google</a>'); |
+ parseAndAssertNotThrows('<a href="https://google.com">Google</a>'); |
+} |
+ |
+function testInvalidAnchorHrefs() { |
+ parseAndAssertThrows('<a href="ftp://google.com">Google</a>'); |
+ parseAndAssertThrows('<a href="http/google.com">Google</a>'); |
+ parseAndAssertThrows('<a href="javascript:alert(1)">Google</a>'); |
+} |
+ |
+function testInvalidAnchorAttributes() { |
+ parseAndAssertThrows('<a name=foo>Google</a>'); |
+ parseAndAssertThrows( |
+ '<a onclick="alert(1)" href="http://google.com">Google</a>'); |
+ parseAndAssertThrows('<a foo="bar(1)" href="http://google.com">Google</a>'); |
+} |
+ |
+function testAnchorTarget() { |
+ parseAndAssertNotThrows( |
+ '<a href="http://google.com" target="blank_">Google</a>'); |
+ parseAndAssertNotThrows( |
+ '<a href="http://google.com" target="foo">Google</a>'); |
+} |
+ |
+</script> |
+ |
+</body> |
+</html> |
Property changes on: chrome\browser\resources\shared\js\parse_html_subset_test.html |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |