test_css_function_mismatched_parenthesis.html 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=897094
  5. This test verifies that:
  6. (1) Mismatched parentheses in a CSS function prevent parsing of subsequent CSS
  7. properties.
  8. (2) Properly matched parentheses do not prevent parsing of subsequent CSS
  9. properties.
  10. -->
  11. <head>
  12. <title>Test for Bug 897094</title>
  13. <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
  14. <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  15. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  16. </head>
  17. <body>
  18. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=897094">Mozilla Bug 897094</a>
  19. <p id="display"></p>
  20. <div id="content" style="display: none">
  21. <div id="target"></div>
  22. </div>
  23. <pre id="test">
  24. <script class="testbody" type="text/javascript">
  25. /** Test for Bug 897094 **/
  26. function check_parens(declaration, parens_are_balanced)
  27. {
  28. var element = document.getElementById("target");
  29. element.setAttribute("style",
  30. "background-color: " + (parens_are_balanced ? "red" : "green") + "; " +
  31. declaration + "; " +
  32. "background-color: " + (parens_are_balanced ? "green" : "red") + "; ");
  33. var resultColor = element.style.getPropertyValue("background-color");
  34. is(resultColor, "green", "parenthesis balancing within " + declaration);
  35. }
  36. check_parens("transform: scale()", true);
  37. check_parens("transform: scale(", false);
  38. check_parens("transform: scale(,)", true);
  39. check_parens("transform: scale(,", false);
  40. check_parens("transform: scale(1)", true);
  41. check_parens("transform: scale(1", false);
  42. check_parens("transform: scale(1,)", true);
  43. check_parens("transform: scale(1,", false);
  44. check_parens("transform: scale(1,1)", true);
  45. check_parens("transform: scale(1,1", false);
  46. check_parens("transform: scale(1,1,)", true);
  47. check_parens("transform: scale(1,1,", false);
  48. check_parens("transform: scale(1,1,1)", true);
  49. check_parens("transform: scale(1,1,1", false);
  50. check_parens("transform: scale(1,1,1,)", true);
  51. check_parens("transform: scale(1,1,1,", false);
  52. check_parens("transform: scale(1px)", true);
  53. check_parens("transform: scale(1px", false);
  54. check_parens("transform: scale(1px,)", true);
  55. check_parens("transform: scale(1px,", false);
  56. </script>
  57. </pre>
  58. </body>
  59. </html>