summaryrefslogtreecommitdiffstats
path: root/layout/style/test/test_bug372770.html
blob: 208a79e3eff936c999f3b0705ef86953da56102e (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=372770
-->
<head>
  <title>Test for Bug 372770</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>        
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  <style id="testStyle">
    #content {}
  </style>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=372770">Mozilla Bug 372770</a>
<p id="display"></p>
<div id="content" style="display: none">
  
</div>
<pre id="test">
<script class="testbody" type="text/javascript">

/** Test for Bug 372770 **/
var style1 = $("content").style;
var style2 = $("testStyle").sheet.cssRules[0].style;

var colors = [ "rgb(128, 128, 128)", "transparent" ]
var i;

for (i = 0; i < colors.length; ++i) {
  var color = colors[i];
  style1.color = color;
  style2.color = color;
  is(style1.color, color, "Inline style color roundtripping failed at color " + i);
  is(style2.color, color, "Rule style color roundtripping failed at color " + i);
}

// This code is only here because of bug 372783.  Once that's fixed, this test
// for "rgba(0, 0, 0, 0)" will fail.
style1.color = "rgba(0, 0, 0, 0)";
style2.color = "rgba(0, 0, 0, 0)";
is(style1.color, "transparent",
   "Inline style should give transparent for rgba(0,0,0,0)");
is(style2.color, "transparent",
   "Rule style should give transparent for rgba(0,0,0,0)");
todo(style1.color == "rgba(0, 0, 0, 0)",
     "Inline style should round-trip black transparent color correctly");
todo(style2.color == "rgba(0, 0, 0, 0)",
     "Rule style should round-trip black transparent color correctly");

for (var i = 0; i <= 100; ++i) {
  if (i == 70 || i == 90) {
    // Tinderbox unhappy for some reason... just skip these for now?
    continue;
  }
  var color1 = "rgba(128, 128, 128, " + i/100 + ")";
  var color2 = "rgba(175, 63, 27, " + i/100 + ")";
  style1.color = color1;
  style1.backgroundColor = color2;
  style2.color = color2;
  style2.background = color1;

  if (i == 100) {
    // Bug 372783 means this doesn't round-trip quite right
    todo(style1.color == color1,
       "Inline style color roundtripping failed at opacity " + i);
    todo(style1.backgroundColor == color2,
       "Inline style background roundtripping failed at opacity " + i);
    todo(style2.color == color2,
       "Rule style color roundtripping failed at opacity " + i);
    todo(style2.backgroundColor == color1,
       "Rule style background roundtripping failed at opacity " + i);
    color1 = "rgb(128, 128, 128)";
    color2 = "rgb(175, 63, 27)";
  }

  is(style1.color, color1,
     "Inline style color roundtripping failed at opacity " + i);
  is(style1.backgroundColor, color2,
     "Inline style background roundtripping failed at opacity " + i);
  is(style2.color, color2,
     "Rule style color roundtripping failed at opacity " + i);
  is(style2.backgroundColor, color1,
     "Rule style background roundtripping failed at opacity " + i);

}
</script>
</pre>
</body>
</html>