blob: 65a65ac0dfe681d1d9155f8565b52eba0b1baf80 [file] [log] [blame]
<!doctype html>
<meta charset="utf-8">
<title>CSSUnparsedValue Indexed Getter and Setter</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-cssunparsedvalue-__getter__-index-index">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-cssunparsedvalue-__setter__-index-val-val">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/testhelper.js"></script>
<body>
<div id="log"></div>
<script>
'use strict';
test(() => {
const result = new CSSUnparsedValue(['foo', 'bar']);
assert_equals(result[3], undefined, 'result from out of range index');
assert_equals(result[-1], undefined, 'result from negative index');
}, 'Getting invalid index in CSSUnparsedValue returns undefined');
test(() => {
let result = new CSSUnparsedValue([new CSSVariableReferenceValue('--foo')]);
result[0] = 'A';
assert_equals(result[0], 'A', 'fragment reflects new value');
}, 'Can update fragment in CSSUnparsedValue to a String');
test(() => {
let result = new CSSUnparsedValue(['foo']);
result[0] = new CSSVariableReferenceValue('--A');
assert_style_value_equals(result[0], new CSSVariableReferenceValue('--A'),
'fragment reflects new value');
}, 'Can update fragment in CSSUnparsedValue to a CSSVariableReference');
test(() => {
let result = new CSSUnparsedValue([]);
result[0] = 'foo';
assert_equals(result[0], 'foo', 'new fragment is appended');
}, 'Setting one past the last fragment in a CSSUnparsedValue to a String ' +
'appends the new fragment');
test(() => {
let result = new CSSUnparsedValue([' ']);
result[1] = new CSSVariableReferenceValue('--A');
assert_style_value_equals(result[1], new CSSVariableReferenceValue('--A'),
'new fragment is appended');
}, 'Setting one past the last fragment in a CSSUnparsedValue to a ' +
'CSSVariableReferenceValue appends the new fragment');
test(() => {
let result = new CSSUnparsedValue(['foo', 'bar']);
assert_throws_js(RangeError, () => result[3] = 'foo');
assert_equals(result[3], undefined, 'fragment does not change');
}, 'Setting out of range index in CSSUnparsedValue throws RangeError');
</script>