blob: 015a4c965a1a275398be794a40fe4cc6edc3170f [file] [log] [blame]
/*
* Copyright (c) 2014, 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.
*/
/**
* @description Series of tests to ensure that fillText() does not display any
* text when maxWidth is invalid.
*/
import "dart:html";
import "dart:math" as Math;
import "../../testcommon.dart";
import "../../../Utils/async_utils.dart";
main() {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var canvasWidth = 100;
var canvasHeight = 50;
canvas.width = canvasWidth;
canvas.height = canvasHeight;
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
ctx.font = '35px Arial, sans-serif';
debug("Test canvas.fillText() with maxWidth zero");
ctx.fillStyle = '#f00';
ctx.fillText("fail fail fail fail fail", 5, 35, 0);
var imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);
var w = imageData.width, h = imageData.height, d = imageData.data;
for (var i = 0; i < h; ++i) {
for (var j = 0; j < w; ++j) {
if (d[4 * (w * i + j) + 0] != 0) shouldBe(d[4 * (w * i + j) + 0], 0);
if (d[4 * (w * i + j) + 1] != 255) shouldBe(d[4 * (w * i + j) + 1], 255);
if (d[4 * (w * i + j) + 2] != 0) shouldBe(d[4 * (w * i + j) + 2], 0);
if (d[4 * (w * i + j) + 3] != 255) shouldBe(d[4 * (w * i + j) + 3], 255);
}
}
ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, canvasWidth, canvasHeight);
debug("Test canvas.fillText() with maxWidth -1");
ctx.fillStyle = '#f00';
ctx.fillText("fail fail fail fail fail", 5, 35, -1);
imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);
w = imageData.width; h = imageData.height; d = imageData.data;
for (var i = 0; i < h; ++i) {
for (var j = 0; j < w; ++j) {
if (d[4 * (w * i + j) + 0] != 0) shouldBe(d[4 * (w * i + j) + 0], 0);
if (d[4 * (w * i + j) + 1] != 255) shouldBe(d[4 * (w * i + j) + 1], 255);
if (d[4 * (w * i + j) + 2] != 0) shouldBe(d[4 * (w * i + j) + 2], 0);
if (d[4 * (w * i + j) + 3] != 255) shouldBe(d[4 * (w * i + j) + 3], 255);
}
}
}