Selaa lähdekoodia

Changed hasValue property to value.

Oskar Wrobel 9 vuotta sitten
vanhempi
sitoutus
2796385192

+ 3 - 4
packages/ckeditor5-link/src/linkcommand.js

@@ -24,16 +24,15 @@ export default class LinkCommand extends Command {
 		super( editor );
 
 		/**
-		 * Flag indicating whether command is active. For collapsed selection it means that typed characters will have
-		 * the command's attribute set. For range selection it means that all nodes inside have the attribute applied.
+		 * Currently selected link attribute value.
 		 *
 		 * @observable
 		 * @member {Boolean} core.command.ToggleAttributeCommand#value
 		 */
-		this.set( 'hasValue', false );
+		this.set( 'value', undefined );
 
 		this.listenTo( this.editor.document.selection, 'change:attribute', () => {
-			this.hasValue = this.editor.document.selection.hasAttribute( 'link' );
+			this.value = this.editor.document.selection.getAttribute( 'link' );
 		} );
 	}
 

+ 25 - 25
packages/ckeditor5-link/tests/linkcommand.js

@@ -30,32 +30,32 @@ describe( 'LinkCommand', () => {
 		command.destroy();
 	} );
 
-	describe( 'hasValue', () => {
+	describe( 'value', () => {
 		describe( 'collapsed selection', () => {
-			it( 'should be equal `true` when selection is placed inside element with link attribute', () => {
+			it( 'should be equal attribute value when selection is placed inside element with link attribute', () => {
 				setData( document, `<$text link="url">foo[]bar</$text>` );
 
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
-			it( 'should be equal `false` when selection is placed inside element without link attribute', () => {
+			it( 'should be undefined when selection is placed inside element without link attribute', () => {
 				setData( document, `<$text bold="true">foo[]bar</$text>` );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 			} );
 		} );
 
 		describe( 'non-collapsed selection', () => {
-			it( 'should be equal `true` when selection contains only elements with link attribute', () => {
+			it( 'should be equal attribute value when selection contains only elements with link attribute', () => {
 				setData( document, 'fo[<$text link="url">ob</$text>]ar' );
 
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
-			it( 'should be equal `false` when selection contains not only elements with link attribute', () => {
+			it( 'should be undefined when selection contains not only elements with link attribute', () => {
 				setData( document, 'f[o<$text link="url">ob</$text>]ar' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 			} );
 		} );
 	} );
@@ -65,22 +65,22 @@ describe( 'LinkCommand', () => {
 			it( 'should set link attribute to selected text', () => {
 				setData( document, 'f[ooba]r' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) ).to.equal( 'f[<$text link="url">ooba</$text>]r' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should set link attribute to selected text when text already has attributes', () => {
 				setData( document, 'f[o<$text bold="true">oba]r</$text>' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 				expect( getData( document ) )
 					.to.equal( 'f[<$text link="url">o</$text><$text bold="true" link="url">oba</$text>]<$text bold="true">r</$text>' );
 			} );
@@ -88,58 +88,58 @@ describe( 'LinkCommand', () => {
 			it( 'should overwrite existing link attribute when selected text wraps text with link attribute', () => {
 				setData( document, 'f[o<$text link="other url">o</$text>ba]r' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) ).to.equal( 'f[<$text link="url">ooba</$text>]r' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should split text and overwrite attribute value when selection is inside text with link attribute', () => {
 				setData( document, 'f<$text link="other url">o[ob]a</$text>r' );
 
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'other url' );
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) )
 					.to.equal( 'f<$text link="other url">o</$text>[<$text link="url">ob</$text>]<$text link="other url">a</$text>r' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should overwrite link attribute of selected text only, when selection start inside text with link attribute', () => {
 				setData( document, 'f<$text link="other url">o[o</$text>ba]r' );
 
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'other url' );
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) ).to.equal( 'f<$text link="other url">o</$text>[<$text link="url">oba</$text>]r' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should overwrite link attribute of selected text only, when selection end inside text with link attribute', () => {
 				setData( document, 'f[o<$text link="other url">ob]a</$text>r' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) ).to.equal( 'f[<$text link="url">oob</$text>]<$text link="other url">a</$text>r' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should set link attribute to selected text when text is split by $block element', () => {
 				setData( document, '<p>f[oo</p><p>ba]r</p>' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) )
 					.to.equal( '<p>f[<$text link="url">oo</$text></p><p><$text link="url">ba</$text>]r</p>' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 
 			it( 'should set link attribute only to allowed elements and omit disallowed', () => {
@@ -149,13 +149,13 @@ describe( 'LinkCommand', () => {
 
 				setData( document, '<p>f[oo<img></img>ba]r</p>' );
 
-				expect( command.hasValue ).to.false;
+				expect( command.value ).to.undefined;
 
 				command._doExecute( 'url' );
 
 				expect( getData( document ) )
 					.to.equal( '<p>f[<$text link="url">oo</$text><img></img><$text link="url">ba</$text>]r</p>' );
-				expect( command.hasValue ).to.true;
+				expect( command.value ).to.equal( 'url' );
 			} );
 		} );