| Index: third_party/WebKit/LayoutTests/typedcssom/inlinestyle/tokenStreamValue.html
|
| diff --git a/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/tokenStreamValue.html b/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/tokenStreamValue.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d4adcf9cafc0765002726a6792e634ee9adc2db9
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/tokenStreamValue.html
|
| @@ -0,0 +1,43 @@
|
| +<!DOCTYPE html>
|
| +<script src="../../resources/testharness.js"></script>
|
| +<script src="../../resources/testharnessreport.js"></script>
|
| +
|
| +<div id="testElement"></div>
|
| +
|
| +<script>
|
| +
|
| +function compareTokenStreamValueWithArray(tokenStreamValue, expectedTokenStreamValue) {
|
| + if (tokenStreamValue == null) {
|
| + return expectedTokenStreamValue == undefined;
|
| + }
|
| + assert_true(tokenStreamValue instanceof CSSTokenStreamValue);
|
| + var iterator = tokenStreamValue.values();
|
| + var correct = true, i;
|
| + for (i = iterator.next(), j = 0; j < expectedTokenStreamValue.length; i = iterator.next(), ++j) {
|
| + if (i.done) return false;
|
| + if (typeof(i.value) == 'string') {
|
| + if (i.value != expectedTokenStreamValue[j]) {
|
| + return false;
|
| + }
|
| + } else if (i.value instanceof CSSVariableReferenceValue) {
|
| + if (i.value.variable != expectedTokenStreamValue[j].variable) {
|
| + return false;
|
| + }
|
| + correct = correct && compareTokenStreamValueWithArray(i.value.fallback, expectedTokenStreamValue[j].fallback);
|
| + } else return false;
|
| + }
|
| + return correct && i.done;
|
| +}
|
| +
|
| +test(function() {
|
| + testElement.style.width = "calc(42px + var(--foo, 15em) + var(--bar, var(--far) + 15px))";
|
| + var expectedTokenStreamValue =
|
| + ["calc(42px + "
|
| + , { variable: "--foo", fallback: [" 15em"] }
|
| + , " + "
|
| + , { variable: "--bar", fallback: [" ", { variable: "--far", fallback: undefined }, " + 15px"] }
|
| + , ")"];
|
| + assert_true(compareTokenStreamValueWithArray(testElement.styleMap.get("width"), expectedTokenStreamValue));
|
| +}, "Can get CSSTokenStreamValue from StyleMap");
|
| +
|
| +</script>
|
|
|