/** * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md. */ /* globals document */ import ViewDocument from 'ckeditor5/engine/view/document.js'; import EnterObserver from 'ckeditor5/enter/enterobserver.js'; import DomEventData from 'ckeditor5/engine/view/observer/domeventdata.js'; import { getCode } from 'ckeditor5/utils/keyboard.js'; describe( 'EnterObserver', () => { let viewDocument, observer; beforeEach( () => { viewDocument = new ViewDocument(); observer = viewDocument.addObserver( EnterObserver ); } ); // See #10. it( 'can be initialized', () => { expect( () => { viewDocument.createRoot( document.createElement( 'div' ) ); } ).to.not.throw(); } ); describe( 'enter event', () => { it( 'is fired on keydown', () => { const spy = sinon.spy(); viewDocument.on( 'enter', spy ); viewDocument.fire( 'keydown', new DomEventData( viewDocument, getDomEvent(), { keyCode: getCode( 'enter' ) } ) ); expect( spy.calledOnce ).to.be.true; } ); it( 'is not fired on keydown when keyCode does not match enter', () => { const spy = sinon.spy(); viewDocument.on( 'enter', spy ); viewDocument.fire( 'keydown', new DomEventData( viewDocument, getDomEvent(), { keyCode: 1 } ) ); expect( spy.calledOnce ).to.be.false; } ); } ); function getDomEvent() { return { preventDefault: sinon.spy() }; } } );