test_ident_escaping.html 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=543428
  5. -->
  6. <head>
  7. <title>Test for Bug 543428</title>
  8. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9. <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  10. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  11. <style type="text/css" id="sheet">p { color: blue; }</style>
  12. </head>
  13. <body>
  14. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=543428">Mozilla Bug 543428</a>
  15. <p id="display"></p>
  16. <div id="content" style="display: none">
  17. </div>
  18. <pre id="test">
  19. <script type="application/javascript">
  20. /** Test for Bug 543428 **/
  21. var sheet = document.getElementById("sheet").sheet;
  22. var rule = sheet.cssRules[0];
  23. function set_selector_text(selector)
  24. // no cssText or selectorText setter implemented yet
  25. {
  26. try {
  27. // insertRule might throw on syntax error
  28. sheet.insertRule(selector + " { color : green }", 0);
  29. sheet.deleteRule(1);
  30. } catch(ex) {}
  31. rule = sheet.cssRules[0];
  32. }
  33. is(rule.selectorText, "p", "simple identifier not escaped");
  34. set_selector_text('\\P');
  35. is(rule.selectorText, "P", "simple identifier not escaped");
  36. set_selector_text('\\70');
  37. is(rule.selectorText, "p", "simple identifier not escaped");
  38. set_selector_text('font-family_72756');
  39. is(rule.selectorText, "font-family_72756", "simple identifier not escaped");
  40. set_selector_text('-font-family_72756');
  41. is(rule.selectorText, "-font-family_72756", "simple identifier not escaped");
  42. set_selector_text('-0invalid');
  43. set_selector_text('0invalid');
  44. is(rule.selectorText, "-font-family_72756", "setting invalid value ignored");
  45. set_selector_text('Håkon\\ Lie');
  46. is(rule.selectorText, "Håkon\\ Lie", "escaping done only where needed");
  47. </script>
  48. </pre>
  49. </body>
  50. </html>