/** * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /* global document */ import ArticlePluginSet from '../_utils/articlepluginset'; import ClassicTestEditor from '../_utils/classictesteditor'; import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials'; import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat'; import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold'; import Heading from '@ckeditor/ckeditor5-heading/src/heading'; import Image from '@ckeditor/ckeditor5-image/src/image'; import ImageCaption from '@ckeditor/ckeditor5-image/src/imagecaption'; import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle'; import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar'; import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic'; import Link from '@ckeditor/ckeditor5-link/src/link'; import List from '@ckeditor/ckeditor5-list/src/list'; import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed'; import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph'; import Table from '@ckeditor/ckeditor5-table/src/table'; import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar'; import normalizeHtml from '@ckeditor/ckeditor5-utils/tests/_utils/normalizehtml'; describe( 'ArticlePluginSet', () => { let editor, editorElement; beforeEach( async () => { editorElement = document.createElement( 'div' ); document.body.appendChild( editorElement ); editor = await ClassicTestEditor.create( editorElement, { plugins: [ ArticlePluginSet ], image: { toolbar: [ 'imageStyle:full', 'imageStyle:side' ] } } ); } ); afterEach( async () => { await editor.destroy(); editorElement.remove(); } ); it( 'should be loaded', () => { expect( editor.plugins.get( ArticlePluginSet ) ).to.be.instanceOf( ArticlePluginSet ); } ); it( 'should load all its dependencies', () => { expect( editor.plugins.get( Essentials ) ).to.be.instanceOf( Essentials ); expect( editor.plugins.get( Autoformat ) ).to.be.instanceOf( Autoformat ); expect( editor.plugins.get( Bold ) ).to.be.instanceOf( Bold ); expect( editor.plugins.get( Heading ) ).to.be.instanceOf( Heading ); expect( editor.plugins.get( Image ) ).to.be.instanceOf( Image ); expect( editor.plugins.get( ImageCaption ) ).to.be.instanceOf( ImageCaption ); expect( editor.plugins.get( ImageStyle ) ).to.be.instanceOf( ImageStyle ); expect( editor.plugins.get( ImageToolbar ) ).to.be.instanceOf( ImageToolbar ); expect( editor.plugins.get( Italic ) ).to.be.instanceOf( Italic ); expect( editor.plugins.get( Link ) ).to.be.instanceOf( Link ); expect( editor.plugins.get( List ) ).to.be.instanceOf( List ); expect( editor.plugins.get( MediaEmbed ) ).to.be.instanceOf( MediaEmbed ); expect( editor.plugins.get( Paragraph ) ).to.be.instanceOf( Paragraph ); expect( editor.plugins.get( Table ) ).to.be.instanceOf( Table ); expect( editor.plugins.get( TableToolbar ) ).to.be.instanceOf( TableToolbar ); } ); it( 'loads data', () => { const data = '

Heading 1

' + '

Paragraph

' + '

Bold Italic Link

' + '' + '
    ' + '
  1. OL List item 1
  2. ' + '
  3. OL List item 2
  4. ' + '
' + '
' + 'bar' + '
Caption
' + '
' + '
' + '

Quote

' + '' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
a1a2
b1b2
' + '
'; // Can't use data twice due to https://github.com/ckeditor/ckeditor5-utils/issues/128. const expectedOutput = '

Heading 1

' + '

Paragraph

' + '

Bold Italic Link

' + '' + '
    ' + '
  1. OL List item 1
  2. ' + '
  3. OL List item 2
  4. ' + '
' + '
' + 'bar' + '
Caption
' + '
' + '
' + '

Quote

' + '' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
a1a2
b1b2
' + '
'; editor.setData( data ); expect( normalizeHtml( editor.getData() ) ).to.equal( expectedOutput ); } ); } );