OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // testharness.js and testharnessreport.js need to be included first | 5 // testharness.js and testharnessreport.js need to be included first |
6 | 6 |
7 // Properties should be given in camelCase format | 7 // Properties should be given in camelCase format |
8 | 8 |
9 function convert_to_dashes(property) { | 9 function convert_to_dashes(property) { |
10 return property.replace(/[A-Z]/g, function(letter) { | 10 return property.replace(/[A-Z]/g, function(letter) { |
11 return "-" + letter.toLowerCase(); | 11 return "-" + letter.toLowerCase(); |
12 }); | 12 }); |
13 } | 13 } |
14 | 14 |
15 function assert_valid_value(property, value, serializedValue) { | 15 function assert_valid_value(property, value, serializedValue, quirksModeOnly) { |
16 if (arguments.length != 3) | 16 if (arguments.length < 4) |
| 17 quirksModeOnly = false; |
| 18 |
| 19 if (arguments.length < 3) |
17 serializedValue = value; | 20 serializedValue = value; |
18 | 21 |
19 stringifiedValue = JSON.stringify(value); | 22 stringifiedValue = JSON.stringify(value); |
| 23 dashedProperty = convert_to_dashes(property); |
20 | 24 |
21 test(function(){ | 25 test(function(){ |
22 assert_true(CSS.supports(convert_to_dashes(property), value)); | 26 assert_equals(!quirksModeOnly, CSS.supports(dashedProperty, value)); |
23 }, "CSS.supports('" + property + "', " + stringifiedValue + ") should return
true"); | 27 }, "CSS.supports('" + dashedProperty + "', " + stringifiedValue + ") should
return " + !quirksModeOnly); |
24 | 28 |
25 test(function(){ | 29 test(function(){ |
26 var div = document.createElement('div'); | 30 var div = document.createElement('div'); |
27 div.style[property] = value; | 31 div.style[property] = value; |
28 assert_not_equals(div.style[property], ""); | 32 assert_not_equals(div.style[property], ""); |
29 }, "e.style['" + property + "'] = " + stringifiedValue + " should set the va
lue"); | 33 }, "e.style['" + property + "'] = " + stringifiedValue + " should set the va
lue"); |
30 | 34 |
31 test(function(){ | 35 test(function(){ |
32 var div = document.createElement('div'); | 36 var div = document.createElement('div'); |
33 div.style[property] = value; | 37 div.style[property] = value; |
34 var readValue = div.style[property]; | 38 var readValue = div.style[property]; |
35 assert_equals(readValue, serializedValue); | 39 assert_equals(readValue, serializedValue); |
36 div.style[property] = readValue; | 40 div.style[property] = readValue; |
37 assert_equals(div.style[property], readValue); | 41 assert_equals(div.style[property], readValue); |
38 }, "Serialization should round-trip after setting e.style['" + property + "'
] = " + stringifiedValue); | 42 }, "Serialization should round-trip after setting e.style['" + property + "'
] = " + stringifiedValue); |
39 } | 43 } |
40 | 44 |
41 function assert_invalid_value(property, value) { | 45 function assert_invalid_value(property, value) { |
42 stringifiedValue = JSON.stringify(value); | 46 stringifiedValue = JSON.stringify(value); |
| 47 dashedProperty = convert_to_dashes(property); |
43 | 48 |
44 test(function(){ | 49 test(function(){ |
45 assert_false(CSS.supports(convert_to_dashes(property), value)); | 50 assert_false(CSS.supports(dashedProperty, value)); |
46 }, "CSS.supports('" + property + "', " + stringifiedValue + ") should return
false"); | 51 }, "CSS.supports('" + dashedProperty + "', " + stringifiedValue + ") should
return false"); |
47 | 52 |
48 test(function(){ | 53 test(function(){ |
49 var div = document.createElement('div'); | 54 var div = document.createElement('div'); |
50 div.style[property] = value; | 55 div.style[property] = value; |
51 assert_equals(div.style[property], ""); | 56 assert_equals(div.style[property], ""); |
52 }, "e.style['" + property + "'] = " + stringifiedValue + " should not set th
e value"); | 57 }, "e.style['" + property + "'] = " + stringifiedValue + " should not set th
e value"); |
53 } | 58 } |
OLD | NEW |