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

Unified Diff: tests/html/canvasrenderingcontext2d_test.dart

Issue 15138002: Added tests to previously broken functionality and added null checks. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 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: tests/html/canvasrenderingcontext2d_test.dart
diff --git a/tests/html/canvasrenderingcontext2d_test.dart b/tests/html/canvasrenderingcontext2d_test.dart
index 8de0001d8540ccf535173a8d836e964ea7814255..698cc7fac5c3a6d1910621b8e8fe06b52f1e02f6 100644
--- a/tests/html/canvasrenderingcontext2d_test.dart
+++ b/tests/html/canvasrenderingcontext2d_test.dart
@@ -159,14 +159,15 @@ main() {
});
test('putImageData', () {
+ context.fillStyle = 'green';
+ context.fillRect(0, 0, canvas.width, canvas.height);
+
ImageData expectedData = context.getImageData(0, 0, 10, 10);
expectedData.data[0] = 25;
expectedData.data[1] = 65;
expectedData.data[2] = 255;
// Set alpha to 255 to make the pixels show up.
expectedData.data[3] = 255;
- context.fillStyle = 'green';
- context.fillRect(0, 0, canvas.width, canvas.height);
context.putImageData(expectedData, 0, 0);
@@ -174,6 +175,71 @@ main() {
// Make sure that we read back what we wrote.
expect(resultingData.data, expectedData.data);
});
+
+ test('putImageData dirty rectangle', () {
+ context.fillStyle = 'green';
+ context.fillRect(0, 0, canvas.width, canvas.height);
+
+ ImageData drawnData = context.getImageData(0, 0, 10, 10);
+ drawnData.data[0] = 25;
+ drawnData.data[1] = 65;
+ drawnData.data[2] = 255;
+ drawnData.data[3] = 255;
+
+ // Draw these pixels to the 2nd pixel.
+ drawnData.data[2 * 4 + 0] = 25;
+ drawnData.data[2 * 4 + 1] = 65;
+ drawnData.data[2 * 4 + 2] = 255;
+ drawnData.data[2 * 4 + 3] = 255;
+
+ // Draw these pixels to the 8th pixel.
+ drawnData.data[7 * 4 + 0] = 25;
+ drawnData.data[7 * 4 + 1] = 65;
+ drawnData.data[7 * 4 + 2] = 255;
+ drawnData.data[7 * 4 + 3] = 255;
+
+ // Use a dirty rectangle to limit what pixels are drawn.
+ context.putImageData(drawnData, 0, 0, 1, 0, 5, 5);
+
+ // Expect the data to be all green, as we skip all drawn pixels.
+ ImageData expectedData = context.createImageData(10, 10);
+ for (int i = 0; i < expectedData.data.length; i++) {
+ switch (i % 4) {
+ case 0:
+ expectedData.data[i] = 0;
+ break;
+ case 1:
+ expectedData.data[i] = 128;
+ break;
+ case 2:
+ expectedData.data[i] = 0;
+ break;
+ case 3:
+ expectedData.data[i] = 255;
+ break;
+ }
+ }
+ // Third pixel was copied.
+ expectedData.data[2 * 4 + 0] = 25;
+ expectedData.data[2 * 4 + 1] = 65;
+ expectedData.data[2 * 4 + 2] = 255;
+ expectedData.data[2 * 4 + 3] = 255;
+
+ // Make sure that our data is all green.
+ var resultingData = context.getImageData(0, 0, 10, 10);
+ expect(resultingData.data, expectedData.data);
+ });
+
+ test('putImageData throws with wrong number of arguments', () {
+ ImageData expectedData = context.getImageData(0, 0, 10, 10);
+
+ expect(() => context.putImageData(expectedData, 0, 0, 1),
+ throwsArgumentError);
+ expect(() => context.putImageData(expectedData, 0, 0, 1, 1),
+ throwsArgumentError);
+ expect(() => context.putImageData(expectedData, 0, 0, 1, 1, 5),
+ throwsArgumentError);
+ });
});
group('arc', () {

Powered by Google App Engine
This is Rietveld 408576698