unit test for group hit graph and listening

This commit is contained in:
Лаврёнов Антон
2014-05-06 15:51:24 +08:00
parent 654cbf24b6
commit d579c97f83

View File

@@ -2605,6 +2605,70 @@ suite('Node', function() {
assert.equal(rect.shouldDrawHit(), false);
});
// ======================================================
test('group, listening, & shouldDrawHit', function(){
var stage = addStage();
var layer = new Kinetic.Layer({
listening : false
});
stage.add(layer);
var group = new Kinetic.Group({
listening : false
});
layer.add(group);
var rect = new Kinetic.Rect({
x: 100,
y: 50,
width: 100,
height: 50,
fill: 'green',
stroke: 'blue',
listening : true
});
group.add(rect);
assert.equal(rect.isListening(), true);
assert.equal(rect.shouldDrawHit(), true);
assert.equal(group.isListening(), false);
assert.equal(group.shouldDrawHit(), true, 'hit graph for group');
assert.equal(layer.isListening(), false);
assert.equal(layer.shouldDrawHit(), true, 'hit graph for layer');
var layerClick = 0;
var groupClick = 0;
var rectClick = 0;
rect.on('click', function() {
rectClick += 1;
});
group.on('click', function() {
groupClick += 1;
});
layer.on('click', function() {
layerClick += 1;
});
var top = stage.content.getBoundingClientRect().top;
stage._mousedown({
clientX: 291,
clientY: 112 + top
});
Kinetic.DD._endDragBefore();
stage._mouseup({
clientX: 291,
clientY: 112 + top
});
assert.equal(rectClick, 1, 'click on rectange');
assert.equal(groupClick, 0, 'no click on group');
assert.equal(layerClick, 0, 'no click on layer');
});
// ======================================================