Przeglądaj źródła

Fixed tests with placeholder.

Szymon Kupś 8 lat temu
rodzic
commit
f39deb2aad

+ 1 - 1
packages/ckeditor5-engine/src/view/placeholder.js

@@ -45,7 +45,7 @@ export function attachPlaceholder( element, placeholderText, checkFunction ) {
 	// Single listener per document.
 	if ( !documentPlaceholders.has( document ) ) {
 		documentPlaceholders.set( document, new Map() );
-		listener.listenTo( document, 'render', () => updateAllPlaceholders( document ), { priority: 'high' } );
+		listener.listenTo( document, 'change', () => updateAllPlaceholders( document ) );
 	}
 
 	// Store text in element's data attribute.

+ 1 - 1
packages/ckeditor5-engine/src/view/view.js

@@ -252,7 +252,7 @@ export default class View {
 			this._ongoingChange = false;
 
 			// TODO: docs for the event.
-			this.fire( 'change' );
+			this.document.fire( 'change' );
 		}
 	}
 

+ 17 - 12
packages/ckeditor5-engine/tests/view/placeholder.js

@@ -6,15 +6,16 @@
 import { attachPlaceholder, detachPlaceholder } from '../../src/view/placeholder';
 import createViewRoot from './_utils/createroot';
 import ViewContainerElement from '../../src/view/containerelement';
-import ViewDocument from '../../src/view/document';
+import View from '../../src/view/view';
 import ViewRange from '../../src/view/range';
 import { setData } from '../../src/dev-utils/view';
 
 describe( 'placeholder', () => {
-	let viewDocument, viewRoot;
+	let view, viewDocument, viewRoot;
 
 	beforeEach( () => {
-		viewDocument = new ViewDocument();
+		view = new View();
+		viewDocument = view.document;
 		viewRoot = createViewRoot( viewDocument );
 		viewDocument.isFocused = true;
 	} );
@@ -100,8 +101,9 @@ describe( 'placeholder', () => {
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'foo bar baz' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.true;
 
-			viewDocument.selection.setRanges( [ ViewRange.createIn( element ) ] );
-			viewDocument.render();
+			view.change( () => {
+				viewDocument.selection.setRanges( [ ViewRange.createIn( element ) ] );
+			} );
 
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.false;
 		} );
@@ -124,13 +126,15 @@ describe( 'placeholder', () => {
 			attachPlaceholder( element, 'foo bar baz' );
 			setData( viewDocument, '<p>paragraph</p>' );
 
-			viewDocument.render();
+			view.render();
 		} );
 
 		it( 'should allow to add placeholder to elements from different documents', () => {
 			setData( viewDocument, '<div></div><div>{another div}</div>' );
 			const element = viewRoot.getChild( 0 );
-			const secondDocument = new ViewDocument();
+
+			const secondView = new View();
+			const secondDocument = secondView.document;
 			secondDocument.isFocused = true;
 			const secondRoot = createViewRoot( secondDocument );
 			setData( secondDocument, '<div></div><div>{another div}</div>' );
@@ -146,12 +150,13 @@ describe( 'placeholder', () => {
 			expect( secondElement.hasClass( 'ck-placeholder' ) ).to.be.true;
 
 			// Move selection to the elements with placeholders.
-			viewDocument.selection.setRanges( [ ViewRange.createIn( element ) ] );
-			secondDocument.selection.setRanges( [ ViewRange.createIn( secondElement ) ] );
+			view.change( () => {
+				viewDocument.selection.setRanges( [ ViewRange.createIn( element ) ] );
+			} );
 
-			// Render changes.
-			viewDocument.render();
-			secondDocument.render();
+			secondView.change( () => {
+				secondDocument.selection.setRanges( [ ViewRange.createIn( secondElement ) ] );
+			} );
 
 			expect( element.getAttribute( 'data-placeholder' ) ).to.equal( 'first placeholder' );
 			expect( element.hasClass( 'ck-placeholder' ) ).to.be.false;