瀏覽代碼

Internal: Extracted SpecialCharactersEditing plugin.

Marek Lewandowski 6 年之前
父節點
當前提交
7ae273f32b

+ 2 - 2
packages/ckeditor5-special-characters/src/specialcharacters.js

@@ -8,9 +8,9 @@
  */
 
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
-import Typing from '@ckeditor/ckeditor5-typing/src/typing';
 import CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';
 import SpecialCharactersUI from './specialcharactersui';
+import SpecialCharactersEditing from './specialcharactersediting';
 
 /**
  * The special characters feature.
@@ -42,7 +42,7 @@ export default class SpecialCharacters extends Plugin {
 	 * @inheritDoc
 	 */
 	static get requires() {
-		return [ Typing, SpecialCharactersUI ];
+		return [ SpecialCharactersEditing, SpecialCharactersUI ];
 	}
 
 	/**

+ 45 - 0
packages/ckeditor5-special-characters/src/specialcharactersediting.js

@@ -0,0 +1,45 @@
+/**
+ * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+
+/**
+ * @module special-characters/specialcharactersediting
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import Typing from '@ckeditor/ckeditor5-typing/src/typing';
+import InsertSpecialCharacterCommand from './insertspecialcharactercommand';
+
+/**
+ * Special characters editing plugin.
+ *
+ * It registers the {@link module:special-characters/insertspecialcharactercommand~InsertSpecialCharacterCommand Special Character} command.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class SpecialCharactersEditing extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	static get pluginName() {
+		return 'SpecialCharactersEditing';
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	static get requires() {
+		return [ Typing ];
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	init() {
+		const editor = this.editor;
+
+		const command = new InsertSpecialCharacterCommand( editor );
+		editor.commands.add( 'specialCharacters', command );
+	}
+}

+ 1 - 4
packages/ckeditor5-special-characters/src/specialcharactersui.js

@@ -10,7 +10,6 @@
 import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
 import { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';
 import specialCharactersIcon from '../theme/icons/specialcharacters.svg';
-import InsertSpecialCharacterCommand from './insertspecialcharactercommand';
 import SpecialCharactersTableView from './ui/specialcharacterstableview';
 import SpecialCharactersSelectView from './ui/specialcharactersselectview';
 
@@ -25,9 +24,7 @@ export default class SpecialCharactersUI extends Plugin {
 		const t = editor.t;
 		const specialCharacterPlugin = editor.plugins.get( 'SpecialCharacters' );
 		const label = t( 'Special characters' );
-
-		const command = new InsertSpecialCharacterCommand( editor );
-		editor.commands.add( 'specialCharacters', command );
+		const command = editor.commands.get( 'specialCharacters' );
 
 		// Add the `specialCharacters` dropdown button to feature components.
 		editor.ui.componentFactory.add( 'specialCharacters', locale => {

+ 3 - 3
packages/ckeditor5-special-characters/tests/specialcharacters.js

@@ -5,7 +5,7 @@
 
 import SpecialCharacters from '../src/specialcharacters';
 import SpecialCharactersUI from '../src/specialcharactersui';
-import Typing from '@ckeditor/ckeditor5-typing/src/typing';
+import SpecialCharactersEditing from '../src/specialcharactersediting';
 import { expectToThrowCKEditorError } from '@ckeditor/ckeditor5-utils/tests/_utils/utils';
 
 describe( 'SpecialCharacters', () => {
@@ -15,8 +15,8 @@ describe( 'SpecialCharacters', () => {
 		plugin = new SpecialCharacters( {} );
 	} );
 
-	it( 'should require Typing and SpecialCharactersUI', () => {
-		expect( SpecialCharacters.requires ).to.deep.equal( [ Typing, SpecialCharactersUI ] );
+	it( 'should require proper plugins', () => {
+		expect( SpecialCharacters.requires ).to.deep.equal( [ SpecialCharactersEditing, SpecialCharactersUI ] );
 	} );
 
 	it( 'should be named', () => {

+ 35 - 0
packages/ckeditor5-special-characters/tests/specialcharactersediting.js

@@ -0,0 +1,35 @@
+/**
+ * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+
+import SpecialCharactersEditing from '../src/specialcharactersediting';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
+import InsertSpecialCharacterCommand from '../src/insertspecialcharactercommand';
+
+describe( 'SpecialCharactersEditing', () => {
+	let editor;
+
+	beforeEach( () => {
+		return VirtualTestEditor
+			.create( {
+				plugins: [ SpecialCharactersEditing, Paragraph ]
+			} )
+			.then( newEditor => {
+				editor = newEditor;
+			} );
+	} );
+
+	afterEach( () => {
+		return editor.destroy();
+	} );
+
+	it( 'should have proper pluginName', () => {
+		expect( SpecialCharactersEditing.pluginName ).to.equal( 'SpecialCharactersEditing' );
+	} );
+
+	it( 'adds a command', () => {
+		expect( editor.commands.get( 'specialCharacters' ) ).to.be.instanceOf( InsertSpecialCharacterCommand );
+	} );
+} );