Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html

Issue 2926493002: Upstream position: sticky tests for script insertion and layout to WPT (Closed)
Patch Set: Rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html
index a664ab3d181e7f40526d93965c36d3b9eab4216b..18b2acfe16f77f3242b51e3a64c9b39d6a4f50b5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-get-bounding-client-rect.html
@@ -19,6 +19,7 @@ body {
}
.spacer {
+ width: 2000px;
height: 2000px;
}
@@ -26,29 +27,73 @@ body {
width: 100px;
height: 100px;
background-color: green;
- top: 50px;
}
.sticky {
position: sticky;
+ top: 50px;
+ left: 20px;
}
</style>
-<div id="scroller" class="container">
- <div id="sticky" class="sticky box"></div>
+<div id="scroller1" class="container">
+ <div id="sticky1" class="sticky box"></div>
<div class="spacer"></div>
</div>
<script>
test(() => {
- var element = document.getElementById('sticky');
- assert_equals(element.getBoundingClientRect().top, 50);
- document.getElementById('scroller').scrollTop = 100;
- assert_equals(element.getBoundingClientRect().top, 50);
+ var sticky = document.getElementById('sticky1');
+ assert_equals(sticky.getBoundingClientRect().top, 50);
+ document.getElementById('scroller1').scrollTop = 100;
+ assert_equals(sticky.getBoundingClientRect().top, 50);
sticky.style.position = 'relative';
- assert_equals(element.getBoundingClientRect().top, -50);
+ assert_equals(sticky.getBoundingClientRect().top, -50);
sticky.style.position = 'sticky';
- assert_equals(element.getBoundingClientRect().top, 50);
+ assert_equals(sticky.getBoundingClientRect().top, 50);
}, 'sticky positioned element should be observable by getBoundingClientRect.');
</script>
+<div id="scroller2" class="container">
+ <div class="spacer"></div>
+</div>
+
+<script>
+test(() => {
+ var scroller = document.getElementById('scroller2');
+ scroller.scrollTop = 100;
+ scroller.scrollLeft = 75;
+
+ var sticky = document.createElement('div');
+ sticky.className = 'sticky box';
+ scroller.insertBefore(sticky, scroller.querySelector('.spacer'));
+
+ var sticky_bounds = sticky.getBoundingClientRect();
+ var scroller_bounds = scroller.getBoundingClientRect();
+ assert_equals(sticky_bounds.top, scroller_bounds.top + 50);
+ assert_equals(sticky_bounds.left, scroller_bounds.left + 20);
+}, 'getBoundingClientRect should be correct for sticky after script insertion');
+</script>
+
+<div id="scroller3" class="container">
+ <div id="sticky3" class="sticky box"></div>
+ <div class="spacer"></div>
+</div>
+
+<script>
+test(() => {
+ var scroller = document.getElementById('scroller3');
+ var sticky = document.getElementById('sticky3');
+ scroller.scrollTop = 100;
+ scroller.scrollLeft = 75;
+
+ var div = document.createElement('div');
+ div.style.height = '65px';
+ scroller.insertBefore(div, sticky);
+
+ var sticky_bounds = sticky.getBoundingClientRect();
+ var scroller_bounds = scroller.getBoundingClientRect();
+ assert_equals(sticky_bounds.top, scroller_bounds.top + 50);
+ assert_equals(sticky_bounds.left, scroller_bounds.left + 20);
+}, 'getBoundingClientRect should be correct for sticky after script-caused layout');
+</script>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/external/wpt/css/css-position-3/position-sticky-offset-top-left.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698