8
0

integration.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. /* global document */
  6. import MediaEmbed from '../src/mediaembed';
  7. import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
  8. import ClassicTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/classictesteditor';
  9. import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
  10. import { enablePlaceholder } from '@ckeditor/ckeditor5-engine/src/view/placeholder';
  11. describe( 'MediaEmbed integration', () => {
  12. let element, clock;
  13. beforeEach( () => {
  14. clock = sinon.useFakeTimers();
  15. element = document.createElement( 'div' );
  16. document.body.appendChild( element );
  17. } );
  18. afterEach( () => {
  19. element.remove();
  20. clock.restore();
  21. } );
  22. describe( 'with the placeholder feature', () => {
  23. it( 'should make the placeholder CSS class disappear when pasting a new media into an empty editing root', async () => {
  24. const editor = await ClassicTestEditor.create( element, {
  25. plugins: [ MediaEmbed, Paragraph ]
  26. } );
  27. enablePlaceholder( {
  28. view: editor.editing.view,
  29. element: editor.editing.view.document.getRoot(),
  30. text: 'foo',
  31. isDirectHost: false
  32. } );
  33. editor.editing.view.document.fire( 'paste', {
  34. dataTransfer: {
  35. getData() {
  36. return 'https://www.youtube.com/watch?v=H08tGjXNHO4';
  37. }
  38. },
  39. stopPropagation() {},
  40. preventDefault() {}
  41. } );
  42. clock.tick( 100 );
  43. expect( getViewData( editor.editing.view ) ).to.equal(
  44. '[<figure class="ck-widget ck-widget_selected media" contenteditable="false" data-placeholder="foo">' +
  45. '<div class="ck-media__wrapper" data-oembed-url="https://www.youtube.com/watch?v=H08tGjXNHO4"></div>' +
  46. '<div class="ck ck-reset_all ck-widget__type-around"></div>' +
  47. '</figure>]'
  48. );
  49. await editor.destroy();
  50. } );
  51. } );
  52. } );