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

Unified Diff: LayoutTests/fast/canvas/canvas-scroll-path-into-view.html

Issue 196243007: Implement CRC2D.scrollPathIntoView() on Canvas (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: update and layout test Created 6 years, 9 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
Index: LayoutTests/fast/canvas/canvas-scroll-path-into-view.html
diff --git a/LayoutTests/fast/canvas/canvas-scroll-path-into-view.html b/LayoutTests/fast/canvas/canvas-scroll-path-into-view.html
new file mode 100644
index 0000000000000000000000000000000000000000..2cf4cf8dc470546998ecb7082b690f99d5bb5dff
--- /dev/null
+++ b/LayoutTests/fast/canvas/canvas-scroll-path-into-view.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="../../resources/js-test.js"></script>
+ <style>
+
+ .container {
+ display : inline-block;
+ width : 200px;
+ height : 200px;
+ overflow : scroll;
+ }
+
+ .border {
+ border : 500px solid white;
+ }
+
+ .padding {
+ padding : 500px;
+ }
+
+ .margin {
+ margin : 500px;
+ }
+
+ </style>
+</head>
+<body>
+ <div class="container">
+ <canvas width="400" height="400"></canvas>
+ </div>
+ <script>
+
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ function drawAndScroll(container, context, path) {
+
+ // reset scroll
+ container.scrollTop = 0;
+ container.scrollLeft = 0;
+
+ // draw path stroke
+ context.clearRect(0, 0, 400, 400);
+ context.beginPath();
+ if (path == undefined || path == null) {
+ context.rect(100, 100, 100, 100);
+ context.stroke();
+ } else {
+ path.rect(100, 100, 100, 100);
+ context.stroke(path);
+ }
+
+ // scroll path into view
+ if (path == undefined || path == null)
+ context.scrollPathIntoView();
+ else
+ context.scrollPathIntoView(path);
+
+ // save scroll top value
+ window.testValue = container.scrollTop;
+ }
+
+ function scrollTest(container, context, path) {
+
+ canvas.className = "";
+ drawAndScroll(container, context);
+ shouldBe("testValue", "100");
+
+ canvas.className = "border";
+ drawAndScroll(container, context);
+ shouldBe("testValue", "600");
+
+ canvas.className = "padding";
+ drawAndScroll(container, context);
+ shouldBe("testValue", "600");
+
+ canvas.className = "padding border";
+ drawAndScroll(container, context);
+ shouldBe("testValue", "1100");
+
+ canvas.className = "margin";
+ drawAndScroll(container, context);
+ shouldBe("testValue", "600");
+ }
+
+ var container = document.querySelector("div[class='container']");
+ var canvas = document.querySelector("canvas");
+ var context = canvas.getContext("2d");
+
+ var path = new Path2D();
+
+ description("Series of tests to ensure correct results of scrolling path into view on canvas");
+
+ debug("Test case 1: scrollPathIntoView();");
+ scrollTest(container, context);
+ debug("");
+
+ debug("Test case 2: scrollPathIntoView(path);");
+ scrollTest(container, context, path);
Justin Novosad 2014/03/20 20:03:12 Need additional test case with CTM != identity. A
+ debug("");
+
+ debug("Test case 3: exceptions");
+ shouldThrow("context.scrollPathIntoView(null);");
+ shouldThrow("context.scrollPathIntoView([]);");
+ shouldThrow("context.scrollPathIntoView({});");
+ debug("");
+
+ </script>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698