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

Added tests and docs to AlternateTextFormView.

Szymon Kupś 9 лет назад
Родитель
Сommit
0bd9e1a508

+ 30 - 3
packages/ckeditor5-image/src/imagealternatetext/ui/alternatetextformview.js

@@ -14,15 +14,38 @@ import LabeledInputView from 'ckeditor5-ui/src/labeledinput/labeledinputview';
 import TextAreaView from './textareaview';
 import TextAreaView from './textareaview';
 import submitHandler from 'ckeditor5-ui/src/bindings/submithandler';
 import submitHandler from 'ckeditor5-ui/src/bindings/submithandler';
 
 
-export default class AlternateTextFormView extends View{
+/**
+ * AlternateTextFormView class.
+ *
+ * @extends module:ui/view~View
+ */
+export default class AlternateTextFormView extends View {
+	/**
+	 * @inheritDoc
+	 */
 	constructor( locale ) {
 	constructor( locale ) {
 		super( locale );
 		super( locale );
 
 
+		/**
+		 * Text area with label.
+		 *
+		 * @member {module:ui/labeledinput/labeledinputview~LabeledInputView} #labeledTextarea
+		 */
 		this.labeledTextarea = this._createLabeledTextarea();
 		this.labeledTextarea = this._createLabeledTextarea();
 
 
+		/**
+		 * Button used to submit the form.
+		 *
+		 * @member {module:ui/button/buttonview~ButtonView} #saveButtonView
+		 */
 		this.saveButtonView = this._createButton( 'Ok' );
 		this.saveButtonView = this._createButton( 'Ok' );
 		this.saveButtonView.type = 'submit';
 		this.saveButtonView.type = 'submit';
 
 
+		/**
+		 * Button used to cancel the form.
+		 *
+		 * @member {module:ui/button/buttonview~ButtonView} #cancelButtonView
+		 */
 		this.cancelButtonView = this._createButton( 'Cancel', 'cancel' );
 		this.cancelButtonView = this._createButton( 'Cancel', 'cancel' );
 
 
 		// Register child views.
 		// Register child views.
@@ -91,11 +114,15 @@ export default class AlternateTextFormView extends View{
 		return button;
 		return button;
 	}
 	}
 
 
+	/**
+	 * Creates textarea with label.
+	 *
+	 * @private
+	 * @return {module:ui/labeledinput/labeledinputview~LabeledInputView}
+	 */
 	_createLabeledTextarea() {
 	_createLabeledTextarea() {
 		const t = this.locale.t;
 		const t = this.locale.t;
-
 		const labeledInput = new LabeledInputView( this.locale, TextAreaView );
 		const labeledInput = new LabeledInputView( this.locale, TextAreaView );
-
 		labeledInput.label = t( 'Alternate image text' );
 		labeledInput.label = t( 'Alternate image text' );
 
 
 		return labeledInput;
 		return labeledInput;

+ 52 - 0
packages/ckeditor5-image/tests/imagealternatetext/ui/alternatetextformview.js

@@ -0,0 +1,52 @@
+/**
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* global Event */
+
+import AlternateTextFormView from 'ckeditor5-image/src/imagealternatetext/ui/alternatetextformview';
+import View from 'ckeditor5-ui/src/view';
+
+describe( 'AlternateTextFormView', () => {
+	let view;
+
+	beforeEach( () => {
+		view = new AlternateTextFormView( { t: () => {} } );
+
+		view.init();
+	} );
+
+	describe( 'constructor()', () => {
+		it( 'should create element from template', () => {
+			expect( view.element.classList.contains( 'ck-alternate-text-form' ) ).to.be.true;
+		} );
+
+		it( 'should create child views', () => {
+			expect( view.labeledTextarea ).to.be.instanceOf( View );
+			expect( view.saveButtonView ).to.be.instanceOf( View );
+			expect( view.cancelButtonView ).to.be.instanceOf( View );
+		} );
+
+		it( 'should fire `cancel` event on cancelButtonView#execute', () => {
+			const spy = sinon.spy();
+			view.on( 'cancel', spy );
+			view.cancelButtonView.fire( 'execute' );
+
+			sinon.assert.calledOnce( spy );
+		} );
+	} );
+
+	describe( 'DOM bindings', () => {
+		describe( 'submit event', () => {
+			it( 'should trigger submit event', () => {
+				const spy = sinon.spy();
+
+				view.on( 'submit', spy );
+				view.element.dispatchEvent( new Event( 'submit' ) );
+
+				expect( spy.calledOnce ).to.true;
+			} );
+		} );
+	} );
+} );