Browse Source

Other: The escPressHandler function should be replaced by the KeystrokeHandler. Closes #150.

BREAKING CHANGE: The `escPressHandler` is no longer available. Please
refer to the `KeystrokeHandler` helper to learn more.
Aleksander Nowodzinski 8 years ago
parent
commit
90e04b596b

+ 0 - 28
packages/ckeditor5-ui/src/bindings/escpresshandler.js

@@ -1,28 +0,0 @@
-/**
- * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
-
-/**
- * @module ui/bindings/escpresshandler
- */
-
-/* global document */
-
-import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
-
-/**
- * Detects <kbd>Esc</kbd> `keydown` DOM event and fires an action.
- *
- * @param {Object} options Configuration options.
- * @param {module:utils/dom/emittermixin~Emitter} options.emitter The emitter to which this behavior should be added.
- * @param {Function} options.activator Function returning a `Boolean`, to determine whether handler is active.
- * @param {Function} options.callback Function fired after <kbd>Esc</kbd> is pressed.
- */
-export default function escPressHandler( { emitter, activator, callback } ) {
-	emitter.listenTo( document, 'keydown', ( evt, { keyCode } ) => {
-		if ( keyCode == keyCodes.esc && activator() ) {
-			callback();
-		}
-	} );
-}

+ 0 - 141
packages/ckeditor5-ui/tests/bindings/escpresshandler.js

@@ -1,141 +0,0 @@
-/**
- * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
-
-/* global document */
-
-import escPressHandler from '../../src/bindings/escpresshandler';
-
-import DomEmitterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';
-import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
-
-import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
-
-testUtils.createSinonSandbox();
-
-describe( 'escPressHandler', () => {
-	let emitter, actionSpy, activator;
-
-	beforeEach( () => {
-		activator = testUtils.sinon.stub().returns( false );
-		actionSpy = testUtils.sinon.spy();
-		emitter = Object.create( DomEmitterMixin );
-
-		escPressHandler( {
-			emitter,
-			activator,
-			callback: actionSpy
-		} );
-	} );
-
-	afterEach( () => {
-		emitter.stopListening();
-	} );
-
-	it( 'should fired callback after pressing `Esc` when listener is active', () => {
-		activator.returns( true );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		sinon.assert.calledOnce( actionSpy );
-	} );
-
-	it( 'should not fired callback after pressing a key different than `Esc`', () => {
-		activator.returns( true );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.ctrlKey );
-
-		sinon.assert.notCalled( actionSpy );
-	} );
-
-	it( 'should not fired callback after pressing Esc when listener is not active', () => {
-		activator.returns( false );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.enter );
-
-		sinon.assert.notCalled( actionSpy );
-	} );
-
-	it( 'should not fired callback after pressing other than Esc key when listener is active', () => {
-		activator.returns( false );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		sinon.assert.notCalled( actionSpy );
-	} );
-
-	it( 'should listen when model initial `ifActive` value was `true`', () => {
-		const spy = testUtils.sinon.spy();
-
-		activator.returns( true );
-
-		emitter = Object.create( DomEmitterMixin );
-
-		escPressHandler( {
-			emitter,
-			activator,
-			callback: spy
-		} );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		sinon.assert.calledOnce( spy );
-	} );
-
-	it( 'should not listen when model initial `ifActive` value was `false`', () => {
-		const spy = testUtils.sinon.spy();
-
-		activator.returns( false );
-
-		emitter = Object.create( DomEmitterMixin );
-
-		escPressHandler( {
-			emitter,
-			activator,
-			callback: spy
-		} );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		sinon.assert.notCalled( spy );
-	} );
-
-	it( 'should react on model `ifActive` property change', () => {
-		activator.returns( true );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		sinon.assert.calledOnce( actionSpy );
-
-		activator.returns( false );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		// Still called once, was not called second time.
-		sinon.assert.calledOnce( actionSpy );
-
-		activator.returns( true );
-
-		dispatchKeyboardEvent( document, 'keydown', keyCodes.esc );
-
-		// Called one more time.
-		sinon.assert.calledTwice( actionSpy );
-	} );
-} );
-
-// Creates and dispatches keyboard event with specified keyCode.
-//
-// @private
-// @param {EventTarget} eventTarget
-// @param {String} eventName
-// @param {Number} keyCode
-function dispatchKeyboardEvent( eventTarget, eventName, keyCode ) {
-	const event = document.createEvent( 'Events' );
-
-	event.initEvent( eventName, true, true );
-	event.which = keyCode;
-	event.keyCode = keyCode;
-
-	eventTarget.dispatchEvent( event );
-}