summaryrefslogtreecommitdiffstats
path: root/layout/base/tests/test_frame_reconstruction_for_pseudo_elements.html
blob: f76e9f139f091e298d5af3a058864c589d0a5d9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1110277
-->
<head>
  <meta charset="utf-8">
  <title>Test for Bug 1110277</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <style>
  .testspan {
    color: yellow;
  }
  .testspan[attributestate],
  .testspan[attributestate]::before, .testspan[attributestate]::after {
    color: blue;
  }

  #firstlinetest::first-line {
    color: purple;
  }
  #firstlinetest > .testspan::before {
    content: "[*]";
  }

  #aftertest > .testspan::after {
    content: "[*]";
  }
  </style>
  <script type="application/javascript">

  /** Test for Bug 1110277 **/

  SimpleTest.waitForExplicitFinish();

  function run() {
    runtest("first line test", "#firstlinetest > .testspan");
    runtest("after test", "#aftertest > .testspan");
    SimpleTest.finish();
  }

  function runtest(description, selector) {
    var utils = SpecialPowers.getDOMWindowUtils(window);
    var span = document.querySelector(selector);
    var cs = getComputedStyle(span, "");

    var startcolor = cs.color;
    var startcount = utils.framesConstructed;
    is(startcolor, "rgb(255, 255, 0)", description + ": initial color");

    span.setAttribute("attributestate", "true");

    var endcolor = cs.color;
    var endcount = utils.framesConstructed;
    is(endcolor, "rgb(0, 0, 255)", description + ": final color");
    is(endcount, startcount,
       description + ": should not do frame construction")
  }

  </script>
</head>
<body onload="run()">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1110277">Mozilla Bug 1110277</a>
<div id="firstlinetest">
  <span class="testspan">This <span style="display:block">is a</span> test.</span>
</div>
<div id="aftertest">
  <span class="testspan">This <span style="display:block">is a</span> test.</span>
</div>
<pre id="test">
</pre>
</body>
</html>