| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md.
- */
- /* bender-tags: editor */
- 'use strict';
- import Editor from '/ckeditor5/editor.js';
- import Command from '/ckeditor5/command/command.js';
- import Locale from '/ckeditor5/utils/locale.js';
- import CKEditorError from '/ckeditor5/utils/ckeditorerror.js';
- import Document from '/ckeditor5/engine/treemodel/document.js';
- describe( 'Editor', () => {
- describe( 'locale', () => {
- it( 'is instantiated and t() is exposed', () => {
- const editor = new Editor();
- expect( editor.locale ).to.be.instanceof( Locale );
- expect( editor.t ).to.equal( editor.locale.t );
- } );
- it( 'is configured with the config.lang', () => {
- const editor = new Editor( null, { lang: 'pl' } );
- expect( editor.locale.lang ).to.equal( 'pl' );
- } );
- } );
- describe( 'destroy', () => {
- it( 'should fire "destroy"', () => {
- const editor = new Editor();
- let spy = sinon.spy();
- editor.on( 'destroy', spy );
- return editor.destroy().then( () => {
- expect( spy.calledOnce ).to.be.true;
- } );
- } );
- // Note: Tests for destroying creators are in creator/creator.js.
- // When destroying creator will be generalized to destroying plugins,
- // move that code here.
- } );
- describe( 'execute', () => {
- it( 'should execute specified command', () => {
- const editor = new Editor();
- let command = new Command( editor );
- sinon.spy( command, '_execute' );
- editor.commands.set( 'commandName', command );
- editor.execute( 'commandName' );
- expect( command._execute.calledOnce ).to.be.true;
- } );
- it( 'should throw an error if specified command has not been added', () => {
- const editor = new Editor();
- expect( () => {
- editor.execute( 'command' );
- } ).to.throw( CKEditorError, /^editor-command-not-found:/ );
- } );
- } );
- describe( 'setData', () => {
- let editor;
- beforeEach( () => {
- editor = new Editor();
- editor.document = new Document();
- editor.data = {
- set: sinon.spy()
- };
- } );
- it( 'should set data of the first root', () => {
- editor.document.createRoot( 'firstRoot', 'div' );
- editor.setData( 'foo' );
- expect( editor.data.set.calledOnce ).to.be.true;
- expect( editor.data.set.calledWithExactly( 'firstRoot', 'foo' ) ).to.be.true;
- } );
- it( 'should set data of the specified root', () => {
- editor.setData( 'foo', 'someRoot' );
- expect( editor.data.set.calledOnce ).to.be.true;
- expect( editor.data.set.calledWithExactly( 'someRoot', 'foo' ) ).to.be.true;
- } );
- it( 'should throw when no roots', () => {
- expect( () => {
- editor.setData( 'foo' );
- } ).to.throw( CKEditorError, /^editor-no-editable-roots:/ );
- } );
- it( 'should throw when more than one root and no root name given', () => {
- editor.document.createRoot( 'firstRoot', 'div' );
- editor.document.createRoot( 'secondRoot', 'div' );
- expect( () => {
- editor.setData( 'foo' );
- } ).to.throw( CKEditorError, /^editor-editable-root-name-missing:/ );
- } );
- it( 'should throw when no data controller', () => {
- expect( () => {
- editor.data = null;
- editor.setData( 'foo' );
- } ).to.throw( CKEditorError, /^editor-no-datacontroller:/ );
- } );
- } );
- describe( 'getData', () => {
- let editor;
- beforeEach( () => {
- editor = new Editor();
- editor.document = new Document();
- editor.data = {
- get( rootName ) {
- return `data for ${ rootName }`;
- }
- };
- } );
- it( 'should get data from the first root', () => {
- editor.document.createRoot( 'firstRoot', 'div' );
- expect( editor.getData() ).to.equal( 'data for firstRoot' );
- } );
- it( 'should get data from the specified root', () => {
- expect( editor.getData( 'someRoot' ) ).to.equal( 'data for someRoot' );
- } );
- it( 'should throw when no roots', () => {
- expect( () => {
- editor.getData();
- } ).to.throw( CKEditorError, /^editor-no-editable-roots:/ );
- } );
- it( 'should throw when more than one root and no root name given', () => {
- editor.document.createRoot( 'firstRoot', 'div' );
- editor.document.createRoot( 'secondRoot', 'div' );
- expect( () => {
- editor.getData();
- } ).to.throw( CKEditorError, /^editor-editable-root-name-missing:/ );
- } );
- it( 'should throw when no data controller', () => {
- expect( () => {
- editor.data = null;
- editor.getData();
- } ).to.throw( CKEditorError, /^editor-no-datacontroller:/ );
- } );
- } );
- } );
|