Daniel Werner has uploaded a new change for review. https://gerrit.wikimedia.org/r/50771
Change subject: Claims now use wb.SnakList instead of wb.Snak[] for their qualifiers ...................................................................... Claims now use wb.SnakList instead of wb.Snak[] for their qualifiers Adjusted tests and solved some overdue TODO there along the way. Change-Id: I2e2688c23c05bcf3bf1d61cd4b8f02675485dd3e --- M lib/resources/wikibase.datamodel/wikibase.Claim.js M lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js 2 files changed, 25 insertions(+), 28 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/71/50771/1 diff --git a/lib/resources/wikibase.datamodel/wikibase.Claim.js b/lib/resources/wikibase.datamodel/wikibase.Claim.js index fd2a2ae..f0f5cdd 100644 --- a/lib/resources/wikibase.datamodel/wikibase.Claim.js +++ b/lib/resources/wikibase.datamodel/wikibase.Claim.js @@ -14,13 +14,13 @@ * @see https://meta.wikimedia.org/wiki/Wikidata/Data_model#Statements * * @param {wb.Snak} mainSnak - * @param {wb.Snak[]} [qualifiers] + * @param {wb.SnakList|null} [qualifiers] * @param {String|null} [guid] The Global Unique Identifier of this Claim. Can be omitted or null * if this is a new Claim, not yet stored in the database and associated with some entity. */ wb.Claim = function WbClaim( mainSnak, qualifiers, guid ) { this.setMainSnak( mainSnak ); - this.setQualifiers( qualifiers || [] ); + this.setQualifiers( qualifiers || new wb.SnakList() ); this._guid = guid || null; }; @@ -74,9 +74,9 @@ }, /** - * Returns all qualifiers as an array of Snaks. + * Returns all qualifiers as a wb.SnakList object. * - * @return wb.Snak[] + * @return wb.SnakList */ getQualifiers: function() { return this._qualifiers; @@ -85,11 +85,11 @@ /** * Overwrites the current set of qualifiers. * - * @param {wb.Snak[]} qualifiers + * @param {wb.SnakList} qualifiers */ setQualifiers: function( qualifiers ) { - if( !$.isArray( qualifiers ) ) { - throw new Error( 'Qualifiers have to be an array of snaks' ); + if( !( qualifiers instanceof wb.SnakList ) ) { + throw new Error( 'Qualifiers have to be a wb.SnakList object' ); } this._qualifiers = qualifiers; } @@ -103,7 +103,7 @@ */ wb.Claim.newFromJSON = function( json ) { var mainSnak = wb.Snak.newFromJSON( json.mainsnak ), - qualifiers = [], + qualifiers = new wb.SnakList(), references = [], rank, guid, @@ -111,7 +111,7 @@ if ( json.qualifiers !== undefined ) { $.each( json.qualifiers, function( i, qualifier ) { - qualifiers.push( wb.Snak.newFromJSON( qualifier ) ); + qualifiers.addSnak( wb.Snak.newFromJSON( qualifier ) ); } ); } diff --git a/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js b/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js index 4eacccb..c390294 100644 --- a/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js +++ b/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js @@ -9,7 +9,7 @@ * @author Jeroen De Dauw < [email protected] > */ -( function( wb, dv, $, QUnit, undefined ) { +( function( wb, dv, $, QUnit ) { 'use strict'; QUnit.module( 'wikibase.datamodel.claim.js', QUnit.newMwEnvironment() ); @@ -18,15 +18,13 @@ var argumentLists = [ { mainSnak: new wb.PropertyNoValueSnak( 42 ), - qualifiers: [] - }, - { + qualifiers: new wb.SnakList() + }, { mainSnak: new wb.PropertySomeValueSnak( 9001 ), - qualifiers: [] - }, - { + qualifiers: new wb.SnakList() + }, { mainSnak: new wb.PropertyValueSnak( 23, new dv.StringValue( '~=[,,_,,]:3' ) ), - qualifiers: [] + qualifiers: new wb.SnakList() } ]; @@ -36,11 +34,9 @@ constructorArguments.qualifiers ); - // TODO: replace with comparison function implemented in snak - assert.strictEqual( - claim.getMainSnak().getPropertyId(), - constructorArguments.mainSnak.getPropertyId(), - 'Main snak property id is correct' + assert.ok( + claim.getMainSnak().equals( constructorArguments.mainSnak ), + 'Main snak is set correctly' ); assert.strictEqual( @@ -55,7 +51,10 @@ } ); QUnit.test( 'setMainSnak and getMainSnak', function( assert ) { - var claim = new wb.Claim( new wb.PropertyNoValueSnak( 42 ), [] ), + var claim = new wb.Claim( + new wb.PropertyNoValueSnak( 42 ), + new wb.SnakList() + ), snaks = [ new wb.PropertyNoValueSnak( 9001 ), new wb.PropertySomeValueSnak( 42 ), @@ -65,11 +64,9 @@ $.each( snaks, function( i, snak ) { claim.setMainSnak( snak ); - // TODO: replace with comparison function implemented in snak - assert.strictEqual( - claim.getMainSnak().getPropertyId(), - snak.getPropertyId(), - 'Main snak property id is correct' + assert.ok( + claim.getMainSnak().equals( snak ), + 'Main snak is set correctly' ); assert.strictEqual( -- To view, visit https://gerrit.wikimedia.org/r/50771 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2e2688c23c05bcf3bf1d61cd4b8f02675485dd3e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Daniel Werner <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
