From a8b56e783eb12f9218007b9c21eb8d410fe77117 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Sat, 26 Dec 2015 14:27:37 +0100 Subject: [PATCH 1/4] Update group.js --- test/unit/group.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/unit/group.js b/test/unit/group.js index 4497ac25..5c10cab0 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -515,13 +515,15 @@ test('toObject without default values', function() { }); test('test group transformMatrix', function() { - var rect1 = new fabric.Rect({ top: 100, left: 100, width: 10, height: 10, strokeWidth: 0 }), - rect2 = new fabric.Rect({ top: 120, left: 120, width: 10, height: 10, strokeWidth: 0 }), + var rect1 = new fabric.Rect({ top: 5, left: 5, width: 5, height: 5, strokeWidth: 0, fill: 'black', opacity: 1}), + rect2 = new fabric.Rect({ top: 15, left: 15, width: 5, height: 5, strokeWidth: 0, fill: 'black', opacity: 1}), group = new fabric.Group([ rect1, rect2 ]), ctx = canvas.contextContainer, isTransparent = fabric.util.isTransparent; canvas.add(group); - equal(isTransparent(ctx, 80, 80, 0), true); - equal(isTransparent(ctx, 101, 101, 0), false); + equal(isTransparent(ctx, 3, 3, 0), true); + equal(isTransparent(ctx, 8, 8, 0), false); + var imageData = ctx.getImageData(0, 0, (tolerance * 2) || 1, (tolerance * 2) || 1); + equal(imageData, [0]); group.transformMatrix = [1.2, 0, 0, 1.2, 1, 1]; canvas.renderAll(); equal(isTransparent(ctx, 101, 101, 0), true); From dfc574c0993660995d6577fba312bd84fd26d6f7 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Sat, 26 Dec 2015 14:33:00 +0100 Subject: [PATCH 2/4] Fix tests removing extra context.Restore(); --- .travis.yml | 2 +- package.json | 4 ++-- src/static_canvas.class.js | 1 - test.js | 1 + test/unit/group.js | 28 +++++++++++++++++----------- test/unit/shadow.js | 2 +- test/unit/text.js | 2 +- 7 files changed, 23 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index ba9461d5..955e18f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ node_js: - "0.12" - "0.11" - "0.10" -script: 'npm run build && npm run test && npm run lint && npm run lint_tests' before_install: - sudo apt-get update -qq - sudo apt-get install -qq libgif-dev libpng-dev libjpeg8-dev libpango1.0-dev libcairo2-dev +script: 'npm run build && npm run test && npm run lint && npm run lint_tests' diff --git a/package.json b/package.json index ae49b5ae..aceab54a 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "uglify-js": "2.4.x", "jscs": "2.1.x", "jshint": "2.8.x", - "qunit": "0.7.2", - "istanbul": "0.3.x" + "qunit": "0.7.x", + "istanbul": "0.4.x" }, "engines": { "node": ">=0.4.0" diff --git a/src/static_canvas.class.js b/src/static_canvas.class.js index 93deba40..7eaa8797 100644 --- a/src/static_canvas.class.js +++ b/src/static_canvas.class.js @@ -887,7 +887,6 @@ } this.fire('after:render'); - canvasToDrawOn.restore(); return this; }, diff --git a/test.js b/test.js index 0b081ec5..e4f04d10 100644 --- a/test.js +++ b/test.js @@ -5,6 +5,7 @@ testrunner.options.log.tests = false; testrunner.options.log.assertions = false; testrunner.options.coverage = true; +testrunner.options.maxBlockDuration = 120000; testrunner.run({ deps: "./test/fixtures/test_script.js", diff --git a/test/unit/group.js b/test/unit/group.js index 5c10cab0..de5a5353 100644 --- a/test/unit/group.js +++ b/test/unit/group.js @@ -3,7 +3,7 @@ var el = fabric.document.createElement('canvas'); el.width = 600; el.height = 600; - var canvas = this.canvas = fabric.isLikelyNode ? fabric.createCanvasForNode() : new fabric.Canvas(el); + var canvas = this.canvas = fabric.isLikelyNode ? fabric.createCanvasForNode(600, 600, {enableRetinaScaling: false}) : new fabric.Canvas(el); // function _createImageElement() { // return fabric.isLikelyNode ? new (require('canvas').Image)() : fabric.document.createElement('img'); @@ -515,19 +515,25 @@ test('toObject without default values', function() { }); test('test group transformMatrix', function() { - var rect1 = new fabric.Rect({ top: 5, left: 5, width: 5, height: 5, strokeWidth: 0, fill: 'black', opacity: 1}), - rect2 = new fabric.Rect({ top: 15, left: 15, width: 5, height: 5, strokeWidth: 0, fill: 'black', opacity: 1}), - group = new fabric.Group([ rect1, rect2 ]), - ctx = canvas.contextContainer, isTransparent = fabric.util.isTransparent; + var rect1 = new fabric.Rect({ top: 1, left: 1, width: 2, height: 2, strokeWidth: 0, fill: 'red', opacity: 1}), + rect2 = new fabric.Rect({ top: 4, left: 4, width: 2, height: 2, strokeWidth: 0, fill: 'red', opacity: 1}), + group = new fabric.Group([ rect1, rect2 ], {opacity: 1, fill: 'blue', strokeWidth: 0}), + isTransparent = fabric.util.isTransparent, + ctx = canvas.contextContainer; canvas.add(group); + equal(canvas.enableRetinaScaling, false); + equal(isTransparent(ctx, 0, 0, 0), true); + equal(isTransparent(ctx, 1, 1, 0), false); + equal(isTransparent(ctx, 2, 2, 0), false); equal(isTransparent(ctx, 3, 3, 0), true); - equal(isTransparent(ctx, 8, 8, 0), false); - var imageData = ctx.getImageData(0, 0, (tolerance * 2) || 1, (tolerance * 2) || 1); - equal(imageData, [0]); - group.transformMatrix = [1.2, 0, 0, 1.2, 1, 1]; + equal(isTransparent(ctx, 4, 4, 0), false); + group.transformMatrix = [2, 0, 0, 2, 1, 1]; canvas.renderAll(); - equal(isTransparent(ctx, 101, 101, 0), true); - equal(isTransparent(ctx, 131, 131, 0), false); + equal(isTransparent(ctx, 0, 0, 0), true); + equal(isTransparent(ctx, 1, 1, 0), true); + equal(isTransparent(ctx, 2, 2, 0), true); + equal(isTransparent(ctx, 3, 3, 0), false); + equal(isTransparent(ctx, 4, 4, 0), false); }); // asyncTest('cloning group with image', function() { // var rect = new fabric.Rect({ top: 100, left: 100, width: 30, height: 10 }), diff --git a/test/unit/shadow.js b/test/unit/shadow.js index cd91d76c..4f7d4813 100644 --- a/test/unit/shadow.js +++ b/test/unit/shadow.js @@ -141,7 +141,7 @@ var object = shadow.toObject(), shadow2 = new fabric.Shadow(object), object2 = shadow2.toObject(); - equal(shadow.affectStroke, shadow2.affectStroke) + equal(shadow.affectStroke, shadow2.affectStroke); deepEqual(object, object2); }); diff --git a/test/unit/text.js b/test/unit/text.js index b21746db..d161b00c 100644 --- a/test/unit/text.js +++ b/test/unit/text.js @@ -271,7 +271,7 @@ // temp workaround for text objects not obtaining width under node text.width = 100; - text.textAlign = 'justify' + text.textAlign = 'justify'; equal(removeTranslate(text.toSVG()), removeTranslate(TEXT_SVG_JUSTIFIED)); }); From 4030b18d9f0448aea217923be2369458154cc7a0 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Sun, 7 Feb 2016 18:31:05 +0100 Subject: [PATCH 3/4] add test for dataurl --- test/unit/canvas_static.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index 359b63a3..e57eb8b0 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -40,6 +40,8 @@ '"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,'+ '"shadow":null,"visible":true,"clipTo":null,"backgroundColor":"","fillRule":"nonzero","globalCompositeOperation":"source-over","transformMatrix":null,"skewX":0,"skewY":0,"padding":123,"foo":"bar","rx":0,"ry":0}],"background":""}'; + var CANVAS_WITH_RED_RECT_DATA = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAgAElEQVR4Xu3ZQY7lRhIFweqTj3RyzUYCapsE0pHAs15/MhgWG0fXn39+fv73499TAn9+fv5+6oN8DAECBAgQIHAk8OffwPrr6Ck/vinwl8C6yevdBAgQIEDgvoDAum98OkFgnYr5PQECBAgQeExAYD12kJ+fH4H13k18EQECBAgQOBIQWEdcyY8FVsJsCAECBAgQuCcgsO7Zfn2zwPoq5zkCBAgQIPCIgMB65BC/PkNgvXcTX0SAAAECBI4EBNYRV/JjgZUwG0KAAAECBO4JCKx7tl/fLLC+ynmOAAECBAg8IiCwHjmEPxG+dwhfRIAAAQIEvgoIrK9y957zP1j3bL2ZAAECBAgkAgIrYT4aIrCOuPyYAAECBAi8JyCw3ruJwHrvJr6IAAECBAgcCQisI67kxwIrYTaEAAECBAjcExBY92y/vllgfZXzHAECBAgQeERAYD1yiF+fIbDeu4kvIkCAAAECRwIC64gr+bHASpgNIUCAAAEC9wQE1j3br28WWF/lPEeAAAECBB4REFiPHMKfCN87hC8iQIAAAQJfBQTWV7l7z/kfrHu23kyAAAECBBIBgZUwHw0RWEdcfkyAAAECBN4TEFjv3URgvXcTX0SAAAECBI4EBNYRV/JjgZUwG0KAAAECBO4JCKx7tl/fLLC+ynmOAAECBAg8IiCwHjnEr88QWO/dxBcRIECAAIEjAYF1xJX8WGAlzIYQIECAAIF7AgLrnu3XNwusr3KeI0CAAAECjwgIrEcO4U+E7x3CFxEgQIAAga8CAuur3L3n/A/WPVtvJkCAAAECiYDASpiPhgisIy4/JkCAAAEC7wkIrPduIrDeu4kvIkCAAAECRwIC64gr+bHASpgNIUCAAAEC9wQE1j3br28WWF/lPEeAAAECBB4REFiPHOLXZwis927iiwgQIECAwJGAwDriSn4ssBJmQwgQIECAwD0BgXXP9uubBdZXOc8RIECAAIFHBATWI4fwJ8L3DuGLCBAgQIDAVwGB9VXu3nP+B+uerTcTIECAAIFEQGAlzEdDBNYRlx8TIECAAIH3BATWezcRWO/dxBcRIECAAIEjAYF1xJX8WGAlzIYQIECAAIF7AgLrnu3XNwusr3KeI0CAAAECjwgIrEcO8eszBNZ7N/FFBAgQIEDgSEBgHXElPxZYCbMhBAgQIEDgnoDAumf79c0C66uc5wgQIECAwCMCAuuRQ/gT4XuH8EUECBAgQOCrgMD6KnfvOf+Ddc/WmwkQIECAQCIgsBLmoyEC64jLjwkQIECAwHsCAuu9mwis927iiwgQIECAwJGAwDriSn4ssBJmQwgQIECAwD0BgXXP9uubBdZXOc8RIECAAIFHBATWI4f49RkC672b+CICBAgQIHAkILCOuJIfC6yE2RACBAgQIHBPQGDds/36ZoH1Vc5zBAgQIEDgEQGB9cgh/InwvUP4IgIECBAg8FVAYH2Vu/ec/8G6Z+vNBAgQIEAgERBYCfPREIF1xOXHBAgQIEDgPQGB9d5NBNZ7N/FFBAgQIEDgSEBgHXElPxZYCbMhBAgQIEDgnoDAumf79c0C66uc5wgQIECAwCMCAuuRQ/z6DIH13k18EQECBAgQOBIQWEdcyY8FVsJsCAECBAgQuCcgsO7Zfn2zwPoq5zkCBAgQIPCIgMB65BD+RPjeIXwRAQIECBD4KiCwvsrde87/YN2z9WYCBAgQIJAICKyE+WiIwDri8mMCBAgQIPCegMB67yYC672b+CICBAgQIHAkILCOuJIfC6yE2RACBAgQIHBPQGDds/36ZoH1Vc5zBAgQIEDgEQGB9cghfn2GwHrvJr6IAAECBAgcCQisI67kxwIrYTaEAAECBAjcExBY92y/vllgfZXzHAECBAgQeERAYD1yCH8ifO8QvogAAQIECHwVEFhf5e4953+w7tl6MwECBAgQSAQEVsJ8NERgHXH5MQECBAgQeE9AYL13E4H13k18EQECBAgQOBIQWEdcyY8FVsJsCAECBAgQuCcgsO7Zfn2zwPoq5zkCBAgQIPCIgMB65BC/PkNgvXcTX0SAAAECBI4EBNYRV/JjgZUwG0KAAAECBO4JCKx7tl/fLLC+ynmOAAECBAg8IiCwHjmEPxG+dwhfRIAAAQIEvgoIrK9y957zP1j3bL2ZAAECBAgkAgIrYT4aIrCOuPyYAAECBAi8JyCw3ruJwHrvJr6IAAECBAgcCQisI67kxwIrYTaEAAECBAjcExBY92y/vllgfZXzHAECBAgQeERAYD1yiF+fIbDeu4kvIkCAAAECRwIC64gr+bHASpgNIUCAAAEC9wQE1j3br28WWF/lPEeAAAECBB4REFiPHMKfCN87hC8iQIAAAQJfBQTWV7l7z/kfrHu23kyAAAECBBIBgZUwHw0RWEdcfkyAAAECBN4TEFjv3URgvXcTX0SAAAECBI4EBNYRV/JjgZUwG0KAAAECBO4JCKx7tl/fLLC+ynmOAAECBAg8IiCwHjnEr88QWO/dxBcRIECAAIEjAYF1xJX8WGAlzIYQIECAAIF7AgLrnu3XNwusr3KeI0CAAAECjwgIrEcO4U+E7x3CFxEgQIAAga8C/wXW1+c9d0Hgz8/P3xde65UECBAgQIBAJPAnmmMMAQIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQCRW+m8AAAJCSURBVGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRkBgTVzaosSIECAAAEClYDAqqTNIUCAAAECBGYEBNbMqS1KgAABAgQIVAICq5I2hwABAgQIEJgREFgzp7YoAQIECBAgUAkIrEraHAIECBAgQGBGQGDNnNqiBAgQIECAQCUgsCppcwgQIECAAIEZAYE1c2qLEiBAgAABApWAwKqkzSFAgAABAgRmBATWzKktSoAAAQIECFQCAquSNocAAQIECBCYERBYM6e2KAECBAgQIFAJCKxK2hwCBAgQIEBgRkBgzZzaogQIECBAgEAlILAqaXMIECBAgACBGQGBNXNqixIgQIAAAQKVgMCqpM0hQIAAAQIEZgQE1sypLUqAAAECBAhUAgKrkjaHAAECBAgQmBEQWDOntigBAgQIECBQCQisStocAgQIECBAYEZAYM2c2qIECBAgQIBAJSCwKmlzCBAgQIAAgRmB/wPPQS9olhz3SwAAAABJRU5ErkJggg=='; + function getAbsolutePath(path) { var isAbsolute = /^https?:/.test(path); if (isAbsolute) return path; @@ -445,11 +447,14 @@ window.alert("toDataURL is not supported by this environment. Some of the tests can not be run."); } else { + var rect = new fabric.Rect({width: 100, height: 100, fill:'red', top: 0, left: 0}); + canvas.add(rect); var dataURL = canvas.toDataURL(); // don't compare actual data url, as it is often browser-dependent // this.assertIdentical(emptyImageCanvasData, canvas.toDataURL('png')); equal(typeof dataURL, 'string'); equal(dataURL.substring(0, 21), 'data:image/png;base64'); + equal(dataURL, CANVAS_WITH_RED_RECT_DATA); } }); From 84f75b5e9fcdc901332bd59bc09ccf56003a2d16 Mon Sep 17 00:00:00 2001 From: Andrea Bogazzi Date: Sun, 7 Feb 2016 18:36:28 +0100 Subject: [PATCH 4/4] Update canvas_static.js --- test/unit/canvas_static.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unit/canvas_static.js b/test/unit/canvas_static.js index e57eb8b0..17b20252 100644 --- a/test/unit/canvas_static.js +++ b/test/unit/canvas_static.js @@ -454,7 +454,8 @@ // this.assertIdentical(emptyImageCanvasData, canvas.toDataURL('png')); equal(typeof dataURL, 'string'); equal(dataURL.substring(0, 21), 'data:image/png;base64'); - equal(dataURL, CANVAS_WITH_RED_RECT_DATA); + //to be fixed. + //equal(dataURL, CANVAS_WITH_RED_RECT_DATA); } });