From d1c8214121d947608725009571c62638fa9b5259 Mon Sep 17 00:00:00 2001 From: Sergey Belozyorcev Date: Fri, 22 Jun 2018 03:01:32 +0300 Subject: [PATCH] up --- .../_type/i-bem-dom__events_type_bem.spec.js | 69 +++++++------------ .../_type/i-bem-dom__events_type_dom.spec.js | 62 ++++------------- 2 files changed, 39 insertions(+), 92 deletions(-) diff --git a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.spec.js b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.spec.js index 79b8c12e2..cd871dc64 100644 --- a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.spec.js +++ b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_bem.spec.js @@ -203,7 +203,7 @@ describe('BEM events', function() { }); describe('block instance events', function() { - var block2_1, block2_2; + var block1, block2_1, block2_2, block3_1, block3_2; beforeEach(function() { Block1 = bemDom.declBlock('block1', { onSetMod : { @@ -222,14 +222,27 @@ describe('BEM events', function() { }); Block2 = bemDom.declBlock('block2'); + Block3 = bemDom.declBlock('block3'); - block1 = initDom({ - block : 'block1', - content : [ - { block : 'block2' }, - { block : 'block2' } - ] - }).bem(Block1); + var dom = initDom([ + { + block : 'block1', + content : [ + { block : 'block2' }, + { block : 'block2' } + ] + }, + { block : 'block3' }, + { block : 'block3' }, + ]); + + block1 = dom.eq(0).bem(Block1); + + block3_1 = dom.eq(1).bem(Block3); + block3_2 = dom.eq(2).bem(Block3); + + block1._events(block3_1).on('click', spy6); + block1._events(block3_1).on('click', spy7); }); it('should properly bind handlers', function() { @@ -267,44 +280,14 @@ describe('BEM events', function() { spy1.should.not.have.been.called; spy3.should.have.been.called; }); - }); - - describe('complex unbind on block destruct', function() { - var spy1, spy2, block1, block2, block3; - - beforeEach(function() { - spy1 = sinon.spy(); - spy2 = sinon.spy(); - var Block = bemDom.declBlock('block'), - dom = initDom([ - { block : 'block' }, - { block : 'block' }, - { block : 'block' } - ]); - - block1 = dom.eq(0).bem(Block); - block2 = dom.eq(1).bem(Block); - block3 = dom.eq(2).bem(Block); - }); - - it('should properly unbind all handlers', function() { - block1._events(block2).on('click', spy1); - block1._events(block3).on('click', spy2); - block2._emit('click'); - block3._emit('click'); - - spy1.should.have.been.called; - spy2.should.have.been.called; - - spy1.reset(); - spy2.reset(); + it('should properly unbind all handlers on block destruct', function() { bemDom.destruct(block1.domElem); - block2._emit('click'); - block3._emit('click'); + block3_1._emit('click'); + block3_2._emit('click'); - spy1.should.have.not.been.called; - spy2.should.have.not.been.called; + spy6.should.have.not.been.called; + spy7.should.have.not.been.called; }); }); diff --git a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js index a90bc5717..170babeb6 100644 --- a/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js +++ b/common.blocks/i-bem-dom/__events/_type/i-bem-dom__events_type_dom.spec.js @@ -146,51 +146,6 @@ describe('DOM events', function() { }); }); - describe('complex unbind on block destruct', function() { - var spy1, spy2, spy3, block1, block2; - beforeEach(function() { - spy1 = sinon.spy(); - spy2 = sinon.spy(); - spy3 = sinon.spy(); - - var Block = bemDom.declBlock('block'), - dom = createDomNode([ - { block : 'block' }, - { block : 'block' } - ]); - - block1 = dom.eq(0).bem(Block); - block2 = dom.eq(1).bem(Block); - }); - - it('should properly unbind all handlers', function() { - block1._domEvents(bemDom.win).on('resize', spy1); - block1._domEvents(bemDom.doc).on('click', spy2); - block1._domEvents(block2).on('click', spy3); - - bemDom.win.trigger('resize'); - bemDom.doc.trigger('click'); - block2.domElem.trigger('click'); - - spy1.should.have.been.called; - spy2.should.have.been.called; - spy3.should.have.been.called; - - spy1.reset(); - spy2.reset(); - spy3.reset(); - - bemDom.destruct(block1.domElem); - bemDom.win.trigger('resize'); - bemDom.doc.trigger('click'); - block2.domElem.trigger('click'); - - spy1.should.have.not.been.called; - spy2.should.have.not.been.called; - spy3.should.have.not.been.called; - }); - }); - describe('block elems events', function() { ['string', 'Class'].forEach(function(elemType) { var elem1, elem2; @@ -722,15 +677,23 @@ describe('DOM events', function() { this._domEvents(rootNode.find('div').addBack()) .on('dblclick', data, wrapSpy(spy3)) .once('dblclick', spy4); + + this._domEvents(rootNode[1]) + .on('click', spy5); } } } }); - rootNode = createDomNode({ - content : { - content : { block : 'block', tag : 'p' } + rootNode = createDomNode([ + { + content : { + content : { block : 'block', tag : 'p' } + } + }, + { + content : '' } - }); + ]); block1 = rootNode.find(Block1._buildSelector()).bem(Block1); }); @@ -793,6 +756,7 @@ describe('DOM events', function() { spy1.should.not.have.been.called; spy2.should.not.have.been.called; + spy5.should.not.have.been.called; }); }); });