Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/171878
Change subject: Use wb.datamodel.Term in descriptionview
......................................................................
Use wb.datamodel.Term in descriptionview
Change-Id: I766b93ce6819d8905afb7109dbb4300b2d4450c9
---
M lib/resources/entityChangers/DescriptionsChanger.js
M lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
M lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
M lib/resources/jquery.wikibase/resources.php
M lib/tests/qunit/entityChangers/DescriptionsChanger.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.descriptionview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
M lib/tests/qunit/jquery.wikibase/resources.php
13 files changed, 106 insertions(+), 148 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/78/171878/1
diff --git a/lib/resources/entityChangers/DescriptionsChanger.js
b/lib/resources/entityChangers/DescriptionsChanger.js
index 3ff5885..8642f7a 100644
--- a/lib/resources/entityChangers/DescriptionsChanger.js
+++ b/lib/resources/entityChangers/DescriptionsChanger.js
@@ -34,22 +34,22 @@
_api: null,
/**
- * @param {string} description
- * @param {string} language
+ * @param {wikibase.datamodel.Term} description
* @return {jQuery.Promise}
* Resolved parameters:
* - {string} The saved description
* Rejected parameters:
* - {wikibase.RepoApiError}
*/
- setDescription: function( description, language ) {
+ setDescription: function( description ) {
var self = this,
- deferred = $.Deferred();
+ deferred = $.Deferred(),
+ language = description.getLanguageCode();
this._api.setDescription(
this._entity.getId(),
this._revisionStore.getDescriptionRevision(),
- description,
+ description.getText(),
language
)
.done( function( result ) {
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
index cb16fa7..965c124 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.descriptionview.js
@@ -12,9 +12,7 @@
* @since 0.5
* @extends jQuery.ui.TemplatedWidget
*
- * @option {Object|null} value
- * Object representing the widget's value.
- * Structure: { language: <{string}>, description: <{string|null}> }
+ * @option {wikibase.datamodel.Term} value
*
* @option {string} [helpMessage]
* Default: mw.msg( 'wikibase-description-input-help-message' )
@@ -58,21 +56,21 @@
* @throws {Error} if required parameters are not specified properly.
*/
_create: function() {
- if( !this.options.descriptionsChanger ) {
+ if(
+ !( this.options.value instanceof wb.datamodel.Term )
+ || !this.options.descriptionsChanger
+ ) {
throw new Error( 'Required parameter(s) missing' );
}
- this.options.value = this._checkValue( this.options.value );
-
- var self = this,
- value = this.options.value;
+ var self = this;
this.element
.on(
'descriptionviewafterstartediting.' + this.widgetName
+ ' eachchange.' + this.widgetName,
function( event ) {
- if( !self.value().description ) {
+ if( self.value().getText() === '' ) {
// Since the widget shall not be in view mode
when there is no value, triggering
// the event without a proper value is only
done when creating the widget. Disabling
// other edit buttons shall be avoided.
@@ -86,7 +84,7 @@
PARENT.prototype._create.call( this );
- if( value && value.description !== '' && this.$text.text() ===
'' ) {
+ if( this.options.value.getText() !== '' && this.$text.text()
=== '' ) {
this._draw();
}
},
@@ -112,28 +110,30 @@
* Main draw routine.
*/
_draw: function() {
- this.element[this.options.value.description ? 'removeClass' :
'addClass']( 'wb-empty' );
+ var self = this,
+ languageCode = this.options.value.getLanguageCode(),
+ descriptionText = this.options.value.getText();
+
+ if( descriptionText === '' ) {
+ descriptionText = null;
+ }
+
+ this.element[descriptionText ? 'removeClass' : 'addClass'](
'wb-empty' );
if( !this._isInEditMode ) {
- this.$text.text(
- this.options.value.description || mw.msg(
'wikibase-description-empty' )
- );
+ this.$text.text( descriptionText || mw.msg(
'wikibase-description-empty' ) );
return;
}
- var self = this;
-
- var langCode = this.options.value.language;
-
var dir = ( $.uls && $.uls.data ) ?
- $.uls.data.getDir( langCode ) :
+ $.uls.data.getDir( languageCode ) :
$( 'html' ).prop( 'dir' );
var $input = $( '<input />', {
// TODO: Inject correct placeholder via options
placeholder: mw.msg(
'wikibase-description-edit-placeholder-language-aware',
- wb.getNativeLanguageNameByCode( langCode )
+ wb.getNativeLanguageNameByCode( languageCode )
),
dir: dir
} )
@@ -141,8 +141,8 @@
self._trigger( 'change' );
} );
- if( this.options.value.description ) {
- $input.val( this.options.value.description );
+ if( descriptionText ) {
+ $input.val( descriptionText );
}
this.$text.empty().append( $input );
@@ -196,10 +196,7 @@
this._trigger( 'stopediting', null, [dropValue] );
- this.options.descriptionsChanger.setDescription(
- this.value().description || '',
- this.options.value.language
- )
+ this.options.descriptionsChanger.setDescription( this.value() )
.done( function( description ) {
self.enable();
self._afterStopEditing( dropValue );
@@ -225,7 +222,7 @@
_afterStopEditing: function( dropValue ) {
if( !dropValue ) {
this.options.value = this.value();
- } else if( !this.options.value.description ) {
+ } else if( this.options.value.getText() === '' ) {
this.$text.children( 'input' ).val( '' );
}
@@ -249,11 +246,7 @@
* @return {boolean}
*/
isInitialValue: function() {
- var initialValue = this.options.value,
- currentValue = this.value();
-
- return currentValue.language === initialValue.language
- && currentValue.description ===
initialValue.description;
+ return this.value().equals( this.options.value );
},
/**
@@ -279,8 +272,8 @@
* @see jQuery.ui.TemplatedWidget._setOption
*/
_setOption: function( key, value ) {
- if( key === 'value' ) {
- value = this._checkValue( value );
+ if( key === 'value' && !( value instanceof wb.datamodel.Term )
) {
+ throw new Error( 'Value needs to be a wb.datamodel.Term
instance' );
}
var response = PARENT.prototype._setOption.call( this, key,
value );
@@ -293,30 +286,10 @@
},
/**
- * @param {*} value
- * @return {Object}
- *
- * @throws {Error} if value is not defined properly.
- */
- _checkValue: function( value ) {
- if( !$.isPlainObject( value ) ) {
- throw new Error( 'Value needs to be an object' );
- } else if( !value.language ) {
- throw new Error( 'Value needs language to be specified'
);
- }
-
- if( !value.description ) {
- value.description = null;
- }
-
- return value;
- },
-
- /**
* Gets/Sets the widget's value.
*
- * @param {Object} [value]
- * @return {Object|undefined}
+ * @param {wikibase.datamodel.Term} [value]
+ * @return {wikibase.datamodel.Term|undefined}
*/
value: function( value ) {
if( value !== undefined ) {
@@ -328,12 +301,10 @@
return this.option( 'value' );
}
- var text = $.trim( this.$text.children( 'input' ).val() );
-
- return {
- language: this.options.value.language,
- description: text !== '' ? text : null
- };
+ return new wb.datamodel.Term(
+ this.options.value.getLanguageCode(),
+ $.trim( this.$text.children( 'input' ).val() )
+ );
},
/**
@@ -378,7 +349,7 @@
}
} );
- if( !descriptionview.value().description ) {
+ if( descriptionview.value().getText() === '' ) {
descriptionview.toEditMode();
$descriptionview.data( 'edittoolbar'
).toEditMode();
$descriptionview.data( 'edittoolbar'
).disable();
@@ -388,7 +359,7 @@
.off( 'descriptionviewafterstopediting.edittoolbar' )
.on( 'descriptionviewafterstopediting.edittoolbar',
function( event ) {
var edittoolbar = $( event.target ).data(
'edittoolbar' );
- if( descriptionview.value().description ) {
+ if( descriptionview.value().getText() !== '' ) {
edittoolbar.toNonEditMode();
edittoolbar.enable();
edittoolbar.toggleActionMessage(
function() {
@@ -411,8 +382,8 @@
btnSave = edittoolbar.getButton( 'save' ),
enableSave = descriptionview.isValid() &&
!descriptionview.isInitialValue(),
btnCancel = edittoolbar.getButton( 'cancel' ),
- currentDescription =
descriptionview.value().description,
- disableCancel = !currentDescription &&
descriptionview.isInitialValue();
+ currentDescription =
descriptionview.value().getText(),
+ disableCancel = currentDescription === '' &&
descriptionview.isInitialValue();
btnSave[enableSave ? 'enable' : 'disable']();
btnCancel[disableCancel ? 'disable' : 'enable']();
@@ -420,7 +391,10 @@
if( event.type === 'descriptionviewchange' ) {
if( !descriptionview.isInitialValue() ) {
descriptionview.startEditing();
- } else if( descriptionview.isInitialValue() &&
!descriptionview.value().description ) {
+ } else if(
+ descriptionview.isInitialValue()
+ && descriptionview.value().getText()
=== ''
+ ) {
descriptionview.cancelEditing();
}
}
@@ -431,15 +405,15 @@
edittoolbar = $descriptionview.data(
'edittoolbar' ),
btnSave = edittoolbar.getButton( 'save' ),
enable = descriptionview.isValid() &&
!descriptionview.isInitialValue(),
- currentDescription =
descriptionview.value().description;
+ currentDescription =
descriptionview.value().getText();
btnSave[enable ? 'enable' : 'disable']();
- if( descriptionview.option( 'disabled' ) ||
currentDescription ) {
+ if( descriptionview.option( 'disabled' ) ||
currentDescription !== '' ) {
return;
}
- if( !currentDescription ) {
+ if( currentDescription === '' ) {
edittoolbar.disable();
}
},
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
index 180a651..3059d1c 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
@@ -148,17 +148,13 @@
this.$description = $( '<div/>' ).appendTo(
this.element );
}
+ // FIXME: entity object should not contain fallback strings
var description =
this.options.value.getFingerprint().getDescriptionFor(
mw.config.get( 'wgUserLanguage' )
- );
+ ) || new wb.datamodel.Term( mw.config.get( 'wgUserLanguage' ),
'' );
+
this.$description.descriptionview( {
- value: {
- language: mw.config.get( 'wgUserLanguage' ),
- description: this.$description.hasClass(
'wb-empty' )
- ? null
- // FIXME: entity object should not
contain fallback strings
- : ( description &&
description.getText() )
- },
+ value: description,
helpMessage: mw.msg(
'wikibase-description-input-help-message',
wb.getLanguageNameByCode( mw.config.get(
'wgUserLanguage' ) )
@@ -207,19 +203,18 @@
}
var fingerprint = this.options.value.getFingerprint(),
- value = [],
- nextValue;
+ value = [];
+
for( var i = 0; i < this.options.languages.length; i++ ) {
- nextValue = {
+ value.push( {
language: this.options.languages[i],
label: fingerprint.getLabelFor(
this.options.languages[i] )
|| new wb.datamodel.Term(
this.options.languages[i], '' ),
- description: fingerprint.getDescriptionFor(
this.options.languages[i] ),
+ description: fingerprint.getDescriptionFor(
this.options.languages[i] )
+ || new wb.datamodel.Term(
this.options.languages[i], '' ),
aliases: fingerprint.getAliasesFor(
this.options.languages[i] )
|| new wb.datamodel.MultiTerm(
this.options.languages[i], [] )
- };
- nextValue.description = nextValue.description ?
nextValue.description.getText() : null;
- value.push( nextValue );
+ } );
}
this.$fingerprints.fingerprintgroupview( {
diff --git
a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
index f8ad851..0f84ac0 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
@@ -18,7 +18,7 @@
* {
* language: <{string]>,
* label: <{wikibase.datamodel.Term}>,
- * description: <{string|null}>
+ * description: <{wikibase.datamodel.Term}>
* aliases: <{wikibase.datamodel.MultiTerm}>
* }[, ...]
* ]
diff --git
a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
index 6971644..ff7d87a 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
@@ -18,7 +18,7 @@
* {
* language: <{string]>,
* label: <{wikibase.datamodel.Term}>,
- * description: <{string|null}>,
+ * description: <{wikibase.datamodel.Term}>,
* aliases: <{wikibase.datamodel.MultiTerm}>
* }[, ...]
* ]
@@ -187,7 +187,7 @@
if(
currentValue[i].language !==
this.options.value[i].language
|| !currentValue[i].label.equals(
this.options.value[i].label )
- || currentValue[i].description !==
this.options.value[i].description
+ || !currentValue[i].description.equals(
this.options.value[i].description )
|| !currentValue[i].aliases.equals(
this.options.value[i].aliases )
) {
return false;
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
index 9beb6a6..55c6613 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
@@ -17,7 +17,7 @@
* Structure: {
* language: <{string}>,
* label: <{wikibase.datamodel.Term}>,
- * description: <{string|null>,
+ * description: <{wikibase.datamodel.Term}>,
* aliases: <{wikibase.datamodel.MultiTerm}>
* }
*
@@ -185,7 +185,7 @@
);
var options = {
- value: self.options.value,
+ value: self.options.value[subjectName],
helpMessage: mw.msg(
'wikibase-' + subjectName +
'-input-help-message',
wb.getLanguageNameByCode(
self.options.value.language )
@@ -194,11 +194,9 @@
if( widgetName === 'aliasesview' ) {
options.aliasesChanger =
self.options.entityChangersFactory.getAliasesChanger();
- options.value = self.options.value.aliases;
} else if ( widgetName === 'descriptionview' ) {
options.descriptionsChanger =
self.options.entityChangersFactory.getDescriptionsChanger();
} else if ( widgetName === 'labelview' ) {
- options.value = self.options.value.label;
options.labelsChanger =
self.options.entityChangersFactory.getLabelsChanger();
options.entityId = self.options.entityId;
}
@@ -354,7 +352,7 @@
return {
language: this.options.value.language,
label: this.$labelview.data( 'labelview' ).value(),
- description: this.$descriptionview.data(
'descriptionview' ).value().description,
+ description: this.$descriptionview.data(
'descriptionview' ).value(),
aliases: this.$aliasesview.data( 'aliasesview' ).value()
};
},
@@ -373,12 +371,7 @@
}
this.$labelview.data( 'labelview' ).option( 'value',
value.label );
-
- this.$descriptionview.data( 'descriptionview' ).option(
'value', {
- language: value.language,
- description: value.description
- } );
-
+ this.$descriptionview.data( 'descriptionview' ).option(
'value', value.description );
this.$aliasesview.data( 'aliasesview' ).option(
'value', value.aliases );
}
@@ -411,7 +404,7 @@
}
if( !value.description ) {
- value.description = null;
+ throw new Error( 'description needs to be a
wb.datamodel.Term instance' );
}
if( !value.aliases ) {
diff --git a/lib/resources/jquery.wikibase/resources.php
b/lib/resources/jquery.wikibase/resources.php
index 2810e9a..9cdc5c3 100644
--- a/lib/resources/jquery.wikibase/resources.php
+++ b/lib/resources/jquery.wikibase/resources.php
@@ -135,6 +135,7 @@
'jquery.wikibase.edittoolbar',
'jquery.wikibase.toolbarcontroller',
'wikibase',
+ 'wikibase.datamodel.Term',
),
'messages' => array(
'wikibase-description-edit-placeholder',
diff --git a/lib/tests/qunit/entityChangers/DescriptionsChanger.tests.js
b/lib/tests/qunit/entityChangers/DescriptionsChanger.tests.js
index 7fab678..2fb7160 100644
--- a/lib/tests/qunit/entityChangers/DescriptionsChanger.tests.js
+++ b/lib/tests/qunit/entityChangers/DescriptionsChanger.tests.js
@@ -25,7 +25,7 @@
var api = {
setDescription: sinon.spy( function() {
return $.Deferred().promise();
- } ),
+ } )
};
var descriptionsChanger = new SUBJECT(
api,
@@ -33,7 +33,7 @@
new wb.datamodel.Item( 'Q1' )
);
- descriptionsChanger.setDescription( 'description', 'language' );
+ descriptionsChanger.setDescription( new wb.datamodel.Term(
'language', 'description' ) );
assert.ok( api.setDescription.calledOnce );
} );
@@ -51,7 +51,7 @@
}
}
} ).promise();
- } ),
+ } )
};
var descriptionsChanger = new SUBJECT(
api,
@@ -61,7 +61,7 @@
QUnit.stop();
- descriptionsChanger.setDescription( 'description', 'language' )
+ descriptionsChanger.setDescription( new wb.datamodel.Term(
'language', 'description' ) )
.done( function( savedDescription ) {
QUnit.start();
assert.equal( savedDescription, 'description' );
@@ -75,7 +75,7 @@
var api = {
setDescription: sinon.spy( function() {
return $.Deferred().reject( 'errorCode', {
error: { code: 'errorCode' } } ).promise();
- } ),
+ } )
};
var descriptionsChanger = new SUBJECT(
api,
@@ -85,7 +85,7 @@
QUnit.stop();
- descriptionsChanger.setDescription( 'description', 'language' )
+ descriptionsChanger.setDescription( new wb.datamodel.Term(
'language', 'description' ) )
.done( function( savedDescription ) {
assert.ok( false, 'setDescription should have failed' );
} )
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.descriptionview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.descriptionview.tests.js
index 3fd14cf..1180cdb 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.descriptionview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.descriptionview.tests.js
@@ -2,7 +2,7 @@
* @licence GNU GPL v2+
* @author H. Snater < [email protected] >
*/
-( function( $, QUnit ) {
+( function( $, wb, QUnit ) {
'use strict';
/**
@@ -15,10 +15,7 @@
descriptionsChanger: {
setDescription: function () { return
$.Deferred().resolve(); }
},
- value: {
- language: 'en',
- description: 'test description'
- }
+ value: new wb.datamodel.Term( 'en', 'test description' )
}, options || {} );
$node = $node || $( '<div/>' ).appendTo( 'body' );
@@ -156,36 +153,33 @@
QUnit.test( 'value()', function( assert ) {
var $descriptionview = createDescriptionview(),
- descriptionview = $descriptionview.data( 'descriptionview' );
+ descriptionview = $descriptionview.data( 'descriptionview' ),
+ newValue = null;
assert.throws(
function() {
- descriptionview.value( null );
+ descriptionview.value( newValue );
},
'Trying to set no value fails.'
);
- descriptionview.value( {
- language: 'de',
- description: 'changed description'
- } );
+ newValue = new wb.datamodel.Term( 'de', 'changed description' );
+
+ descriptionview.value( newValue );
assert.ok(
- descriptionview.value().language === 'de'
- && descriptionview.value().description === 'changed
description',
+ descriptionview.value().equals( newValue ),
'Set new value.'
);
- descriptionview.value( {
- language: 'en',
- description: null
- } );
+ newValue = new wb.datamodel.Term( 'en', '' );
+
+ descriptionview.value( newValue );
assert.ok(
- descriptionview.value().language === 'en'
- && descriptionview.value().description === null,
+ descriptionview.value().equals( newValue ),
'Set another value.'
);
} );
-}( jQuery, QUnit ) );
+}( jQuery, wikibase, QUnit ) );
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
index 485fabd..c43f67e 100644
---
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
+++
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
@@ -15,12 +15,12 @@
{
language: 'de',
label: new wb.datamodel.Term( 'de', 'de-label'
),
- description: 'de-description',
+ description: new wb.datamodel.Term( 'de',
'de-description' ),
aliases: new wb.datamodel.MultiTerm( 'de', [] )
}, {
language: 'en',
label: new wb.datamodel.Term( 'en', 'en-label'
),
- description: 'en-description',
+ description: new wb.datamodel.Term( 'en',
'en-description' ),
aliases: new wb.datamodel.MultiTerm( 'en', [] )
}
],
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
index 0a25d27..b286060 100644
---
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
+++
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
@@ -21,12 +21,12 @@
{
language: 'de',
label: new wb.datamodel.Term( 'de', 'de-label'
),
- description: 'de-description',
+ description: new wb.datamodel.Term( 'de',
'de-description' ),
aliases: new wb.datamodel.MultiTerm( 'de', [] )
}, {
language: 'en',
label: new wb.datamodel.Term( 'en', 'en-label'
),
- description: 'en-description',
+ description: new wb.datamodel.Term( 'en',
'en-description' ),
aliases: new wb.datamodel.MultiTerm( 'en', [] )
}
]
@@ -91,7 +91,7 @@
var $item = $fingerprintlistview.data( 'listview' ).addItem( {
language: 'fa',
label: new wb.datamodel.Term( 'fa', 'fa-label' ),
- description: 'fa-description',
+ description: new wb.datamodel.Term( 'fa', 'fa-description' ),
aliases: new wb.datamodel.MultiTerm( 'fa', [] )
} );
diff --git
a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
index 0976a7b..f23d8ba 100644
--- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
+++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
@@ -29,7 +29,7 @@
value: {
language: 'en',
label: new wb.datamodel.Term( 'en', 'test label' ),
- description: 'test description',
+ description: new wb.datamodel.Term( 'en', 'test
description' ),
aliases: new wb.datamodel.MultiTerm( 'en', ['alias1',
'alias2'] )
}
}, options || {} );
@@ -247,6 +247,7 @@
var $fingerprintview = createFingerprintview(),
fingerprintview = $fingerprintview.data( 'fingerprintview' ),
label = new wb.datamodel.Term( 'en', 'changed label' ),
+ description = new wb.datamodel.Term( 'en', 'test description' ),
aliases = new wb.datamodel.MultiTerm( 'en', ['alias1',
'alias2'] );
assert.throws(
@@ -259,7 +260,7 @@
fingerprintview.value( {
language: 'en',
label: label,
- description: 'test description',
+ description: description,
aliases: aliases
} );
@@ -268,18 +269,18 @@
'Set new label.'
);
- assert.equal(
- fingerprintview.value().description,
- 'test description',
+ assert.ok(
+ fingerprintview.value().description.equals( description ),
'Did not change description.'
);
label = new wb.datamodel.Term( 'en', 'test label' );
+ description = new wb.datamodel.Term( 'en', '' );
fingerprintview.value( {
language: 'en',
label: label,
- description: null,
+ description: description,
aliases: aliases
} );
@@ -288,9 +289,8 @@
'Reset label.'
);
- assert.strictEqual(
- fingerprintview.value().description,
- null,
+ assert.ok(
+ fingerprintview.value().description.equals( description ),
'Removed description.'
);
@@ -299,7 +299,7 @@
fingerprintview.value( {
language: 'en',
label: label,
- description: null,
+ description: description,
aliases: aliases
} );
@@ -313,7 +313,7 @@
fingerprintview.value( {
language: 'en',
label: label,
- description: null,
+ description: description,
aliases: aliases
} );
@@ -327,7 +327,7 @@
fingerprintview.value( {
language: 'de',
label: label,
- description: null,
+ description: description,
aliases: aliases
} );
},
diff --git a/lib/tests/qunit/jquery.wikibase/resources.php
b/lib/tests/qunit/jquery.wikibase/resources.php
index 7889923..071c68f 100644
--- a/lib/tests/qunit/jquery.wikibase/resources.php
+++ b/lib/tests/qunit/jquery.wikibase/resources.php
@@ -81,6 +81,7 @@
),
'dependencies' => array(
'jquery.wikibase.descriptionview',
+ 'wikibase.datamodel.Term',
),
),
--
To view, visit https://gerrit.wikimedia.org/r/171878
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I766b93ce6819d8905afb7109dbb4300b2d4450c9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits