|
@@ -33,6 +33,14 @@ class MultiObserver extends DomEventObserver {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+class ClickCapturingObserver extends ClickObserver {
|
|
|
|
|
+ constructor( document ) {
|
|
|
|
|
+ super( document );
|
|
|
|
|
+
|
|
|
|
|
+ this.useCapture = true;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
describe( 'DomEventObserver', () => {
|
|
describe( 'DomEventObserver', () => {
|
|
|
let viewDocument;
|
|
let viewDocument;
|
|
|
|
|
|
|
@@ -129,6 +137,22 @@ describe( 'DomEventObserver', () => {
|
|
|
expect( evtSpy.calledOnce ).to.be.true;
|
|
expect( evtSpy.calledOnce ).to.be.true;
|
|
|
} );
|
|
} );
|
|
|
|
|
|
|
|
|
|
+ it( 'should allow to listen events on capturing phase', ( done ) => {
|
|
|
|
|
+ const domElement = document.createElement( 'div' );
|
|
|
|
|
+ const childDomElement = document.createElement( 'p' );
|
|
|
|
|
+ const domEvent = new MouseEvent( 'click' );
|
|
|
|
|
+ domElement.appendChild( childDomElement );
|
|
|
|
|
+ viewDocument.createRoot( domElement, 'root' );
|
|
|
|
|
+ viewDocument.addObserver( ClickCapturingObserver );
|
|
|
|
|
+
|
|
|
|
|
+ viewDocument.on( 'click', ( evt, domEventData ) => {
|
|
|
|
|
+ expect( domEventData.domEvent.eventPhase ).to.equal( MouseEvent.CAPTURING_PHASE );
|
|
|
|
|
+ done();
|
|
|
|
|
+ } );
|
|
|
|
|
+
|
|
|
|
|
+ childDomElement.dispatchEvent( domEvent );
|
|
|
|
|
+ } );
|
|
|
|
|
+
|
|
|
describe( 'fire', () => {
|
|
describe( 'fire', () => {
|
|
|
it( 'should do nothing if observer is disabled', () => {
|
|
it( 'should do nothing if observer is disabled', () => {
|
|
|
const testObserver = new ClickObserver( viewDocument );
|
|
const testObserver = new ClickObserver( viewDocument );
|