Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / w3c / web-platform-tests / shadow-dom / elements-and-dom-objects / extensions-to-element-interface / attributes / test-004.html
1 <!DOCTYPE html>
2 <!-- 
3 Distributed under both the W3C Test Suite License [1] and the W3C
4 3-clause BSD License [2]. To contribute to a W3C Test Suite, see the
5 policies and contribution forms [3].
6
7 [1] http://www.w3.org/Consortium/Legal/2008/04-testsuite-license
8 [2] http://www.w3.org/Consortium/Legal/2008/03-bsd-license
9 [3] http://www.w3.org/2004/10/27-testcases
10  -->
11 <html>
12 <head>
13 <title>Shadow DOM Test: A_10_02_01_04</title>
14 <link rel="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
15 <link rel="help" href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#shadow-aware-attributes">
16 <meta name="assert" content="Extensions to Element Interface: pseudo of type DOMString attribute; Test setter">
17 <script src="../../../../../../resources/testharness.js"></script>
18 <script src="../../../../../../resources/testharnessreport.js"></script>
19 <script src="../../../testcommon.js"></script>
20 <link rel="stylesheet" href="../../../../../../resources/testharness.css">
21 </head>
22 <body>
23 <div id="log"></div>
24 <script>
25 test(unit(function (ctx) {
26
27         var d = newRenderedHTMLDocument(ctx);
28
29     var style = d.createElement('style');
30     style.innerHTML = 'span {' +
31         'font-size: 10px;' +
32         '}';
33     d.head.appendChild(style);
34
35     var widget = d.createElement('div');
36     d.body.appendChild(widget);
37
38     var s = createSR(widget);
39
40     var thumb = d.createElement('span');
41     thumb.innerHTML = 'This is a pseudo-element';
42
43     thumb.pseudo = 'x-thumb';
44     s.appendChild(thumb);
45
46     var height = thumb.offsetHeight;
47
48     assert_true(height > 0, 'Element should be rendered');
49
50     style = d.createElement('style');
51     style.innerHTML = '' +
52         'div::x-thumb {' +
53         'font-size: 30px;' +
54         '}';
55     d.body.appendChild(style);
56
57     assert_true(thumb.offsetHeight > height, 'Pseudo-element style should be applied');
58     thumb.pseudo = null;
59
60     assert_equals(thumb.offsetHeight, height, 'Pseudo-element style should be discarded by new setter');
61
62 }), 'A_10_02_01_04_T01');
63
64
65 test(unit(function (ctx) {
66
67         var d = newRenderedHTMLDocument(ctx);
68
69     var widget = d.createElement('div');
70     d.body.appendChild(widget);
71
72     var s = createSR(widget);
73
74     var thumb = d.createElement('span');
75     thumb.innerHTML = 'This is a pseudo-element';
76
77     thumb.pseudo = 'x-thumb';
78     s.appendChild(thumb);
79
80     assert_equals(thumb.pseudo,  'x-thumb', 'Pseudo-element style attribute should be set');
81     thumb.pseudo = 'x-thumb2';
82
83     assert_equals(thumb.pseudo, 'x-thumb2', 'New pseudo-element style should be set by setter');
84
85 }), 'A_10_02_01_04_T02');
86
87
88 test(unit(function (ctx) {
89
90         var d = newRenderedHTMLDocument(ctx);
91
92     var style = d.createElement('style');
93     style.innerHTML = 'span {' +
94         'font-size: 10px;' +
95         '}';
96     d.head.appendChild(style);
97
98     var widget = d.createElement('div');
99     d.body.appendChild(widget);
100
101     var s = createSR(widget);
102
103     var thumb = d.createElement('span');
104     thumb.innerHTML = 'This is a pseudo-element';
105
106     thumb.pseudo = 'x-thumb';
107     s.appendChild(thumb);
108
109     var height = thumb.offsetHeight;
110
111     assert_true(height > 0, 'Element should be rendered');
112
113     style = d.createElement('style');
114     style.innerHTML = '' +
115         'div::x-thumb {' +
116                 'font-size: 30px;' +
117         '}' +
118         'div::x-thumb2 {' +
119                 'font-size: 20px;' +
120         '}';
121
122     d.body.appendChild(style);
123
124     var height2 = thumb.offsetHeight;
125
126     assert_true(height2 > height, 'Pseudo-element style should be applied');
127
128     thumb.pseudo = 'x-thumb2';
129
130     assert_true(thumb.offsetHeight > height && thumb.offsetHeight < height2,
131                 'New pseudo-element style should be applied by setter');
132
133 }), 'A_10_02_01_04_T03');
134 </script>
135 </body>
136 </html>