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

Unified Diff: LayoutTests/fast/canvas/canvas-lose-restore-googol-size.html

Issue 211503006: Implementation of 2D canvas context lost/restored events (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase 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-lose-restore-googol-size.html
diff --git a/LayoutTests/fast/forms/formmethod-attribute-input-html.html b/LayoutTests/fast/canvas/canvas-lose-restore-googol-size.html
similarity index 12%
copy from LayoutTests/fast/forms/formmethod-attribute-input-html.html
copy to LayoutTests/fast/canvas/canvas-lose-restore-googol-size.html
index bb44664a46215ee8ba405b8280a85413e0ab8e8a..8f1d8a9aaf30e61e7605f127c013c5bff79e609b 100644
--- a/LayoutTests/fast/forms/formmethod-attribute-input-html.html
+++ b/LayoutTests/fast/canvas/canvas-lose-restore-googol-size.html
@@ -4,31 +4,66 @@
<script src="../../resources/js-test.js"></script>
</head>
<body>
-<p id="description"></p>
-<div id="console"></div>
-<form method="get" action="?">
- <input type="hidden" name="hidden" value="I am hidden" />
- <input id="button" formmethod="post" type="submit" name="button" />
-</form>
<script>
-description("Test for the formmethod attribute in input tags.");
+description("Tests to ensure correct behaviour of canvas loss and restoration when size is extremely large then, restored to a reasonable value.");
+
if (window.testRunner) {
+ testRunner.dumpAsText();
testRunner.waitUntilDone();
}
-var button = document.getElementById('button');
+var canvas = document.createElement('canvas')
+canvas.addEventListener('contextlost', contextLost);
+canvas.addEventListener('contextrestored', contextRestored);
+var ctx = canvas.getContext('2d');
+var lostEventHasFired = false;
+verifyContextLost(false);
+
+var googol = Math.pow(10,100);
+canvas.width = googol;
+canvas.height = googol;
+verifyContextLost(true);
+canvas.width = googol;
+verifyContextLost(true);
+canvas.width = 100;
+canvas.height = 100;
+verifyContextLost(true); // Restoration is async.
+
+// Restore a sane dimension
-if (document.URL.substring(0, 4) == "file") {
- if (document.URL.indexOf('?') == -1) {
- button.click();
+function verifyContextLost(shouldBeLost) {
+ // Verify context loss experimentally as well as isContextLost()
+ ctx.fillStyle = '#0f0';
+ ctx.fillRect(0, 0, 1, 1);
+ contextLostTest = ctx.getImageData(0, 0, 1, 1).data[1] == 0;
+ if (shouldBeLost) {
+ shouldBeTrue('contextLostTest');
+ shouldBeTrue('ctx.isContextLost()');
} else {
- if (document.URL.substring(document.URL.indexOf('?') + 1, document.URL.length) == "")
- testPassed('The formmethod attribute was successfully used');
- else
- testFailed('The formmethod attribute was not used');
+ shouldBeFalse('contextLostTest');
+ shouldBeFalse('ctx.isContextLost()');
+ }
+}
- if (window.testRunner)
- testRunner.notifyDone();
+function contextLost() {
+ if (lostEventHasFired) {
+ testFailed('Context lost event was dispatched more than once.');
+ } else {
+ testPassed('Graphics context lost event dispatched.');
+ }
+ lostEventHasFired = true;
+ verifyContextLost(true);
+}
+
+function contextRestored() {
+ if (lostEventHasFired) {
+ testPassed('Context restored event dispatched after context lost.');
+ } else {
+ testFailed('Context restored event was dispatched before a context lost event.');
+ }
+ verifyContextLost(false);
+ if (window.testRunner) {
+ testRunner.notifyDone();
}
}
</script>

Powered by Google App Engine
This is Rietveld 408576698