gecko-dev/testing/web-platform/tests/css/css-properties-values-api/self-utils.html
Anders Hartvoll Ruud 048d5e7b61 Bug 1502955 [wpt PR 13763] - [css-properties-values-api] Validate generate_property argument., a=testonly
Automatic update from web-platform-tests[css-properties-values-api] Validate generate_property argument.

This prevents silently dropping invalid arguments. For example, the
following currently generates a non-inherited property:

  let name = generate_property(syntax: '<length>', inherited: true);

This is because 'inherited' is not an option for CSS.registerProperty (the
actual option is 'inherits').

With this change, an exception is thrown if unknown options are provided.

R=futhark@chromium.org

Bug: 641877
Change-Id: I7b639651c331aa705416db95a3de751353648031
Reviewed-on: https://chromium-review.googlesource.com/c/1304522
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Anders Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603862}

--

wpt-commits: add8843a7da2ab5ee5ba329c0ae052573c23cde2
wpt-pr: 13763
2018-11-10 09:02:31 +00:00

41 lines
1.6 KiB
HTML

<!DOCTYPE html>
<title>Self-test for utils.js</title>
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./resources/utils.js"></script>
<div id=outer><div id=inner></div></div>
<script>
test(function(){
let syntaxes = all_syntaxes().concat([
'foo',
'bar | <length>',
'<angle> | <length>'
]);
// Don't throw:
syntaxes.forEach(generate_property);
}, 'Default initial values of generated properties are valid (self-test).');
test(function(){
try {
let inherited = generate_property({ syntax: '<length>', inherits: true });
let non_inherited = generate_property({ syntax: '<length>', inherits: false, initialValue: '5px' });
outer.style = `${inherited}: 10px; ${non_inherited}: 11px;`;
assert_equals(getComputedStyle(outer).getPropertyValue(inherited), '10px');
assert_equals(getComputedStyle(outer).getPropertyValue(non_inherited), '11px');
assert_equals(getComputedStyle(inner).getPropertyValue(inherited), '10px');
assert_equals(getComputedStyle(inner).getPropertyValue(non_inherited), '5px');
} finally {
outer.style = '';
inner.style = '';
}
}, 'Generated properties respect inherits flag');
test(function(){
assert_throws(new Error(), () => generate_property({syntax: '<length>', foo: 1}));
assert_throws(new Error(), () => generate_property({syntax: '<length>', inherited: false}));
assert_throws(new Error(), () => generate_property({syntax: '<length>', initial: '10px'}));
}, 'Can\'t generate property with unknown fields');
</script>