From 923c466572eda9aa08bfcc56e1becb5a7f749944 Mon Sep 17 00:00:00 2001 From: Anton Lavrenov Date: Sun, 26 Apr 2015 07:26:54 +0700 Subject: [PATCH] test for toDataURL + HDPI --- test/unit/Node-test.js | 53 +++++++++++++++++++++++++---------------- test/unit/Stage-test.js | 39 ++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 20 deletions(-) diff --git a/test/unit/Node-test.js b/test/unit/Node-test.js index 4fa52cb3..389356ee 100644 --- a/test/unit/Node-test.js +++ b/test/unit/Node-test.js @@ -280,33 +280,46 @@ suite('Node', function() { }); // ====================================================== - test('test pixel ratio toDataURL', function() { + test.only('toDataURL + HDPI', function(done) { + var oldRatio = Konva.pixelRatio; + Konva.pixelRatio = 2; + var stage = addStage(); var layer = new Konva.Layer(); - - // override pixel ratio - - layer.canvas = new Konva.SceneCanvas({ - pixelRatio: 2 - }); - layer.canvas._canvas.style.position = 'absolute'; - - var circle = new Konva.Circle({ - x: stage.getWidth() / 2, - y: stage.getHeight() / 2, - radius: 70, - fill: 'green', - stroke: 'black', - strokeWidth: 4 - }); - - layer.add(circle); stage.add(layer); - assert.equal(layer.canvas.pixelRatio, 2); + var circle = new Konva.Circle({ + fill : 'green', + x : stage.width() / 2, + y : stage.height() / 2, + radius : 50 + }); + layer.add(circle); + var layer2 = new Konva.Layer(); + stage.add(layer2); + + stage.draw(); + stage.toDataURL({ + callback : function(url) { + console.log(url); + var img = new Image(); + img.onload = function() { + var image = new Konva.Image({ + image : img + }); + layer2.add(image); + layer2.draw(); + compareLayers(layer, layer2); + done(); + } + img.src = url; + } + }); }); + + // ====================================================== test('listen and don\'t listen', function() { var stage = addStage(); diff --git a/test/unit/Stage-test.js b/test/unit/Stage-test.js index 51f80d11..dc809157 100644 --- a/test/unit/Stage-test.js +++ b/test/unit/Stage-test.js @@ -521,4 +521,43 @@ suite('Stage', function() { assert.equal(Konva.isDragging(), false); assert.equal(Konva.DD.node, undefined); }); + + test.skip('toDataURL + HDPI', function(done) { + Konva.pixelRatio = 2; + + var stage = addStage(); + var layer = new Konva.Layer(); + + var image = new Image(); + image.onload = function() { + var lion = new Konva.Image({ + image: image, + draggable: true + }); + + lion.cache(); + lion.drawHitFromCache(); + + layer.add(lion); + stage.add(layer); + stage.draw(); + + var snapshotStage = addStage(); + + stage.toImage({ + callback: function (image) { + var imageNode = new Konva.Image({ + image: image + }); + var snapshotLayer = new Konva.Layer(); + snapshotLayer.add(imageNode); + snapshotStage.add(snapshotLayer); + snapshotStage.draw(); + Konva.pixelRatio = undefined; + done(); + } + }); + }; + image.src = 'assets/lion.png'; + }); }); \ No newline at end of file