ソースを参照

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

Maciej Gołaszewski 8 年 前
コミット
6672565bfa

+ 20 - 0
packages/ckeditor5-ui/src/dropdown/helpers/closedropdownonexecute.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/closedropdownonexecute
+ */
+
+/**
+ * Adds a behavior to a dropdownView that closes dropdown view on any view collection item's "execute" event.
+ *
+ * @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView
+ */
+export default function closeDropdownOnExecute( dropdownView ) {
+	// Close the dropdown when one of the list items has been executed.
+	dropdownView.on( 'execute', () => {
+		dropdownView.isOpen = false;
+	} );
+}

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

@@ -19,18 +19,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';
 
-/**
- * Adds a behavior to a dropdownView that closes dropdown view on any view collection item's "execute" event.
- *
- * @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView
- */
-export function closeDropdownOnExecute( dropdownView ) {
-	// Close the dropdown when one of the list items has been executed.
-	dropdownView.on( 'execute', () => {
-		dropdownView.isOpen = false;
-	} );
-}
-
 /**
  * Adds a behavior to a dropdownView that closes opened dropdown on user click outside the dropdown.
  *

+ 38 - 0
packages/ckeditor5-ui/tests/dropdown/helpers/closedropdownonexecute.js

@@ -0,0 +1,38 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* globals document */
+
+import Model from '../../../src/model';
+import ButtonView from '../../../src/button/buttonview';
+import { createDropdownView } from '../../../src/dropdown/utils';
+import closeDropdownOnExecute from '../../../src/dropdown/helpers/closedropdownonexecute';
+
+describe( 'closeDropdownOnExecute()', () => {
+	let dropdownView;
+
+	beforeEach( () => {
+		dropdownView = createDropdownView( new Model(), new ButtonView(), {} );
+
+		closeDropdownOnExecute( dropdownView );
+
+		dropdownView.render();
+		document.body.appendChild( dropdownView.element );
+	} );
+
+	afterEach( () => {
+		dropdownView.element.remove();
+	} );
+
+	it( 'changes view#isOpen on view#execute', () => {
+		dropdownView.isOpen = true;
+
+		dropdownView.fire( 'execute' );
+		expect( dropdownView.isOpen ).to.be.false;
+
+		dropdownView.fire( 'execute' );
+		expect( dropdownView.isOpen ).to.be.false;
+	} );
+} );

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

@@ -19,10 +19,11 @@ import {
 	addListViewToDropdown,
 	addToolbarToDropdown,
 	closeDropdownOnBlur,
-	closeDropdownOnExecute,
 	createButtonForDropdown,
 	createDropdownView
 } from '../../../src/dropdown/utils';
+
+import closeDropdownOnExecute from '../../../src/dropdown/helpers/closedropdownonexecute';
 import focusDropdownContentsOnArrows from '../../../src/dropdown/helpers/focusdropdowncontentsonarrows';
 
 const ui = testUtils.createTestUIView( {

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

@@ -22,7 +22,6 @@ import {
 	addListViewToDropdown,
 	addToolbarToDropdown,
 	closeDropdownOnBlur,
-	closeDropdownOnExecute,
 	createButtonForDropdown,
 	createDropdownView,
 	createSplitButtonForDropdown,
@@ -47,25 +46,6 @@ describe( 'utils', () => {
 		}
 	} );
 
-	describe( 'closeDropdownOnExecute()', () => {
-		beforeEach( () => {
-			closeDropdownOnExecute( dropdownView );
-
-			dropdownView.render();
-			document.body.appendChild( dropdownView.element );
-		} );
-
-		it( 'changes view#isOpen on view#execute', () => {
-			dropdownView.isOpen = true;
-
-			dropdownView.fire( 'execute' );
-			expect( dropdownView.isOpen ).to.be.false;
-
-			dropdownView.fire( 'execute' );
-			expect( dropdownView.isOpen ).to.be.false;
-		} );
-	} );
-
 	describe( 'closeDropdownOnBlur()', () => {
 		beforeEach( () => {
 			closeDropdownOnBlur( dropdownView );