浏览代码

Merge branch 'master' into t/273

Piotrek Koszuliński 9 年之前
父节点
当前提交
05056e35f5

+ 4 - 22
packages/ckeditor5-engine/src/treeview/observer/domeventobserver.js

@@ -5,6 +5,8 @@
 
 
 'use strict';
 'use strict';
 
 
+import Observer from './observer.js';
+
 /**
 /**
  * Base class for DOM event observers. This class handles
  * Base class for DOM event observers. This class handles
  * {@link core.treeView.observer.Observer#observe adding} listeners to DOM elements,
  * {@link core.treeView.observer.Observer#observe adding} listeners to DOM elements,
@@ -30,15 +32,9 @@
  * @memberOf core.treeView.observer
  * @memberOf core.treeView.observer
  * @extends core.treeView.observer.Observer
  * @extends core.treeView.observer.Observer
  */
  */
-export default class DomEventObserver {
+export default class DomEventObserver extends Observer {
 	constructor( treeView ) {
 	constructor( treeView ) {
-		/**
-		 * Reference to the {@link core.treeView.TreeView} object.
-		 *
-		 * @readonly
-		 * @member {core.treeView.TreeView} core.treeView.observer.DomEventObserver#treeView
-		 */
-		this.treeView = treeView;
+		super( treeView );
 
 
 		/**
 		/**
 		 * Type of the DOM event the observer should listen on. Array of types can be defined
 		 * Type of the DOM event the observer should listen on. Array of types can be defined
@@ -69,20 +65,6 @@ export default class DomEventObserver {
 		} );
 		} );
 	}
 	}
 
 
-	/**
-	 * @inheritDoc
-	 */
-	enable() {
-		this.isEnabled = true;
-	}
-
-	/**
-	 * @inheritDoc
-	 */
-	disable() {
-		this.isEnabled = false;
-	}
-
 	/**
 	/**
 	 * Calls {@link core.treeView.TreeView#fire} if observer
 	 * Calls {@link core.treeView.TreeView#fire} if observer
 	 * {@link core.treeView.observer.DomEventObserver#isEnabled is enabled}.
 	 * {@link core.treeView.observer.DomEventObserver#isEnabled is enabled}.

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

@@ -84,7 +84,7 @@ export default class MutationObserver extends Observer {
 	 * @inheritDoc
 	 * @inheritDoc
 	 */
 	 */
 	enable() {
 	enable() {
-		this.isEnabled = true;
+		super.enable();
 
 
 		for ( let domElement of this._domElements ) {
 		for ( let domElement of this._domElements ) {
 			this._mutationObserver.observe( domElement, this._config );
 			this._mutationObserver.observe( domElement, this._config );
@@ -95,7 +95,7 @@ export default class MutationObserver extends Observer {
 	 * @inheritDoc
 	 * @inheritDoc
 	 */
 	 */
 	disable() {
 	disable() {
-		this.isEnabled = false;
+		super.disable();
 
 
 		this._mutationObserver.disconnect();
 		this._mutationObserver.disconnect();
 	}
 	}

+ 6 - 4
packages/ckeditor5-engine/src/treeview/observer/observer.js

@@ -45,18 +45,20 @@ export default class Observer {
 	 * However, a child class may not need to be disabled, so it can implement an empty method.
 	 * However, a child class may not need to be disabled, so it can implement an empty method.
 	 *
 	 *
 	 * @see core.treeView.observer.Observer#disable
 	 * @see core.treeView.observer.Observer#disable
-	 *
-	 * @method core.treeView.observer.Observer#enable
 	 */
 	 */
+	enable() {
+		this.isEnabled = true;
+	}
 
 
 	/**
 	/**
 	 * Disables the observer. This method is called before
 	 * Disables the observer. This method is called before
 	 * {@link core.treeView.TreeView#render rendering} to prevent firing events during rendering.
 	 * {@link core.treeView.TreeView#render rendering} to prevent firing events during rendering.
 	 *
 	 *
 	 * @see core.treeView.observer.Observer#enable
 	 * @see core.treeView.observer.Observer#enable
-	 *
-	 * @method core.treeView.observer.Observer#disable
 	 */
 	 */
+	disable() {
+		this.isEnabled = false;
+	}
 
 
 	/**
 	/**
 	 * Starts observing the given root element.
 	 * Starts observing the given root element.

+ 9 - 0
packages/ckeditor5-engine/tests/treeview/observer/domeventobserver.js

@@ -8,6 +8,7 @@
 'use strict';
 'use strict';
 
 
 import DomEventObserver from '/ckeditor5/core/treeview/observer/domeventobserver.js';
 import DomEventObserver from '/ckeditor5/core/treeview/observer/domeventobserver.js';
+import Observer from '/ckeditor5/core/treeview/observer/observer.js';
 import TreeView from '/ckeditor5/core/treeview/treeview.js';
 import TreeView from '/ckeditor5/core/treeview/treeview.js';
 
 
 class ClickObserver extends DomEventObserver {
 class ClickObserver extends DomEventObserver {
@@ -41,6 +42,14 @@ describe( 'DomEventObserver', () => {
 		treeView = new TreeView();
 		treeView = new TreeView();
 	} );
 	} );
 
 
+	describe( 'constructor', () => {
+		it( 'should create Observer with properties', () => {
+			const observer = new DomEventObserver( treeView );
+
+			expect( observer ).to.be.an.instanceof( Observer );
+		} );
+	} );
+
 	it( 'should add event listener', () => {
 	it( 'should add event listener', () => {
 		const domElement = document.createElement( 'p' );
 		const domElement = document.createElement( 'p' );
 		const domEvent = new MouseEvent( 'click' );
 		const domEvent = new MouseEvent( 'click' );

+ 49 - 0
packages/ckeditor5-engine/tests/treeview/observer/observer.js

@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* bender-tags: treeview */
+
+'use strict';
+
+import Observer from '/ckeditor5/core/treeview/observer/observer.js';
+
+describe( 'Observer', () => {
+	describe( 'constructor', () => {
+		it( 'should create Observer with properties', () => {
+			const treeView = {};
+			const observer = new Observer( treeView );
+
+			expect( observer ).to.be.an.instanceof( Observer );
+			expect( observer ).to.have.property( 'treeView' ).that.equals( treeView );
+			expect( observer ).to.have.property( 'isEnabled' ).that.is.false;
+		} );
+	} );
+
+	describe( 'enable', () => {
+		it( 'should set isEnabled to true', () => {
+			const observer = new Observer( {} );
+
+			expect( observer.isEnabled ).to.be.false;
+
+			observer.enable();
+
+			expect( observer.isEnabled ).to.be.true;
+		} );
+	} );
+
+	describe( 'disable', () => {
+		it( 'should set isEnabled to false', () => {
+			const observer = new Observer( {} );
+
+			observer.enable();
+
+			expect( observer.isEnabled ).to.be.true;
+
+			observer.disable();
+
+			expect( observer.isEnabled ).to.be.false;
+		} );
+	} );
+} );