| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /**
- * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /* globals document */
- import ClipboardObserver from '../src/clipboardobserver';
- import ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';
- import DataTransfer from '../src/datatransfer';
- describe( 'ClipboardObserver', () => {
- let viewDocument, observer;
- beforeEach( () => {
- viewDocument = new ViewDocument();
- observer = viewDocument.addObserver( ClipboardObserver );
- } );
- it( 'should define domEventType', () => {
- expect( observer.domEventType ).to.deep.equal( [ 'paste', 'copy', 'cut' ] );
- } );
- describe( 'onDomEvent', () => {
- it( 'should fire paste with the right event data', () => {
- const spy = sinon.spy();
- const dataTransfer = {
- getData( type ) {
- return 'foo:' + type;
- }
- };
- viewDocument.on( 'paste', spy );
- observer.onDomEvent( { type: 'paste', target: document.body, clipboardData: dataTransfer } );
- expect( spy.calledOnce ).to.be.true;
- const data = spy.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' );
- } );
- // If it fires paste it fires all the other events too.
- } );
- } );
|