Chromium Code Reviews| Index: LayoutTests/fast/css/parsing-expr-error-recovery.html |
| diff --git a/LayoutTests/fast/css/parsing-expr-error-recovery.html b/LayoutTests/fast/css/parsing-expr-error-recovery.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a8f684c7bf5a1b8f48847376c6cf87d309e8a49c |
| --- /dev/null |
| +++ b/LayoutTests/fast/css/parsing-expr-error-recovery.html |
| @@ -0,0 +1,33 @@ |
| +<html> |
| +<body> |
| +<div>Tests that CSS parser correctly recovers after {}, () and [] invalid blocks.</div> |
| +<div id="result"></div> |
| +<div id="tests"></div> |
| +<script type="text/javascript"> |
| +if (window.testRunner) |
| + testRunner.dumpAsText(); |
| + |
| +var BASE_EXPR = "1px,\"x\",var(y) /calc(1px + (((5px)))),-webkit-min(1px,2px)"; |
| +var INVALID_BLOCKS = ["#", "{}", "()", "[]", "{(){{}{{}}[]}}", "(})", "(])", "[}]", "[)]", "{)}", "{]}", "#({})"]; |
| + |
| +var tests = document.getElementById("tests"); |
| +for (var i = 0; i <= BASE_EXPR.length; i++) { |
| + for (var j = 0; j < INVALID_BLOCKS.length; j++) { |
| + var invalidExpr = BASE_EXPR.substr(0, i) + INVALID_BLOCKS[j] + BASE_EXPR.substr(i); |
| + var test = document.createElement("DIV"); |
| + test.textContent = "failed: " + invalidExpr; |
| + test.style.cssText = "color:" + invalidExpr + "; display: none;"; |
| + tests.appendChild(test); |
| + } |
| +} |
| + |
| +var failed = 0; |
| +for (test = tests.firstChild; test; test = test.nextSibling) { |
|
apavlov
2013/05/13 06:59:52
var test = tests.firstChild
SeRya
2013/05/13 07:17:59
Done.
|
| + if (getComputedStyle(test).display != "none") |
| + failed++; |
| +} |
| + |
| +document.getElementById("result").textContent = failed ? "Failed " + failed + " tests" : "All tests passed"; |
| + |
| +</script> |
| +</body> |