| 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..e7138eb9fb3446d1279bf100100393d9bff9c373
|
| --- /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 (var test = tests.firstChild; test; test = test.nextSibling) {
|
| + if (getComputedStyle(test).display != "none")
|
| + failed++;
|
| +}
|
| +
|
| +document.getElementById("result").textContent = failed ? "Failed " + failed + " tests" : "All tests passed";
|
| +
|
| +</script>
|
| +</body>
|
|
|