8
0
Просмотр исходного кода

Other: Extract `createButtonForDropdown()` to own file.

Maciej Gołaszewski 7 лет назад
Родитель
Сommit
f9ed426ec3

+ 19 - 0
packages/ckeditor5-ui/src/dropdown/helpers/createbuttonfordropdown.js

@@ -0,0 +1,19 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import ButtonView from '../../button/buttonview';
+
+/**
+ * @module ui/dropdown/helpers/createbuttonfordropdown
+ */
+
+export default function createButtonForDropdown( model, locale ) {
+	const buttonView = new ButtonView( locale );
+
+	// Dropdown expects "select" event to show contents.
+	buttonView.delegate( 'execute' ).to( buttonView, 'select' );
+
+	return buttonView;
+}

+ 0 - 10
packages/ckeditor5-ui/src/dropdown/utils.js

@@ -8,7 +8,6 @@
  */
 
 import SplitButtonView from '../button/splitbuttonview';
-import ButtonView from '../button/buttonview';
 import DropdownPanelView from './dropdownpanelview';
 import DropdownView from './dropdownview';
 import ToolbarView from '../toolbar/toolbarview';
@@ -18,15 +17,6 @@ import ListItemView from '../list/listitemview';
 // TODO: This should be per-component import AFAIK. It will result in smaller builds that don't use dropdown with toolbar.
 import '../../theme/components/dropdown/toolbardropdown.css';
 
-export function createButtonForDropdown( model, locale ) {
-	const buttonView = new ButtonView( locale );
-
-	// Dropdown expects "select" event to show contents.
-	buttonView.delegate( 'execute' ).to( buttonView, 'select' );
-
-	return buttonView;
-}
-
 export function createSplitButtonForDropdown( model, locale ) {
 	const splitButtonView = new SplitButtonView( locale );
 

+ 37 - 0
packages/ckeditor5-ui/tests/dropdown/helpers/createbuttonfordropdown.js

@@ -0,0 +1,37 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import Model from '../../../src/model';
+
+import ButtonView from '../../../src/button/buttonview';
+
+import createButtonForDropdown from '../../../src/dropdown/helpers/createbuttonfordropdown';
+
+describe( 'createButtonForDropdown()', () => {
+	let buttonView, locale;
+
+	beforeEach( () => {
+		locale = { t() {} };
+		buttonView = createButtonForDropdown( new Model(), locale );
+	} );
+
+	it( 'accepts locale', () => {
+		expect( buttonView.locale ).to.equal( locale );
+	} );
+
+	it( 'returns ButtonView instance', () => {
+		expect( buttonView ).to.be.instanceof( ButtonView );
+	} );
+
+	it( 'delegates "execute" to "select" event', () => {
+		const spy = sinon.spy();
+
+		buttonView.on( 'select', spy );
+
+		buttonView.fire( 'execute' );
+
+		sinon.assert.calledOnce( spy );
+	} );
+} );

+ 1 - 1
packages/ckeditor5-ui/tests/dropdown/manual/dropdown.js

@@ -18,10 +18,10 @@ import ButtonView from '../../../src/button/buttonview';
 import {
 	addListViewToDropdown,
 	addToolbarToDropdown,
-	createButtonForDropdown,
 	createDropdownView
 } from '../../../src/dropdown/utils';
 
+import createButtonForDropdown from '../../../src/dropdown/helpers/createbuttonfordropdown';
 import closeDropdownOnBlur from '../../../src/dropdown/helpers/closedropdownonblur';
 import closeDropdownOnExecute from '../../../src/dropdown/helpers/closedropdownonexecute';
 import focusDropdownContentsOnArrows from '../../../src/dropdown/helpers/focusdropdowncontentsonarrows';

+ 1 - 25
packages/ckeditor5-ui/tests/dropdown/utils.js

@@ -17,11 +17,11 @@ import ListView from '../../src/list/listview';
 import DropdownView from '../../src/dropdown/dropdownview';
 import DropdownPanelView from '../../src/dropdown/dropdownpanelview';
 import SplitButtonView from '../../src/button/splitbuttonview';
+import createButtonForDropdown from '../../src/dropdown/helpers/createbuttonfordropdown';
 
 import {
 	addListViewToDropdown,
 	addToolbarToDropdown,
-	createButtonForDropdown,
 	createDropdownView,
 	createSplitButtonForDropdown,
 	enableModelIfOneIsEnabled
@@ -45,30 +45,6 @@ describe( 'utils', () => {
 		}
 	} );
 
-	describe( 'createButtonForDropdown()', () => {
-		beforeEach( () => {
-			buttonView = createButtonForDropdown( new Model(), locale );
-		} );
-
-		it( 'accepts locale', () => {
-			expect( buttonView.locale ).to.equal( locale );
-		} );
-
-		it( 'returns ButtonView instance', () => {
-			expect( buttonView ).to.be.instanceof( ButtonView );
-		} );
-
-		it( 'delegates "execute" to "select" event', () => {
-			const spy = sinon.spy();
-
-			buttonView.on( 'select', spy );
-
-			buttonView.fire( 'execute' );
-
-			sinon.assert.calledOnce( spy );
-		} );
-	} );
-
 	describe( 'createSplitButtonForDropdown()', () => {
 		beforeEach( () => {
 			buttonView = createSplitButtonForDropdown( new Model(), locale );