test_bug229915.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE HTML>
  2. <html>
  3. <!--
  4. https://bugzilla.mozilla.org/show_bug.cgi?id=229915
  5. -->
  6. <head>
  7. <title>Test for Bug 229915</title>
  8. <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  9. <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  10. <style type="text/css">
  11. p { color: black; background: transparent; }
  12. p.prev + p { color: green; }
  13. p.prev ~ p { background: white; }
  14. </style>
  15. </head>
  16. <body>
  17. <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=229915">Mozilla Bug 229915</a>
  18. <div id="display">
  19. <div>
  20. <p id="toinsertbefore">After testing, this should turn green.</p>
  21. </div>
  22. <div>
  23. <p id="toreplace">To be replaced.</p>
  24. <p id="replacecolor">After testing, this should turn green.</p>
  25. </div>
  26. <div>
  27. <p class="prev">Previous paragraph.</p>
  28. <p id="toremove">To be removed.</p>
  29. <p id="removecolor">After testing, this should turn green.</p>
  30. </div>
  31. </div>
  32. <div id="content" style="display: none">
  33. </div>
  34. <pre id="test">
  35. <script class="testbody" type="text/javascript">
  36. /** Test for Bug 229915 **/
  37. const GREEN = "rgb(0, 128, 0)";
  38. const BLACK = "rgb(0, 0, 0)";
  39. const TRANSPARENT = "transparent";
  40. const WHITE = "rgb(255, 255, 255)";
  41. function make_prev() {
  42. var result = document.createElement("p");
  43. result.setAttribute("class", "prev");
  44. var t = document.createTextNode("Dynamically created previous paragraph.");
  45. result.appendChild(t);
  46. return result;
  47. }
  48. function color(id) {
  49. return getComputedStyle(document.getElementById(id), "").color;
  50. }
  51. function bg(id) {
  52. return getComputedStyle(document.getElementById(id), "").backgroundColor;
  53. }
  54. var node;
  55. // test insert
  56. is(color("toinsertbefore"), BLACK, "initial state (insertion test)");
  57. is(bg("toinsertbefore"), TRANSPARENT, "initial state (insertion test)");
  58. node = document.getElementById("toinsertbefore");
  59. node.parentNode.insertBefore(make_prev(), node);
  60. is(color("toinsertbefore"), GREEN, "inserting should turn node green");
  61. is(bg("toinsertbefore"), WHITE, "inserting should turn background white");
  62. // test replace
  63. is(color("replacecolor"), BLACK, "initial state (replacement test)");
  64. is(bg("replacecolor"), TRANSPARENT, "initial state (replacement test)");
  65. node = document.getElementById("toreplace");
  66. node.parentNode.replaceChild(make_prev(), node);
  67. is(color("replacecolor"), GREEN, "replacing should turn node green");
  68. is(bg("replacecolor"), WHITE, "replacing should turn background white");
  69. // test remove
  70. is(color("removecolor"), BLACK, "initial state (removal test)");
  71. is(bg("removecolor"), WHITE, "initial state (removal test; no change)");
  72. node = document.getElementById("toremove");
  73. node.parentNode.removeChild(node);
  74. is(color("removecolor"), GREEN, "removing should turn node green");
  75. is(bg("removecolor"), WHITE, "removing should leave background");
  76. </script>
  77. </pre>
  78. </body>
  79. </html>