|
|
@@ -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;
|
|
|
+ } );
|
|
|
} );
|
|
|
} );
|