From 787b3558b6dc17c155c4e197f0bf72685a58f33a Mon Sep 17 00:00:00 2001 From: Aleksander Nowodzinski Date: Tue, 4 Jul 2017 11:59:26 +0200 Subject: [PATCH] Aligned Editor Inline package to the synchronous UI API. --- src/inlineeditor.js | 11 ++++--- src/inlineeditorui.js | 27 +++++++---------- src/inlineeditoruiview.js | 5 ++-- tests/inlineeditorui.js | 59 +++++++++++-------------------------- tests/inlineeditoruiview.js | 24 ++++++--------- 5 files changed, 47 insertions(+), 79 deletions(-) diff --git a/src/inlineeditor.js b/src/inlineeditor.js index f524715..3443cc9 100644 --- a/src/inlineeditor.js +++ b/src/inlineeditor.js @@ -47,8 +47,9 @@ export default class InlineEditor extends StandardEditor { // It's safe to assume that the model->view conversion will not work after super.destroy(). const data = this.getData(); - return this.ui.destroy() - .then( () => super.destroy() ) + this.ui.destroy(); + + return super.destroy() .then( () => setDataInElement( this.element, data ) ); } @@ -77,8 +78,10 @@ export default class InlineEditor extends StandardEditor { resolve( editor.initPlugins() - .then( () => editor.ui.init() ) - .then( () => editor.fire( 'uiReady' ) ) + .then( () => { + editor.ui.init(); + editor.fire( 'uiReady' ); + } ) .then( () => editor.loadDataFromEditorElement() ) .then( () => { editor.fire( 'dataReady' ); diff --git a/src/inlineeditorui.js b/src/inlineeditorui.js index 94b20aa..00a62c9 100644 --- a/src/inlineeditorui.js +++ b/src/inlineeditorui.js @@ -73,32 +73,25 @@ export default class InlineEditorUI { /** * Initializes the UI. - * - * @returns {Promise} A Promise resolved when the initialization process is finished. */ init() { const editor = this.editor; - return this.view.init() - .then( () => { - return this.view.toolbar.fillFromConfig( editor.config.get( 'toolbar' ), this.componentFactory ); - } ) - .then( () => { - enableToolbarKeyboardFocus( { - origin: editor.editing.view, - originFocusTracker: this.focusTracker, - originKeystrokeHandler: editor.keystrokes, - toolbar: this.view.toolbar - } ); - } ); + this.view.init(); + this.view.toolbar.fillFromConfig( editor.config.get( 'toolbar' ), this.componentFactory ); + + enableToolbarKeyboardFocus( { + origin: editor.editing.view, + originFocusTracker: this.focusTracker, + originKeystrokeHandler: editor.keystrokes, + toolbar: this.view.toolbar + } ); } /** * Destroys the UI. - * - * @returns {Promise} A Promise resolved when the destruction process is finished. */ destroy() { - return this.view.destroy(); + this.view.destroy(); } } diff --git a/src/inlineeditoruiview.js b/src/inlineeditoruiview.js index 44a9ddc..96ae2f1 100644 --- a/src/inlineeditoruiview.js +++ b/src/inlineeditoruiview.js @@ -100,8 +100,9 @@ export default class InlineEditorUIView extends EditorUIView { * @inheritDoc */ init() { - return super.init() - .then( () => this.panel.content.add( this.toolbar ) ); + super.init(); + + this.panel.content.add( this.toolbar ); } /** diff --git a/tests/inlineeditorui.js b/tests/inlineeditorui.js index 56c14bb..d65a7f4 100644 --- a/tests/inlineeditorui.js +++ b/tests/inlineeditorui.js @@ -123,71 +123,48 @@ describe( 'InlineEditorUI', () => { describe( 'init()', () => { afterEach( () => { - return ui.destroy(); - } ); - - it( 'returns a promise', () => { - const promise = ui.init().then( () => { - expect( promise ).to.be.instanceof( Promise ); - } ); - - return promise; + ui.destroy(); } ); it( 'initializes the #view', () => { const spy = sinon.spy( view, 'init' ); - return ui.init().then( () => { - sinon.assert.calledOnce( spy ); - } ); + ui.init(); + sinon.assert.calledOnce( spy ); } ); it( 'fills view.toolbar#items with editor config', () => { const spy = testUtils.sinon.spy( view.toolbar, 'fillFromConfig' ); - return ui.init().then( () => { - sinon.assert.calledWithExactly( spy, editor.config.get( 'toolbar' ), ui.componentFactory ); - } ); + ui.init(); + sinon.assert.calledWithExactly( spy, editor.config.get( 'toolbar' ), ui.componentFactory ); } ); it( 'initializes keyboard navigation between view#toolbar and view#editable', () => { const spy = testUtils.sinon.spy( view.toolbar, 'focus' ); - return ui.init().then( () => { - ui.focusTracker.isFocused = true; - ui.view.toolbar.focusTracker.isFocused = false; - - editor.keystrokes.press( { - keyCode: keyCodes.f10, - altKey: true, - preventDefault: sinon.spy(), - stopPropagation: sinon.spy() - } ); + ui.init(); + ui.focusTracker.isFocused = true; + ui.view.toolbar.focusTracker.isFocused = false; - sinon.assert.calledOnce( spy ); + editor.keystrokes.press( { + keyCode: keyCodes.f10, + altKey: true, + preventDefault: sinon.spy(), + stopPropagation: sinon.spy() } ); + + sinon.assert.calledOnce( spy ); } ); } ); describe( 'destroy()', () => { - it( 'returns a promise', () => { - return ui.init().then( () => { - const promise = ui.destroy().then( () => { - expect( promise ).to.be.instanceof( Promise ); - } ); - - return promise; - } ); - } ); - it( 'destroys the #view', () => { const spy = sinon.spy( view, 'destroy' ); - return ui.init() - .then( () => ui.destroy() ) - .then( () => { - sinon.assert.calledOnce( spy ); - } ); + ui.init(); + ui.destroy(); + sinon.assert.calledOnce( spy ); } ); } ); } ); diff --git a/tests/inlineeditoruiview.js b/tests/inlineeditoruiview.js index 5af2848..7b8b752 100644 --- a/tests/inlineeditoruiview.js +++ b/tests/inlineeditoruiview.js @@ -67,11 +67,9 @@ describe( 'InlineEditorUIView', () => { it( 'is registered as a child', () => { const spy = sinon.spy( view.editable, 'destroy' ); - return view.init() - .then( () => view.destroy() ) - .then( () => { - sinon.assert.calledOnce( spy ); - } ); + view.init(); + view.destroy(); + sinon.assert.calledOnce( spy ); } ); } ); } ); @@ -80,21 +78,17 @@ describe( 'InlineEditorUIView', () => { it( 'appends #toolbar to panel#content', () => { expect( view.panel.content ).to.have.length( 0 ); - return view.init() - .then( () => { - expect( view.panel.content.get( 0 ) ).to.equal( view.toolbar ); - } ) - .then( () => view.destroy() ); + view.init(); + expect( view.panel.content.get( 0 ) ).to.equal( view.toolbar ); + view.destroy(); } ); } ); describe( 'editableElement', () => { it( 'returns editable\'s view element', () => { - return view.init() - .then( () => { - expect( view.editableElement.getAttribute( 'contentEditable' ) ).to.equal( 'true' ); - } ) - .then( () => view.destroy() ); + view.init(); + expect( view.editableElement.getAttribute( 'contentEditable' ) ).to.equal( 'true' ); + view.destroy(); } ); } );