8
0
Просмотр исходного кода

Implemented DomEventData.stopPropagation and preventDefault.

Piotrek Koszuliński 9 лет назад
Родитель
Сommit
7f51cfc7d1

+ 14 - 0
packages/ckeditor5-engine/src/treeview/observer/domeventdata.js

@@ -57,4 +57,18 @@ export default class DomEventData {
 	get target() {
 		return this.treeView.domConverter.getCorrespondingViewElement( this.domTarget );
 	}
+
+	/**
+	 * Prevents the native's event default action.
+	 */
+	preventDefault() {
+		this.domEvent.preventDefault();
+	}
+
+	/**
+	 * Stops native event propagation.
+	 */
+	stopPropagation() {
+		this.domEvent.stopPropagation();
+	}
 }

+ 22 - 0
packages/ckeditor5-engine/tests/treeview/observer/domeventdata.js

@@ -41,4 +41,26 @@ describe( 'DomEventData', () => {
 			expect( data ).to.have.property( 'target', viewBody );
 		} );
 	} );
+
+	describe( 'preventDefault', () => {
+		it( 'executes native preventDefault()', () => {
+			const domEvt = { target: document.body, preventDefault: sinon.spy() };
+			const data = new DomEventData( treeView, domEvt );
+
+			data.preventDefault();
+
+			expect( domEvt.preventDefault.calledOnce ).to.be.true;
+		} );
+	} );
+
+	describe( 'stopPropagation', () => {
+		it( 'executes native stopPropagation()', () => {
+			const domEvt = { target: document.body, stopPropagation: sinon.spy() };
+			const data = new DomEventData( treeView, domEvt );
+
+			data.stopPropagation();
+
+			expect( domEvt.stopPropagation.calledOnce ).to.be.true;
+		} );
+	} );
 } );