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

Unified Diff: LayoutTests/animations/interpolation/background-position-origin-interpolation.html

Issue 157523002: Fix incorrect animation for some values of background-position. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@backgroundposition
Patch Set: Zoom properly, use interpolation test instead of reftest. Created 6 years, 10 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 | LayoutTests/animations/interpolation/background-position-origin-interpolation-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/animations/interpolation/background-position-origin-interpolation.html
diff --git a/LayoutTests/animations/interpolation/background-position-origin-interpolation.html b/LayoutTests/animations/interpolation/background-position-origin-interpolation.html
new file mode 100644
index 0000000000000000000000000000000000000000..b9e66b10cd1296a5745c68a76ce712f33f6f7ce6
--- /dev/null
+++ b/LayoutTests/animations/interpolation/background-position-origin-interpolation.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<meta charset="utf-8">
+<style>
+.target {
+ border: 3px solid skyblue;
+ width: 100px;
+ height: 100px;
+ background-image: linear-gradient(to right, coral, coral);
+ background-size: 20px 20px;
+ background-repeat: no-repeat;
+ display: inline-block;
+}
+
+.replica {
+ margin-right: 10px;
+}
+</style>
+<body>
+<script src="resources/interpolation-test.js"></script>
+<script>
+
+// left-top
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'left 20px top 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + 5px) calc(37.5% + 5px)'},
+ {at: 0.50, is: 'calc(25% + 10px) calc(25% + 10px)'},
+ {at: 0.75, is: 'calc(12.5% + 15px) calc(12.5% + 15px)'},
+ {at: 1, is: '20px 20px'},
+]);
+
+// center-top
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'center top 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: '50% calc(37.5% + 5px)'},
+ {at: 0.50, is: '50% calc(25% + 10px)'},
+ {at: 0.75, is: '50% calc(12.5% + 15px)'},
+ {at: 1, is: '50% 20px'},
+]);
+
+// right-top
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'right 20px top 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + ((100% - 20px) * 0.25)) calc(37.5% + 5px)'},
+ {at: 0.50, is: 'calc(25% + ((100% - 20px) * 0.5)) calc(25% + 10px)'},
+ {at: 0.75, is: 'calc(12.5% + ((100% - 20px) * 0.75)) calc(12.5% + 15px)'},
+ {at: 1, is: 'calc(100% - 20px) 20px'},
+]);
+
+// left-center
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'left 20px center',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + 5px) 50%'},
+ {at: 0.50, is: 'calc(25% + 10px) 50%'},
+ {at: 0.75, is: 'calc(12.5% + 15px) 50%'},
+ {at: 1, is: '20px 50%'},
+]);
+
+// center-center
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'center center',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: '50% 50%'},
+ {at: 0.50, is: '50% 50%'},
+ {at: 0.75, is: '50% 50%'},
+ {at: 1, is: '50% 50%'}
+]);
+
+// right-center
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'right 20px center',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + ((100% - 20px) * 0.25)) 50%'},
+ {at: 0.50, is: 'calc(25% + ((100% - 20px) * 0.5)) 50%'},
+ {at: 0.75, is: 'calc(12.5% + ((100% - 20px) * 0.75)) 50%'},
+ {at: 1, is: 'calc(100% - 20px) 50%'},
+]);
+
+// left-bottom
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'left 20px bottom 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + 5px) calc(37.5% + ((100% - 20px) * 0.25))'},
+ {at: 0.50, is: 'calc(25% + 10px) calc(25% + ((100% - 20px) * 0.5))'},
+ {at: 0.75, is: 'calc(12.5% + 15px) calc(12.5% + ((100% - 20px) * 0.75))'},
+ {at: 1, is: '20px calc(100% - 20px)'},
+]);
+
+// center-bottom
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'center bottom 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: '50% calc(37.5% + ((100% - 20px) * 0.25))'},
+ {at: 0.50, is: '50% calc(25% + ((100% - 20px) * 0.5))'},
+ {at: 0.75, is: '50% calc(12.5% + ((100% - 20px) * 0.75))'},
+ {at: 1, is: '50% calc(100% - 20px)'},
+]);
+
+// right-bottom
+assertInterpolation({
+ property: 'background-position',
+ from: 'center center',
+ to: 'right 20px bottom 20px',
+}, [
+ {at: 0, is: '50% 50%'},
+ {at: 0.25, is: 'calc(37.5% + ((100% - 20px) * 0.25)) calc(37.5% + ((100% - 20px) * 0.25))'},
+ {at: 0.50, is: 'calc(25% + ((100% - 20px) * 0.5)) calc(25% + ((100% - 20px) * 0.5))'},
+ {at: 0.75, is: 'calc(12.5% + ((100% - 20px) * 0.75)) calc(12.5% + ((100% - 20px) * 0.75))'},
+ {at: 1, is: 'calc(100% - 20px) calc(100% - 20px)'},
+]);
+
+</script>
+</body>
« no previous file with comments | « no previous file | LayoutTests/animations/interpolation/background-position-origin-interpolation-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698