Browse Source

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

Maciej Gołaszewski 7 years ago
parent
commit
3b50722702

+ 20 - 0
packages/ckeditor5-ui/src/dropdown/helpers/createsplitbuttonfordropdown.js

@@ -0,0 +1,20 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module ui/dropdown/helpers/createsplitbuttonfordropdown
+ */
+
+import SplitButtonView from '../../button/splitbuttonview';
+
+export default function createSplitButtonForDropdown( model, locale ) {
+	const splitButtonView = new SplitButtonView( locale );
+
+	// TODO: Check if those binding are in good place (maybe move them to SplitButton) or add tests.
+	splitButtonView.actionView.bind( 'isOn' ).to( splitButtonView );
+	splitButtonView.actionView.bind( 'tooltip' ).to( splitButtonView );
+
+	return splitButtonView;
+}

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

@@ -7,7 +7,6 @@
  * @module ui/dropdown/helpers
  */
 
-import SplitButtonView from '../button/splitbuttonview';
 import DropdownPanelView from './dropdownpanelview';
 import DropdownView from './dropdownview';
 import ToolbarView from '../toolbar/toolbarview';
@@ -17,16 +16,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 createSplitButtonForDropdown( model, locale ) {
-	const splitButtonView = new SplitButtonView( locale );
-
-	// TODO: Check if those binding are in good place (maybe move them to SplitButton) or add tests.
-	splitButtonView.actionView.bind( 'isOn' ).to( splitButtonView );
-	splitButtonView.actionView.bind( 'tooltip' ).to( splitButtonView );
-
-	return splitButtonView;
-}
-
 export function createDropdownView( model, buttonView, locale ) {
 	const panelView = new DropdownPanelView( locale );
 	const dropdownView = new DropdownView( locale, buttonView, panelView );

+ 26 - 0
packages/ckeditor5-ui/tests/dropdown/helpers/createsplitbuttonfordropdown.js

@@ -0,0 +1,26 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import Model from '../../../src/model';
+import SplitButtonView from '../../../src/button/splitbuttonview';
+
+import createSplitButtonForDropdown from '../../../src/dropdown/helpers/createsplitbuttonfordropdown';
+
+describe( 'createSplitButtonForDropdown()', () => {
+	let buttonView, locale;
+
+	beforeEach( () => {
+		locale = { t() {} };
+		buttonView = createSplitButtonForDropdown( new Model(), locale );
+	} );
+
+	it( 'accepts locale', () => {
+		expect( buttonView.locale ).to.equal( locale );
+	} );
+
+	it( 'returns SplitButtonView instance', () => {
+		expect( buttonView ).to.be.instanceof( SplitButtonView );
+	} );
+} );

+ 0 - 16
packages/ckeditor5-ui/tests/dropdown/utils.js

@@ -16,14 +16,12 @@ import ListItemView from '../../src/list/listitemview';
 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,
 	createDropdownView,
-	createSplitButtonForDropdown,
 	enableModelIfOneIsEnabled
 } from '../../src/dropdown/utils';
 
@@ -45,20 +43,6 @@ describe( 'utils', () => {
 		}
 	} );
 
-	describe( 'createSplitButtonForDropdown()', () => {
-		beforeEach( () => {
-			buttonView = createSplitButtonForDropdown( new Model(), locale );
-		} );
-
-		it( 'accepts locale', () => {
-			expect( buttonView.locale ).to.equal( locale );
-		} );
-
-		it( 'returns SplitButtonView instance', () => {
-			expect( buttonView ).to.be.instanceof( SplitButtonView );
-		} );
-	} );
-
 	describe( 'createDropdownView()', () => {
 		it( 'returns view', () => {
 			model = new Model();