Преглед изворни кода

Adjusted tests to new engine's API.

Kamil Piechaczek пре 5 година
родитељ
комит
ab29ba6281

+ 2 - 2
packages/ckeditor5-paste-from-office/src/filters/list.js

@@ -27,7 +27,7 @@ export function transformListItemLikeElementsIntoLists( documentFragment, styles
 		return;
 		return;
 	}
 	}
 
 
-	const writer = new UpcastWriter();
+	const writer = new UpcastWriter( documentFragment.document );
 	const itemLikeElements = findAllItemLikeElements( documentFragment, writer );
 	const itemLikeElements = findAllItemLikeElements( documentFragment, writer );
 
 
 	if ( !itemLikeElements.length ) {
 	if ( !itemLikeElements.length ) {
@@ -160,7 +160,7 @@ function detectListStyle( listLikeItem, stylesString ) {
 // @param {module:engine/view/upcastwriter~UpcastWriter} writer
 // @param {module:engine/view/upcastwriter~UpcastWriter} writer
 // @returns {module:engine/view/element~Element} Newly created list element.
 // @returns {module:engine/view/element~Element} Newly created list element.
 function insertNewEmptyList( listStyle, element, writer ) {
 function insertNewEmptyList( listStyle, element, writer ) {
-	const list = new Element( listStyle.type );
+	const list = new Element( writer.document, listStyle.type );
 	const position = element.parent.getChildIndex( element );
 	const position = element.parent.getChildIndex( element );
 
 
 	writer.insertChild( position, list, element.parent );
 	writer.insertChild( position, list, element.parent );

+ 2 - 1
packages/ckeditor5-paste-from-office/src/filters/parse.js

@@ -10,6 +10,7 @@
 /* globals DOMParser */
 /* globals DOMParser */
 
 
 import DomConverter from '@ckeditor/ckeditor5-engine/src/view/domconverter';
 import DomConverter from '@ckeditor/ckeditor5-engine/src/view/domconverter';
+import ViewDocument from '@ckeditor/ckeditor5-engine/src/view/document';
 
 
 import { normalizeSpacing, normalizeSpacerunSpans } from './space';
 import { normalizeSpacing, normalizeSpacerunSpans } from './space';
 
 
@@ -68,7 +69,7 @@ function documentToView( htmlDocument ) {
 		fragment.appendChild( nodes[ 0 ] );
 		fragment.appendChild( nodes[ 0 ] );
 	}
 	}
 
 
-	return domConverter.domToView( fragment );
+	return domConverter.domToView( new ViewDocument(), fragment );
 }
 }
 
 
 // Extracts both `CSSStyleSheet` and string representation from all `style` elements available in a provided `htmlDocument`.
 // Extracts both `CSSStyleSheet` and string representation from all `style` elements available in a provided `htmlDocument`.

+ 9 - 1
packages/ckeditor5-paste-from-office/src/normalizers/googledocsnormalizer.js

@@ -19,6 +19,14 @@ const googleDocsMatch = /id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;
  * @implements module:paste-from-office/normalizer~Normalizer
  * @implements module:paste-from-office/normalizer~Normalizer
  */
  */
 export default class GoogleDocsNormalizer {
 export default class GoogleDocsNormalizer {
+	constructor( document ) {
+		/**
+		 * @readonly
+		 * @type {module:engine/view/document~Document}
+		 */
+		this.document = document;
+	}
+
 	/**
 	/**
 	 * @inheritDoc
 	 * @inheritDoc
 	 */
 	 */
@@ -30,7 +38,7 @@ export default class GoogleDocsNormalizer {
 	 * @inheritDoc
 	 * @inheritDoc
 	 */
 	 */
 	execute( data ) {
 	execute( data ) {
-		const writer = new UpcastWriter();
+		const writer = new UpcastWriter( this.document );
 
 
 		removeBoldWrapper( data.content, writer );
 		removeBoldWrapper( data.content, writer );
 		unwrapParagraphInListItem( data.content, writer );
 		unwrapParagraphInListItem( data.content, writer );

+ 1 - 1
packages/ckeditor5-paste-from-office/src/pastefromoffice.js

@@ -51,7 +51,7 @@ export default class PasteFromOffice extends Plugin {
 		const normalizers = [];
 		const normalizers = [];
 
 
 		normalizers.push( new MSWordNormalizer() );
 		normalizers.push( new MSWordNormalizer() );
-		normalizers.push( new GoogleDocsNormalizer() );
+		normalizers.push( new GoogleDocsNormalizer( editor.editing.view.document ) );
 
 
 		editor.plugins.get( 'Clipboard' ).on(
 		editor.plugins.get( 'Clipboard' ).on(
 			'inputTransformation',
 			'inputTransformation',

+ 10 - 9
packages/ckeditor5-paste-from-office/tests/filters/list.js

@@ -5,7 +5,7 @@
 
 
 import HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';
 import HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';
 import { stringify } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
 import { stringify } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
-import View from '@ckeditor/ckeditor5-engine/src/view/view';
+import Document from '@ckeditor/ckeditor5-engine/src/view/document';
 import UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';
 import UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';
 
 
 import {
 import {
@@ -22,7 +22,7 @@ describe( 'PasteFromOffice - filters', () => {
 				const html = '<p style="mso-list:l0 level1 lfo0"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const html = '<p style="mso-list:l0 level1 lfo0"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const view = htmlDataProcessor.toView( html );
 				const view = htmlDataProcessor.toView( html );
 
 
-				transformListItemLikeElementsIntoLists( view, '', new View() );
+				transformListItemLikeElementsIntoLists( view, '' );
 
 
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
@@ -33,7 +33,7 @@ describe( 'PasteFromOffice - filters', () => {
 				const html = '<p style="mso-list:l0 level1 lfo0"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const html = '<p style="mso-list:l0 level1 lfo0"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const view = htmlDataProcessor.toView( html );
 				const view = htmlDataProcessor.toView( html );
 
 
-				transformListItemLikeElementsIntoLists( view, '@list l0:level1 { mso-level-number-format: bullet; }', new View() );
+				transformListItemLikeElementsIntoLists( view, '@list l0:level1 { mso-level-number-format: bullet; }' );
 
 
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.getChild( 0 ).name ).to.equal( 'ul' );
 				expect( view.getChild( 0 ).name ).to.equal( 'ul' );
@@ -44,7 +44,7 @@ describe( 'PasteFromOffice - filters', () => {
 				const html = '<h1>H1</h1><p>Foo Bar</p>';
 				const html = '<h1>H1</h1><p>Foo Bar</p>';
 				const view = htmlDataProcessor.toView( html );
 				const view = htmlDataProcessor.toView( html );
 
 
-				transformListItemLikeElementsIntoLists( view, '', new View() );
+				transformListItemLikeElementsIntoLists( view, '' );
 
 
 				expect( view.childCount ).to.equal( 2 );
 				expect( view.childCount ).to.equal( 2 );
 				expect( stringify( view ) ).to.equal( html );
 				expect( stringify( view ) ).to.equal( html );
@@ -54,7 +54,7 @@ describe( 'PasteFromOffice - filters', () => {
 				const html = '<p style="mso-list:"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const html = '<p style="mso-list:"><span style="mso-list:Ignore">1.</span>Item 1</p>';
 				const view = htmlDataProcessor.toView( html );
 				const view = htmlDataProcessor.toView( html );
 
 
-				transformListItemLikeElementsIntoLists( view, '', new View() );
+				transformListItemLikeElementsIntoLists( view, '' );
 
 
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
@@ -65,7 +65,7 @@ describe( 'PasteFromOffice - filters', () => {
 				const html = '<p style="mso-list:none">not numbered<o:p></o:p></p>';
 				const html = '<p style="mso-list:none">not numbered<o:p></o:p></p>';
 				const view = htmlDataProcessor.toView( html );
 				const view = htmlDataProcessor.toView( html );
 
 
-				transformListItemLikeElementsIntoLists( view, '', new View() );
+				transformListItemLikeElementsIntoLists( view, '' );
 
 
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.childCount ).to.equal( 1 );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
 				expect( view.getChild( 0 ).name ).to.equal( 'ol' );
@@ -75,7 +75,7 @@ describe( 'PasteFromOffice - filters', () => {
 			it( 'handles empty body correctly', () => {
 			it( 'handles empty body correctly', () => {
 				const view = htmlDataProcessor.toView( '' );
 				const view = htmlDataProcessor.toView( '' );
 
 
-				transformListItemLikeElementsIntoLists( view, '', new View() );
+				transformListItemLikeElementsIntoLists( view, '' );
 
 
 				expect( view.childCount ).to.equal( 0 );
 				expect( view.childCount ).to.equal( 0 );
 				expect( stringify( view ) ).to.equal( '' );
 				expect( stringify( view ) ).to.equal( '' );
@@ -85,10 +85,11 @@ describe( 'PasteFromOffice - filters', () => {
 
 
 	describe( 'list - paste from google docs', () => {
 	describe( 'list - paste from google docs', () => {
 		const htmlDataProcessor = new HtmlDataProcessor();
 		const htmlDataProcessor = new HtmlDataProcessor();
-		let writer;
+		let writer, viewDocument;
 
 
 		before( () => {
 		before( () => {
-			writer = new UpcastWriter();
+			viewDocument = new Document();
+			writer = new UpcastWriter( viewDocument );
 		} );
 		} );
 
 
 		describe( 'unwrapParagraphInListItem', () => {
 		describe( 'unwrapParagraphInListItem', () => {

+ 4 - 2
packages/ckeditor5-paste-from-office/tests/filters/reomoveboldwrapper.js

@@ -6,14 +6,16 @@
 import HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';
 import HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';
 import removeBoldWrapper from '../../src/filters/removeboldwrapper';
 import removeBoldWrapper from '../../src/filters/removeboldwrapper';
 import UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';
 import UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';
+import Document from '@ckeditor/ckeditor5-engine/src/view/document';
 
 
 describe( 'PasteFromOffice - filters', () => {
 describe( 'PasteFromOffice - filters', () => {
 	const htmlDataProcessor = new HtmlDataProcessor();
 	const htmlDataProcessor = new HtmlDataProcessor();
 	describe( 'removeBoldWrapper', () => {
 	describe( 'removeBoldWrapper', () => {
-		let writer;
+		let writer, viewDocument;
 
 
 		before( () => {
 		before( () => {
-			writer = new UpcastWriter();
+			viewDocument = new Document();
+			writer = new UpcastWriter( viewDocument );
 		} );
 		} );
 
 
 		it( 'should remove bold wrapper added by google docs', () => {
 		it( 'should remove bold wrapper added by google docs', () => {