Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-parsing.html |
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-parsing.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-parsing.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..923e9281ff1930133632a4043a87025d798618c4 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-parsing.html |
| @@ -0,0 +1,73 @@ |
| +<!DOCTYPE html> |
| +<title>Position value 'sticky' should be a valid value</title> |
| +<link rel="help" href="https://www.w3.org/TR/css-position-3/#position-property" /> |
| +<meta name="assert" content="This test checks that setting position to 'sticky' |
| +should be allowed." /> |
| + |
| +<script src="/resources/testharness.js"></script> |
| +<script src="/resources/testharnessreport.js"></script> |
| + |
| +<!-- We need something to create elements in. --> |
| +<body></body> |
| + |
| +<script> |
| +// Sticky is valid for all elements except table-column-group and table-column. |
| +const VALID_STICKY_DISPLAY_TYPES = [ |
| + 'block', |
| + 'inline', |
| + 'run-in', |
| + 'flow', |
| + 'flow-root', |
| + 'table', |
| + 'flex', |
| + 'grid', |
| + 'ruby', |
| + 'subgrid', |
| + 'list-item', |
| + 'table-row-group', |
| + 'table-header-group', |
| + 'table-footer-group', |
| + 'table-row', |
| + 'table-cell', |
| + 'table-caption', |
| + 'ruby-base', |
| + 'ruby-text', |
| + 'ruby-base-container', |
| + 'ruby-text-container', |
| + 'contents', |
| + 'none', |
| +]; |
| + |
| +const INVALID_STICKY_DISPLAY_TYPES = [ |
| + 'table-column-group', |
| + 'table-column', |
| +]; |
| + |
| +test(() => { |
| + for (displayValue of VALID_STICKY_DISPLAY_TYPES) { |
| + // The default display value for a <div> is 'block', so even if the browser |
| + // under test does not support the tested display value it should still |
| + // allow sticky. |
| + let div = document.createElement('div'); |
| + let style = `position: sticky; display: ${displayValue};`; |
|
flackr
2017/06/07 16:46:56
My only concern is whether any of these require a
smcgruer
2017/06/07 20:24:51
Tested, they're all good.
|
| + div.setAttribute('style', style); |
| + document.body.appendChild(div); |
| + |
| + assert_equals(getComputedStyle(div).position, 'sticky', |
| + `Expected sticky to be valid for display: ${displayValue}`); |
| + document.body.removeChild(div); |
| + } |
| + |
| + for (displayValue of INVALID_STICKY_DISPLAY_TYPES) { |
| + let div = document.createElement('div'); |
| + let style = `position: sticky; display: ${displayValue};`; |
| + div.setAttribute('style', style); |
| + document.body.appendChild(div); |
| + |
| + assert_not_equals(getComputedStyle(div).position, 'sticky', |
| + `Expected sticky to be invalid for display: ${displayValue}`); |
| + document.body.removeChild(div); |
| + } |
| +}, 'The value of sticky for the position property should be parsed correctly'); |
| +</script> |
| + |