Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html |
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5b3d1f8afe3c0262083d588436074417ea9723a4 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html |
| @@ -0,0 +1,77 @@ |
| +<!DOCTYPE html> |
| +<title>Sticky positioned element should be observable by offsetTop and offsetLeft</title> |
| +<link rel="help" href="https://www.w3.org/TR/css-position-3/#sticky-pos" /> |
| +<meta name="assert" content="This test checks that a sticky positioned element |
| +should be observable by offsetTop/offsetLeft." /> |
| + |
| +<script src="/resources/testharness.js"></script> |
| +<script src="/resources/testharnessreport.js"></script> |
| + |
| +<style> |
| +body { |
| + margin: 0; |
| +} |
| + |
| +.container { |
| + position: relative; /* Required for offsetTop/offsetLeft tests. */ |
| + overflow: scroll; |
| + width: 200px; |
| + height: 200px; |
| +} |
| + |
| +.spacer { |
| + width: 2000px; |
| + height: 2000px; |
| +} |
| + |
| +.box { |
| + width: 100px; |
| + height: 100px; |
| + background-color: green; |
| +} |
| + |
| +.sticky { |
| + position: sticky; |
| + top: 50px; |
| + left: 20px; |
| +} |
| +</style> |
| + |
| +<div id="scroller1" class="container"> |
| + <div id="spacer1" class="spacer"></div> |
| +</div> |
| + |
| +<script> |
| +test(() => { |
| + var scroller = document.getElementById('scroller1'); |
| + scroller.scrollTop = 100; |
| + scroller.scrollLeft = 75; |
| + |
| + var sticky = document.createElement('div'); |
| + sticky.className = 'sticky box'; |
| + scroller.insertBefore(sticky, document.getElementById('spacer1')); |
| + |
| + assert_equals(sticky.offsetTop, scroller.scrollTop + 50); |
| + assert_equals(sticky.offsetLeft, scroller.scrollLeft + 20); |
| +}, 'offsetTop/offsetLeft should be correct for sticky after script insertion'); |
| +</script> |
| + |
| +<div id="scroller2" class="container"> |
| + <div id="sticky2" class="sticky box"></div> |
| + <div id="spacer2" class="spacer"></div> |
| +</div> |
| + |
| +<script> |
| +test(function() { |
| + var scroller = document.getElementById('scroller2'); |
| + var sticky = document.getElementById('sticky2'); |
| + scroller.scrollTop = 100; |
| + scroller.scrollLeft = 75; |
| + |
| + scroller.append(document.createElement('div')); |
| + |
| + assert_equals(sticky.offsetTop, scroller.scrollTop + 50); |
| + assert_equals(sticky.offsetLeft, scroller.scrollLeft + 20); |
| +}, 'offsetTop/offsetLeft should be correct for sticky after script-caused layout'); |
|
flackr
2017/06/07 18:32:56
These seem like they should have all of the same u
smcgruer
2017/06/07 20:57:32
I'm not convinced by the code savings here. How st
flackr
2017/06/08 19:38:03
It's not code savings but completeness - these sho
|
| + |
| +</script> |