| /* |
| * 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 strokeText() 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 canvasWidth = 100; |
| var canvasHeight = 50; |
| //var canvas = document.createElement('canvas'); |
| var canvas = new CanvasElement(width:canvasWidth, height:canvasHeight); |
| var ctx = canvas.getContext('2d'); |
| //canvas.setWidth = canvasWidth; |
| //canvas.setHeight = canvasHeight; |
| |
| ctx.fillStyle = '#0f0'; |
| ctx.fillRect(0, 0, canvasWidth, canvasHeight); |
| ctx.font = '35px Arial, sans-serif'; |
| |
| debug("Test canvas.strokeText() with maxWidth zero"); |
| ctx.strokeStyle = '#f00'; |
| ctx.strokeText("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.strokeText() with maxWidth -1"); |
| ctx.strokeStyle = '#f00'; |
| ctx.strokeText("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); |
| } |
| } |
| } |