Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_iteration.html |
| diff --git a/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_iteration.html b/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_iteration.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1e98a7274307e47b2d6887bc76be54ada6e9ed03 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/typedcssom/inlinestyle/inlineStylePropertyMap_iteration.html |
| @@ -0,0 +1,96 @@ |
| +<!DOCTYPE html> |
|
Timothy Loh
2016/04/15 05:27:53
Can we have a test (multiple tests?) where we modi
meade_UTC10
2016/04/27 05:39:01
Done.
|
| +<script src="../../resources/testharness.js"></script> |
| +<script src="../../resources/testharnessreport.js"></script> |
| + |
| +<div id="testElement"></div> |
| + |
| +<script> |
| + |
| +test(function() { |
| + testElement.style = ""; |
| + |
| + var entryIterator = testElement.styleMap.entries(); |
| + var keyIterator = testElement.styleMap.keys(); |
| + var valueIterator = testElement.styleMap.values(); |
| + |
| + assert_true(entryIterator.next().done); |
| + assert_true(keyIterator.next().done); |
| + assert_true(valueIterator.next().done); |
| +}, "Iteration over empty StyleMap"); |
| + |
| +test(function() { |
| + testElement.style = "width: 50px"; |
| + |
| + var iterator = testElement.styleMap.entries(); |
| + var entry = iterator.next(); |
| + assert_false(entry.done); |
| + // Should only be one entry. |
| + assert_true(iterator.next().done); |
| + |
| + assert_equals(entry.value[0], 'width'); |
| + assert_true(entry.value[1] instanceof SimpleLength); |
| + assert_equals(entry.value[1].cssString, '50px'); |
| +}, "Iterator for single entry"); |
| + |
| +test(function() { |
| + testElement.style = "width: 60px"; |
| + |
| + var iterator = testElement.styleMap.keys(); |
| + var entry = iterator.next(); |
| + assert_false(entry.done); |
| + // Should only be one entry. |
| + assert_true(iterator.next().done); |
| + |
| + assert_equals(entry.value, 'width'); |
| +}, "Iterator for single key"); |
| + |
| +test(function() { |
| + testElement.style = "width: 70px"; |
| + |
| + var iterator = testElement.styleMap.values(); |
| + var entry = iterator.next(); |
| + assert_false(entry.done); |
| + // Should only be one entry. |
| + assert_true(iterator.next().done); |
| + |
| + assert_true(entry.value instanceof SimpleLength); |
| + assert_equals(entry.value.cssString, '70px'); |
| +}, "Iterator for single value"); |
| + |
| +test(function() { |
| + testElement.style = "border: 5px solid lightcoral"; |
| + |
| + var iterator = testElement.styleMap.entries(); |
| + var entries = {}; |
| + var numEntries = 0; |
| + var entry = iterator.next(); |
| + while (!entry.done) { |
|
Timothy Loh
2016/04/15 05:27:53
Can this one just be
for (let value of testElemen
meade_UTC10
2016/04/27 05:39:01
Done.
|
| + numEntries++; |
| + entries[entry.value[0]] = entry.value[1]; |
| + var entry = iterator.next(); |
| + } |
| + assert_equals(numEntries, 17); |
| + |
| + assert_equals(entries['border-top-width'].cssString, '5px'); |
| + assert_equals(entries['border-right-width'].cssString, '5px'); |
| + assert_equals(entries['border-bottom-width'].cssString, '5px'); |
| + assert_equals(entries['border-left-width'].cssString, '5px'); |
| + // TODO(meade): These will change to StyleValues once those values are supported. |
|
Timothy Loh
2016/04/15 05:27:53
IMO it's better to just write the tests to fail no
meade_UTC10
2016/04/27 05:39:01
Done.
|
| + assert_array_equals(entries['border-top-style'], []); |
| + assert_array_equals(entries['border-right-style'], []); |
| + assert_array_equals(entries['border-bottom-style'], []); |
| + assert_array_equals(entries['border-left-style'], []); |
| + |
| + assert_array_equals(entries['border-top-color'], []); |
| + assert_array_equals(entries['border-right-color'], []); |
| + assert_array_equals(entries['border-bottom-color'], []); |
| + assert_array_equals(entries['border-left-color'], []); |
| + |
| + assert_array_equals(entries['border-image-source'], []); |
| + assert_array_equals(entries['border-image-slice'], []); |
| + assert_array_equals(entries['border-image-width'], []); |
| + assert_array_equals(entries['border-image-outset'], []); |
| + assert_array_equals(entries['border-image-repeat'], []); |
| +}, "Iterating entries over border element expansion"); |
| + |
| +</script> |