began refactoring layer getIntersection method and added unit tests

This commit is contained in:
Eric Rowell
2013-11-27 16:05:35 -08:00
parent 4d35d38c2d
commit bc9bd291fc
5 changed files with 82 additions and 13 deletions

View File

@@ -180,6 +180,73 @@ suite('MouseEvents', function() {
Kinetic.DD._endDragAfter({dragEndNode:circle});
});
// ======================================================
test('test listening true/false with clicks', function() {
var stage = addStage();
var top = stage.content.getBoundingClientRect().top;
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,
name: 'myCircle'
});
var clickCount = 0;
circle.on('click', function() {
clickCount++;
});
layer.add(circle);
stage.add(layer);
// -----------------------------------
stage._mousedown({
clientX: 291,
clientY: 112 + top
});
Kinetic.DD._endDragBefore();
stage._mouseup({
clientX: 291,
clientY: 112 + top
});
assert.equal(clickCount, 1, 'should be 1 click');
// -----------------------------------
circle.setListening(false);
stage._mousedown({
clientX: 291,
clientY: 112 + top
});
Kinetic.DD._endDragBefore();
stage._mouseup({
clientX: 291,
clientY: 112 + top
});
assert.equal(clickCount, 1, 'should be 1 click even though another click occurred');
// -----------------------------------
circle.setListening(true);
stage._mousedown({
clientX: 291,
clientY: 112 + top
});
Kinetic.DD._endDragBefore();
stage._mouseup({
clientX: 291,
clientY: 112 + top
});
assert.equal(clickCount, 2, 'should be 2 clicks');
});
// ======================================================
test('click mapping', function() {
var stage = addStage();

View File

@@ -132,7 +132,7 @@ suite('Layer', function() {
assert.equal(layer.getIntersection(300, 100).shape.getId(), 'greenCircle', 'shape should be greenCircle');
assert.equal(layer.getIntersection(380, 100).shape.getId(), 'redCircle', 'shape should be redCircle');
assert.equal(layer.getIntersection(100, 100), null, 'shape should be null');
assert.equal(layer.getIntersection(100, 100).shape, null, 'shape should be null');
});

View File

@@ -171,7 +171,7 @@ suite('Stage', function() {
assert.equal(stage.getIntersection(300, 100).shape.getId(), 'greenCircle', 'shape should be greenCircle');
assert.equal(stage.getIntersection(380, 100).shape.getId(), 'redCircle', 'shape should be redCircle');
assert.equal(stage.getIntersection(100, 100), null, 'shape should be null');
assert.equal(stage.getIntersection(100, 100).shape, null, 'shape should be null');
});