8
0

datatransfer.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
  4. */
  5. import DataTransfer from '../src/datatransfer';
  6. describe( 'DataTransfer', () => {
  7. describe( 'constructor', () => {
  8. it( 'should create files from the native files', () => {
  9. const dt = new DataTransfer( {
  10. files: {
  11. 0: 'file1',
  12. 1: 'file2',
  13. length: 2
  14. }
  15. } );
  16. expect( dt.files ).to.deep.equal( [ 'file1', 'file2' ] );
  17. } );
  18. it( 'should create files from the native items', () => {
  19. const dt = new DataTransfer( {
  20. items: {
  21. 0: { kind: 'file', getAsFile: () => 'file1' },
  22. 1: { kind: 'file', getAsFile: () => 'file2' },
  23. 2: { kind: 'someOtherKind' },
  24. length: 3
  25. },
  26. files: []
  27. } );
  28. expect( dt.files ).to.deep.equal( [ 'file1', 'file2' ] );
  29. } );
  30. } );
  31. describe( 'getData()', () => {
  32. it( 'should return data from the native data transfer', () => {
  33. const dt = new DataTransfer( {
  34. getData( type ) {
  35. return 'foo:' + type;
  36. }
  37. } );
  38. expect( dt.getData( 'x/y' ) ).to.equal( 'foo:x/y' );
  39. } );
  40. } );
  41. describe( 'setData()', () => {
  42. it( 'should return set data in the native data transfer', () => {
  43. const spy = sinon.spy();
  44. const dt = new DataTransfer( {
  45. setData: spy
  46. } );
  47. dt.setData( 'text/html', 'bar' );
  48. expect( spy.calledWithExactly( 'text/html', 'bar' ) ).to.be.true;
  49. } );
  50. } );
  51. describe( 'types', () => {
  52. it( 'should return available types', () => {
  53. const dt = new DataTransfer( {
  54. types: [ 'text/html', 'text/plain' ]
  55. } );
  56. expect( dt.types ).to.deep.equal( [ 'text/html', 'text/plain' ] );
  57. } );
  58. } );
  59. } );