зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1503178 [wpt PR 13774] - [css-properties-values-api] Test initial values individually., a=testonly
Automatic update from web-platform-tests[css-properties-values-api] Test initial values individually. Split up the assertions of the initial value test into multiple tests. This makes it possible to add test expectations for things which are not supported yet. R=futhark@chromium.org Bug: 641877 Change-Id: I8756b2d066a8bc2ae542ca033d98754255aeb2b2 Reviewed-on: https://chromium-review.googlesource.com/c/1304560 Commit-Queue: Anders Ruud <andruud@chromium.org> Reviewed-by: Rune Lillesveen <futhark@chromium.org> Cr-Commit-Position: refs/heads/master@{#603859} -- wpt-commits: 6014df860a812202756c59f230e9bfafb2c8332c wpt-pr: 13774
This commit is contained in:
Родитель
90ba10d3ab
Коммит
5ba63554b1
|
@ -1,35 +1,45 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api/#dom-propertydescriptor-initialvalue" />
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api/#register-a-custom-property" />
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
background: var(--inherited-color);
|
||||
color: var(--non-inherited-color);
|
||||
}
|
||||
</style>
|
||||
<script src="./resources/utils.js"></script>
|
||||
<div id=target></div>
|
||||
<script>
|
||||
test(function() {
|
||||
CSS.registerProperty({name: '--length', syntax: '<length>', initialValue: 'calc(10px + 15px)', inherits: false});
|
||||
CSS.registerProperty({name: '--length-percentage', syntax: '<length-percentage>', initialValue: 'calc(1in + 10% + 4px)', inherits: false});
|
||||
CSS.registerProperty({name: '--inherited-color', syntax: '<color>', initialValue: 'pink', inherits: true});
|
||||
CSS.registerProperty({name: '--non-inherited-color', syntax: '<color>', initialValue: 'purple', inherits: false});
|
||||
CSS.registerProperty({name: '--transform-function', syntax: '<transform-function>', initialValue: 'rotate(42deg)', inherits: false});
|
||||
CSS.registerProperty({name: '--single-transform-list', syntax: '<transform-list>', initialValue: 'scale(calc(2 + 2))', inherits: false});
|
||||
CSS.registerProperty({name: '--multiple-transform-list', syntax: '<transform-list>', initialValue: 'scale(calc(2 + 1)) translateX(calc(3px + 1px))', inherits: false});
|
||||
|
||||
computedStyle = getComputedStyle(target);
|
||||
assert_equals(computedStyle.getPropertyValue('--length'), '25px');
|
||||
assert_equals(computedStyle.getPropertyValue('--length-percentage'), 'calc(100px + 10%)');
|
||||
assert_equals(computedStyle.getPropertyValue('--inherited-color'), 'rgb(255, 192, 203)');
|
||||
assert_equals(computedStyle.getPropertyValue('--non-inherited-color'), 'rgb(128, 0, 128)');
|
||||
assert_equals(computedStyle.getPropertyValue('--transform-function'), 'rotate(42deg)');
|
||||
assert_equals(computedStyle.getPropertyValue('--single-transform-list'), 'scale(4)');
|
||||
assert_equals(computedStyle.getPropertyValue('--multiple-transform-list'), 'scale(3) translateX(4px)');
|
||||
function test_initial_value(reg, expected) {
|
||||
let suffix = reg.inherits === true ? ', inherits' : '';
|
||||
test(function(){
|
||||
let name = generate_property(reg);
|
||||
let actual = getComputedStyle(target).getPropertyValue(name);
|
||||
assert_equals(actual, expected);
|
||||
}, `Initial value for ${reg.syntax} correctly computed [${reg.initialValue}${suffix}]`);
|
||||
}
|
||||
|
||||
test_initial_value({ syntax: '<length>', initialValue: 'calc(10px + 15px)' }, '25px');
|
||||
test_initial_value({ syntax: '<length-percentage>', initialValue: 'calc(1in + 10% + 4px)' }, 'calc(100px + 10%)');
|
||||
test_initial_value({ syntax: '<color>', initialValue: 'pink', inherits: true }, 'rgb(255, 192, 203)');
|
||||
test_initial_value({ syntax: '<color>', initialValue: 'purple' }, 'rgb(128, 0, 128)');
|
||||
test_initial_value({ syntax: '<transform-function>', initialValue: 'rotate(42deg)' }, 'rotate(42deg)');
|
||||
test_initial_value({ syntax: '<transform-list>', initialValue: 'scale(calc(2 + 2))' }, 'scale(4)');
|
||||
test_initial_value({ syntax: '<transform-list>', initialValue: 'scale(calc(2 + 1)) translateX(calc(3px + 1px))' }, 'scale(3) translateX(4px)');
|
||||
|
||||
// Test that the initial value of the custom property 'reg' is successfully
|
||||
// substituted into 'property'.
|
||||
function test_substituted_value(reg, property, expected) {
|
||||
let inherits_text = reg.inherits === true ? 'inherited' : 'non-inherited';
|
||||
test(function(){
|
||||
try {
|
||||
let name = generate_property(reg);
|
||||
target.style = `${property}:var(${name});`;
|
||||
assert_equals(getComputedStyle(target).getPropertyValue(property), expected);
|
||||
} finally {
|
||||
target.style = '';
|
||||
}
|
||||
}, `Initial ${inherits_text} value can be substituted [${reg.initialValue}, ${property}]`);
|
||||
}
|
||||
|
||||
test_substituted_value({ syntax: '<color>', initialValue: 'purple', inherits: true }, 'color', 'rgb(128, 0, 128)');
|
||||
test_substituted_value({ syntax: '<color>', initialValue: 'pink' }, 'background-color', 'rgb(255, 192, 203)');
|
||||
|
||||
assert_equals(computedStyle.backgroundColor, 'rgb(255, 192, 203)');
|
||||
assert_equals(computedStyle.color, 'rgb(128, 0, 128)');
|
||||
}, "Initial values of registered properties can be referenced when no custom properties are explicitly set.");
|
||||
</script>
|
||||
|
|
Загрузка…
Ссылка в новой задаче