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

Fixed code coverage in clipboardobserver.

Maciej Bukowski 8 лет назад
Родитель
Сommit
b019d4ade0
1 измененных файлов с 43 добавлено и 8 удалено
  1. 43 8
      packages/ckeditor5-clipboard/tests/clipboardobserver.js

+ 43 - 8
packages/ckeditor5-clipboard/tests/clipboardobserver.js

@@ -22,26 +22,61 @@ describe( 'ClipboardObserver', () => {
 	} );
 
 	describe( 'onDomEvent', () => {
-		it.skip( 'should fire paste with the right event data', () => {
-			const spy = sinon.spy();
-			const dataTransfer = {
+		let pasteSpy, preventDefaultSpy;
+
+		function getDataTransfer() {
+			return {
 				getData( type ) {
 					return 'foo:' + type;
 				}
 			};
+		}
+
+		beforeEach( () => {
+			pasteSpy = sinon.spy();
+			preventDefaultSpy = sinon.spy();
+		} );
 
-			viewDocument.on( 'paste', spy );
+		it( 'should fire paste with the right event data - clipboardData', () => {
+			const dataTransfer = getDataTransfer();
 
-			observer.onDomEvent( { type: 'paste', target: document.body, clipboardData: dataTransfer } );
+			viewDocument.on( 'paste', pasteSpy );
 
-			expect( spy.calledOnce ).to.be.true;
+			observer.onDomEvent( {
+				type: 'paste',
+				target: document.body,
+				clipboardData: dataTransfer,
+				preventDefault: preventDefaultSpy
+			} );
 
-			const data = spy.args[ 0 ][ 1 ];
+			expect( pasteSpy.calledOnce ).to.be.true;
+
+			const data = pasteSpy.args[ 0 ][ 1 ];
 			expect( data.domTarget ).to.equal( document.body );
 			expect( data.dataTransfer ).to.be.instanceOf( DataTransfer );
 			expect( data.dataTransfer.getData( 'x/y' ) ).to.equal( 'foo:x/y' );
+			expect( preventDefaultSpy.calledOnce ).to.be.true;
 		} );
 
-		// If it fires paste it fires all the other events too.
+		it( 'should fire paste with the right event data - dataTransfer', () => {
+			const dataTransfer = getDataTransfer();
+
+			viewDocument.on( 'drop', pasteSpy );
+
+			observer.onDomEvent( {
+				type: 'drop',
+				target: document.body,
+				dataTransfer,
+				preventDefault: preventDefaultSpy
+			} );
+
+			expect( pasteSpy.calledOnce ).to.be.true;
+
+			const data = pasteSpy.args[ 0 ][ 1 ];
+			expect( data.domTarget ).to.equal( document.body );
+			expect( data.dataTransfer ).to.be.instanceOf( DataTransfer );
+			expect( data.dataTransfer.getData( 'x/y' ) ).to.equal( 'foo:x/y' );
+			expect( preventDefaultSpy.calledOnce ).to.be.true;
+		} );
 	} );
 } );