Files
sdk/tests/lib_2/html/canvasrendering/canvas_rendering_util.dart
T
Srujan Gaddam fcb00812ed Migrate canvasrendering tests off of unittest
Migration to minitest where possible. async tests will
be migrated in a different CL.

Change-Id: I4662300bd841c56b7113adf2182ee2f8e3d7eae8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138889
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-03-10 22:04:21 +00:00

81 lines
2.0 KiB
Dart

// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library canvas_rendering_context_2d_test;
import 'dart:html';
import 'dart:math';
import 'package:expect/minitest.dart';
// Some rounding errors in the browsers.
checkPixel(List<int> pixel, List<int> expected) {
expect(pixel[0], closeTo(expected[0], 2));
expect(pixel[1], closeTo(expected[1], 2));
expect(pixel[2], closeTo(expected[2], 2));
expect(pixel[3], closeTo(expected[3], 2));
}
var canvas;
var context;
var otherCanvas;
var otherContext;
var video;
void createCanvas() {
canvas = new CanvasElement();
canvas.width = 100;
canvas.height = 100;
context = canvas.context2D;
}
void createOtherCanvas() {
otherCanvas = new CanvasElement();
otherCanvas.width = 10;
otherCanvas.height = 10;
otherContext = otherCanvas.context2D;
otherContext.fillStyle = "red";
otherContext.fillRect(0, 0, otherCanvas.width, otherCanvas.height);
}
void setupFunc() {
createCanvas();
createOtherCanvas();
video = new VideoElement();
}
void tearDownFunc() {
canvas = null;
context = null;
otherCanvas = null;
otherContext = null;
video = null;
}
List<int> readPixel(int x, int y) {
var imageData = context.getImageData(x, y, 1, 1);
return imageData.data;
}
/// Returns true if the pixel has some data in it, false otherwise.
bool isPixelFilled(int x, int y) => readPixel(x, y).any((p) => p != 0);
String pixelDataToString(List<int> data, int x, int y) {
return '[${data.join(", ")}]';
}
String _filled(bool v) => v ? "filled" : "unfilled";
void expectPixelFilled(int x, int y, [bool filled = true]) {
expect(isPixelFilled(x, y), filled,
reason: 'Pixel at ($x, $y) was expected to'
' be: <${_filled(filled)}> but was: <${_filled(!filled)}> with data: '
'${pixelDataToString(readPixel(x, y), x, y)}');
}
void expectPixelUnfilled(int x, int y) {
expectPixelFilled(x, y, false);
}