enterobserver.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. import TreeView from '/ckeditor5/engine/treeview/treeview.js';
  7. import EnterObserver from '/ckeditor5/enter/enterobserver.js';
  8. import DomEventData from '/ckeditor5/engine/treeview/observer/domeventdata.js';
  9. import { getCode } from '/ckeditor5/utils/keyboard.js';
  10. describe( 'Enter feature', () => {
  11. let treeView, observer;
  12. beforeEach( () => {
  13. treeView = new TreeView();
  14. observer = treeView.addObserver( EnterObserver );
  15. } );
  16. describe( 'enter event', () => {
  17. it( 'is fired on keydown', () => {
  18. const spy = sinon.spy();
  19. treeView.on( 'enter', spy );
  20. treeView.fire( 'keydown', new DomEventData( treeView, getDomEvent(), {
  21. keyCode: getCode( 'enter' )
  22. } ) );
  23. expect( spy.calledOnce ).to.be.true;
  24. } );
  25. it( 'is not fired on keydown when keyCode does not match enter', () => {
  26. const spy = sinon.spy();
  27. treeView.on( 'enter', spy );
  28. treeView.fire( 'keydown', new DomEventData( treeView, getDomEvent(), {
  29. keyCode: 1
  30. } ) );
  31. expect( spy.calledOnce ).to.be.false;
  32. } );
  33. } );
  34. function getDomEvent() {
  35. return {
  36. preventDefault: sinon.spy()
  37. };
  38. }
  39. } );