diff --git a/src/Node.js b/src/Node.js index 8725f6f9..d7b20d5f 100644 --- a/src/Node.js +++ b/src/Node.js @@ -829,7 +829,11 @@ * @memberof Kinetic.Node.prototype */ getLayer: function() { - return this.getParent().getLayer(); + if (this.getParent()) { + return this.getParent().getLayer(); + } else { + return null; + } }, /** * get stage ancestor diff --git a/test/unit/Node-test.js b/test/unit/Node-test.js index 6c1a1520..5de474e8 100644 --- a/test/unit/Node-test.js +++ b/test/unit/Node-test.js @@ -30,7 +30,24 @@ suite('Node', function() { }); + // ====================================================== + test('get layer', function() { + var stage = addStage(); + var layer = new Kinetic.Layer(); + var circle = new Kinetic.Circle({ + x: stage.getWidth() / 2, + y: stage.getHeight() / 2, + radius: 70, + fill: 'green', + stroke: 'black', + strokeWidth: 4 + }); + assert.equal(circle.getLayer(), null); + stage.add(layer.add(circle)); + assert.equal(circle.getLayer(), layer); + + }); // ====================================================== test('setAttr', function() { var stage = addStage();