8
0
Просмотр исходного кода

addObserver returns observer instance.

Piotr Jasiun 9 лет назад
Родитель
Сommit
c929051f9a

+ 4 - 0
packages/ckeditor5-engine/src/treeview/treeview.js

@@ -103,6 +103,8 @@ export default class TreeView {
 	 *
 	 *
 	 * @param {Function} Observer The constructor of an observer to add.
 	 * @param {Function} Observer The constructor of an observer to add.
 	 * Should create an instance inheriting from {@link engine.treeView.observer.Observer}.
 	 * Should create an instance inheriting from {@link engine.treeView.observer.Observer}.
+	 *
+	 * @returns {engine.treeView.observer.Observer} Added observer instance.
 	 */
 	 */
 	addObserver( Observer ) {
 	addObserver( Observer ) {
 		if ( this._observers.has( Observer ) ) {
 		if ( this._observers.has( Observer ) ) {
@@ -118,6 +120,8 @@ export default class TreeView {
 		}
 		}
 
 
 		observer.enable();
 		observer.enable();
+
+		return observer;
 	}
 	}
 
 
 	/**
 	/**

+ 2 - 5
packages/ckeditor5-engine/tests/treeview/observer/domeventobserver.js

@@ -95,10 +95,9 @@ describe( 'DomEventObserver', () => {
 		const evtSpy = sinon.spy();
 		const evtSpy = sinon.spy();
 
 
 		treeView.createRoot( domElement, 'root' );
 		treeView.createRoot( domElement, 'root' );
-		treeView.addObserver( ClickObserver );
+		const testObserver = treeView.addObserver( ClickObserver );
 		treeView.on( 'click', evtSpy );
 		treeView.on( 'click', evtSpy );
 
 
-		const testObserver = treeView.getObserver( ClickObserver );
 		testObserver.disable();
 		testObserver.disable();
 
 
 		domElement.dispatchEvent( domEvent );
 		domElement.dispatchEvent( domEvent );
@@ -113,11 +112,9 @@ describe( 'DomEventObserver', () => {
 		const evtSpy = sinon.spy();
 		const evtSpy = sinon.spy();
 
 
 		treeView.createRoot( domElement, 'root' );
 		treeView.createRoot( domElement, 'root' );
-		treeView.addObserver( ClickObserver );
+		const testObserver = treeView.addObserver( ClickObserver );
 		treeView.on( 'click', evtSpy );
 		treeView.on( 'click', evtSpy );
 
 
-		const testObserver = treeView.getObserver( ClickObserver );
-
 		testObserver.disable();
 		testObserver.disable();
 
 
 		domElement.dispatchEvent( domEvent );
 		domElement.dispatchEvent( domEvent );

+ 1 - 3
packages/ckeditor5-engine/tests/treeview/observer/focusobserver.js

@@ -15,9 +15,7 @@ describe( 'FocusObserver', () => {
 
 
 	beforeEach( () => {
 	beforeEach( () => {
 		treeView = new TreeView();
 		treeView = new TreeView();
-		treeView.addObserver( FocusObserver );
-
-		observer = treeView.getObserver( FocusObserver );
+		observer = treeView.addObserver( FocusObserver );
 	} );
 	} );
 
 
 	it( 'should define domEventType', () => {
 	it( 'should define domEventType', () => {

+ 1 - 3
packages/ckeditor5-engine/tests/treeview/observer/keyobserver.js

@@ -16,9 +16,7 @@ describe( 'KeyObserver', () => {
 
 
 	beforeEach( () => {
 	beforeEach( () => {
 		treeView = new TreeView();
 		treeView = new TreeView();
-		treeView.addObserver( KeyObserver );
-
-		observer = treeView.getObserver( KeyObserver );
+		observer = treeView.addObserver( KeyObserver );
 	} );
 	} );
 
 
 	it( 'should define domEventType', () => {
 	it( 'should define domEventType', () => {

+ 1 - 2
packages/ckeditor5-engine/tests/treeview/observer/mutationobserver.js

@@ -23,8 +23,7 @@ describe( 'MutationObserver', () => {
 		treeView.selection.removeAllRanges();
 		treeView.selection.removeAllRanges();
 		document.getSelection().removeAllRanges();
 		document.getSelection().removeAllRanges();
 
 
-		treeView.addObserver( MutationObserver );
-		mutationObserver = treeView.getObserver( MutationObserver );
+		mutationObserver = treeView.addObserver( MutationObserver );
 
 
 		treeView.on( 'mutations', ( evt, mutations ) => lastMutations = mutations );
 		treeView.on( 'mutations', ( evt, mutations ) => lastMutations = mutations );
 
 

+ 24 - 14
packages/ckeditor5-engine/tests/treeview/treeview/treeview.js

@@ -94,14 +94,11 @@ describe( 'TreeView', () => {
 			const domDiv2 = document.createElement( 'div' );
 			const domDiv2 = document.createElement( 'div' );
 			domDiv2.setAttribute( 'id', 'editor' );
 			domDiv2.setAttribute( 'id', 'editor' );
 
 
-			treeView.addObserver( ObserverMock );
-			treeView.addObserver( ObserverMockGlobalCount );
+			const observerMock = treeView.addObserver( ObserverMock );
+			const observerMockGlobalCount = treeView.addObserver( ObserverMockGlobalCount );
 
 
 			treeView.createRoot( document.createElement( 'div' ), 'root1' );
 			treeView.createRoot( document.createElement( 'div' ), 'root1' );
 
 
-			const observerMock = treeView.getObserver( ObserverMock );
-			const observerMockGlobalCount = treeView.getObserver( ObserverMockGlobalCount );
-
 			sinon.assert.calledOnce( observerMock.observe );
 			sinon.assert.calledOnce( observerMock.observe );
 			sinon.assert.calledOnce( observerMockGlobalCount.observe );
 			sinon.assert.calledOnce( observerMockGlobalCount.observe );
 		} );
 		} );
@@ -153,12 +150,10 @@ describe( 'TreeView', () => {
 		} );
 		} );
 
 
 		it( 'should be instantiated and enabled on adding', () => {
 		it( 'should be instantiated and enabled on adding', () => {
-			treeView.addObserver( ObserverMock );
+			const observerMock = treeView.addObserver( ObserverMock );
 
 
 			expect( treeView._observers.size ).to.equal( 1 );
 			expect( treeView._observers.size ).to.equal( 1 );
 
 
-			const observerMock = treeView.getObserver( ObserverMock );
-
 			expect( observerMock ).to.have.property( 'treeView', treeView );
 			expect( observerMock ).to.have.property( 'treeView', treeView );
 			sinon.assert.calledOnce( observerMock.enable );
 			sinon.assert.calledOnce( observerMock.enable );
 		} );
 		} );
@@ -190,11 +185,9 @@ describe( 'TreeView', () => {
 		} );
 		} );
 
 
 		it( 'should be disabled and re-enabled on render', () => {
 		it( 'should be disabled and re-enabled on render', () => {
-			treeView.addObserver( ObserverMock );
+			const observerMock = treeView.addObserver( ObserverMock );
 			treeView.render();
 			treeView.render();
 
 
-			const observerMock = treeView.getObserver( ObserverMock );
-
 			sinon.assert.calledOnce( observerMock.disable );
 			sinon.assert.calledOnce( observerMock.disable );
 			sinon.assert.calledOnce( treeView.renderer.render );
 			sinon.assert.calledOnce( treeView.renderer.render );
 			sinon.assert.calledTwice( observerMock.enable );
 			sinon.assert.calledTwice( observerMock.enable );
@@ -204,11 +197,28 @@ describe( 'TreeView', () => {
 			treeView.createRoot( document.createElement( 'div' ), 'root1' );
 			treeView.createRoot( document.createElement( 'div' ), 'root1' );
 			treeView.createRoot( document.createElement( 'div' ), 'root2' );
 			treeView.createRoot( document.createElement( 'div' ), 'root2' );
 
 
-			treeView.addObserver( ObserverMock );
-
-			const observerMock = treeView.getObserver( ObserverMock );
+			const observerMock = treeView.addObserver( ObserverMock );
 
 
 			sinon.assert.calledTwice( observerMock.observe );
 			sinon.assert.calledTwice( observerMock.observe );
 		} );
 		} );
 	} );
 	} );
+
+	describe( 'getObserver', () => {
+		it( 'should return observer it it is added', () => {
+			const treeView = new TreeView();
+
+			const addedObserverMock = treeView.addObserver( ObserverMock );
+			const getObserverMock = treeView.getObserver( ObserverMock );
+
+			expect( getObserverMock ).to.be.instanceof( ObserverMock );
+			expect( getObserverMock ).to.equal( addedObserverMock );
+		} );
+
+		it( 'should return undefined if observer is not added', () => {
+			const treeView = new TreeView();
+			const getObserverMock = treeView.getObserver( ObserverMock );
+
+			expect( getObserverMock ).to.be.undefined();
+		} );
+	} );
 } );
 } );