Jelajahi Sumber

Tests: added test to the SelectionObserver to check if it is not fired there is not focusedEditable.

Piotr Jasiun 9 tahun lalu
induk
melakukan
5b4281b2cd

+ 14 - 2
packages/ckeditor5-engine/tests/view/observer/selectionobserver.js

@@ -35,14 +35,14 @@ describe( 'SelectionObserver', () => {
 		viewRoot.appendChildren( parse( '<container:p>foo</container:p><container:p>bar</container:p>' ) );
 		viewRoot.appendChildren( parse( '<container:p>foo</container:p><container:p>bar</container:p>' ) );
 
 
 		viewDocument.render();
 		viewDocument.render();
-
-		viewDocument.focusedEditable = viewRoot;
 	} );
 	} );
 
 
 	beforeEach( ( done ) => {
 	beforeEach( ( done ) => {
 		viewDocument.selection.removeAllRanges();
 		viewDocument.selection.removeAllRanges();
 		document.getSelection().removeAllRanges();
 		document.getSelection().removeAllRanges();
 
 
+		viewDocument.focusedEditable = viewRoot;
+
 		viewDocument.getObserver( SelectionObserver ).enable();
 		viewDocument.getObserver( SelectionObserver ).enable();
 
 
 		// Ensure selectionchange will not be fired.
 		// Ensure selectionchange will not be fired.
@@ -112,6 +112,18 @@ describe( 'SelectionObserver', () => {
 		changeDomSelection();
 		changeDomSelection();
 	} );
 	} );
 
 
+	it( 'should not fired if there is no focusedEditable', ( done ) => {
+		viewDocument.focusedEditable = null;
+
+		listenter.listenTo( viewDocument, 'selectionChange', () => {
+			throw 'selectionChange on render';
+		} );
+
+		setTimeout( () => done(), 70 );
+
+		changeDomSelection();
+	} );
+
 	it( 'should call render after selection change which reset selection if it was not changed', ( done ) => {
 	it( 'should call render after selection change which reset selection if it was not changed', ( done ) => {
 		const viewBar = viewDocument.getRoot().getChild( 1 ).getChild( 0 );
 		const viewBar = viewDocument.getRoot().getChild( 1 ).getChild( 0 );
 		viewDocument.selection.addRange( ViewRange.createFromParentsAndOffsets( viewBar, 0, viewBar, 1 ) );
 		viewDocument.selection.addRange( ViewRange.createFromParentsAndOffsets( viewBar, 0, viewBar, 1 ) );