integration.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. // https://github.com/ckeditor/ckeditor5/issues/1684
  24. it( 'should make the placeholder CSS class disappear when pasting a new media into an empty editing root', async () => {
  25. const editor = await ClassicTestEditor.create( element, {
  26. plugins: [ MediaEmbed, Paragraph ]
  27. } );
  28. enablePlaceholder( {
  29. view: editor.editing.view,
  30. element: editor.editing.view.document.getRoot(),
  31. text: 'foo',
  32. isDirectHost: false
  33. } );
  34. editor.editing.view.document.fire( 'paste', {
  35. dataTransfer: {
  36. getData() {
  37. return 'https://www.youtube.com/watch?v=H08tGjXNHO4';
  38. }
  39. },
  40. stopPropagation() {},
  41. preventDefault() {}
  42. } );
  43. clock.tick( 100 );
  44. expect( getViewData( editor.editing.view ) ).to.equal(
  45. '[<figure class="ck-widget ck-widget_selected media" contenteditable="false" data-placeholder="foo">' +
  46. '<div class="ck-media__wrapper" data-oembed-url="https://www.youtube.com/watch?v=H08tGjXNHO4"></div>' +
  47. '<div class="ck ck-reset_all ck-widget__type-around"></div>' +
  48. '</figure>]'
  49. );
  50. await editor.destroy();
  51. } );
  52. } );
  53. } );