diff --git a/.eslintrc.json b/.eslintrc.json index 671885c..6007f48 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,9 +1,12 @@ { - "extends": "wikimedia", - "env": { - "browser": true, - "jquery": true, - "commonjs": true + "root": true, + "extends": [ + "wikimedia/client", + "wikimedia/jquery", + "wikimedia/mediawiki" + ], + "env": { + "commonjs": true }, "globals": { "dataValues": false, @@ -11,7 +14,6 @@ }, "rules": { "computed-property-spacing": "off", - "indent": "off", "keyword-spacing": "off", "new-parens": "off", "no-underscore-dangle": "off", diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..2df8959 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,38 @@ +name: Lint and Test + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: ['20.x', '22.x', '23.x'] + + steps: + - uses: actions/checkout@v3 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Setup Chrome + uses: browser-actions/setup-chrome@latest + with: + chrome-version: stable + + - name: Configure Chrome Sandbox + run: | + sudo chown root:root /opt/hostedtoolcache/setup-chrome/chromium/stable/x64/chrome-sandbox + sudo chmod 4755 /opt/hostedtoolcache/setup-chrome/chromium/stable/x64/chrome-sandbox + + - name: Install dependencies + run: npm install + + - name: Run ESLint and tests + run: npm test + env: + CHROME_BIN: chrome + CHROME_FLAGS: --no-sandbox --headless --disable-gpu diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fb8372a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: node_js - -node_js: -- 8 -- 12 -- node - -sudo: false - -before_script: - - npm install - -script: - - npm run test - -deploy: - provider: npm - email: engineering-managers@wikimedia.de - api_key: - secure: UD4T61ZzgshstkdSRlm67mTozh79hOdJla6skyjp/KlijK21NG/1r5jB1DSo9GZNg/5W9vLOtm1GSf7qFJxrdrZSovM2ElG3VM5d3vwa7AfbR9jibjQzdYfAfAgqa5mIgPNFJjsa5utxPpeOQDzsjKwJsBp3LYlQaAArvZquUiA= - on: - tags: true - branch: master - condition: "$TRAVIS_NODE_VERSION = 12" - -notifications: - irc: - channels: - - "chat.freenode.net#wikidata-feed" - on_success: never - on_failure: always - template: - - "%{repository}/%{branch}/%{commit} : %{author} %{message} %{build_url}" diff --git a/README.md b/README.md index e84f921..04ac0fe 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Wikibase Serialization JavaScript -JavaScript library containing serializers and deserializers for the Wikibase DataModel. +JavaScript library containing serializers and deserializers for the [Wikibase DataModel](https://github.com/wmde/WikibaseDataModelJavaScript). ## Release notes ### 5.0.0 (2019-10-21) diff --git a/karma.conf.js b/karma.conf.js index a7c304f..1991816 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -13,13 +13,6 @@ module.exports = function ( config ) { 'node_modules/wikibase-data-values/src/DataValue.js', 'node_modules/wikibase-data-values/src/values/StringValue.js', 'node_modules/wikibase-data-values/src/values/UnDeserializableValue.js', - 'node_modules/wikibase-data-model/src/__namespace.js', - 'node_modules/wikibase-data-model/src/GroupableCollection.js', - 'node_modules/wikibase-data-model/src/Group.js', - 'node_modules/wikibase-data-model/src/Snak.js', - 'node_modules/wikibase-data-model/src/Set.js', - 'node_modules/wikibase-data-model/src/List.js', - 'node_modules/wikibase-data-model/src/*.js', 'tests/**/*.tests.js' ], @@ -42,6 +35,18 @@ module.exports = function ( config ) { port: 9876, logLevel: config.LOG_INFO, - browsers: [ 'PhantomJS' ] + browsers: [ 'ChromeHeadless' ], + customLaunchers: { + ChromeHeadless: { + base: 'Chrome', + flags: [ + '--no-sandbox', + '--headless', + '--disable-gpu', + '--disable-dev-shm-usage', + '--disable-software-rasterizer' + ] + } + } } ); }; diff --git a/package.json b/package.json index 40c8326..6a50dd1 100644 --- a/package.json +++ b/package.json @@ -29,15 +29,16 @@ }, "dependencies": { "jquery": "^3.2.1", - "wikibase-data-model": "^5.1.0", + "wikibase-data-model": "^6.0.0", "wikibase-data-values": "^0.10.0" }, "devDependencies": { - "eslint": "^3.19.0", - "eslint-config-wikimedia": "0.4.0", + "eslint": "^6.7.2", + "eslint-config-wikimedia": "0.15.0", + "eslint-plugin-mediawiki": "^0.2.1", "karma": "^1.7.1", "karma-cli": "^1.0.1", - "karma-phantomjs-launcher": "^1.0.4", + "karma-chrome-launcher": "^3.1.0", "karma-qunit": "^1.2.1", "karma-webpack": "^4.0.2", "qunit": "^1.0.0", diff --git a/phpcs.xml b/phpcs.xml deleted file mode 100644 index 65e99dd..0000000 --- a/phpcs.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - . - node_modules - diff --git a/src/Deserializers/ClaimDeserializer.js b/src/Deserializers/ClaimDeserializer.js index 6717dfb..ecc55fa 100644 --- a/src/Deserializers/ClaimDeserializer.js +++ b/src/Deserializers/ClaimDeserializer.js @@ -1,41 +1,41 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - SnakDeserializer = require( './SnakDeserializer.js' ), - SnakListDeserializer = require( './SnakListDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + SnakDeserializer = require( './SnakDeserializer.js' ), + SnakListDeserializer = require( './SnakListDeserializer.js' ); -/** - * @class ClaimDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * @author Daniel Werner < daniel.a.r.werner@gmail.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbClaimDeserializer', PARENT, { /** - * @inheritdoc + * @class ClaimDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > + * @author Daniel Werner < daniel.a.r.werner@gmail.com > * - * @return {datamodel.Claim} + * @constructor */ - deserialize: function( serialization ) { - var mainSnak = ( new SnakDeserializer ).deserialize( serialization.mainsnak ), - qualifiers = null, - guid = serialization.id || null; + module.exports = util.inherit( 'WbClaimDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Claim} + */ + deserialize: function( serialization ) { + var mainSnak = ( new SnakDeserializer ).deserialize( serialization.mainsnak ), + qualifiers = null, + guid = serialization.id || null; - if( serialization.qualifiers !== undefined ) { - qualifiers = ( new SnakListDeserializer() ).deserialize( - serialization.qualifiers, - serialization['qualifiers-order'] - ); - } + if( serialization.qualifiers !== undefined ) { + qualifiers = ( new SnakListDeserializer() ).deserialize( + serialization.qualifiers, + serialization['qualifiers-order'] + ); + } - return new datamodel.Claim( mainSnak, qualifiers, guid ); - } -} ); + return new datamodel.Claim( mainSnak, qualifiers, guid ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/Deserializer.js b/src/Deserializers/Deserializer.js index c3ffa27..b1e664a 100644 --- a/src/Deserializers/Deserializer.js +++ b/src/Deserializers/Deserializer.js @@ -1,4 +1,4 @@ -( function( util, $ ) { +( function() { 'use strict'; /** @@ -24,4 +24,4 @@ } ); module.exports = SELF; -}( util, jQuery ) ); +}() ); diff --git a/src/Deserializers/EntityDeserializer.js b/src/Deserializers/EntityDeserializer.js index ed6861d..6de32e4 100644 --- a/src/Deserializers/EntityDeserializer.js +++ b/src/Deserializers/EntityDeserializer.js @@ -1,60 +1,60 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - ItemDeserializer = require( './ItemDeserializer.js' ), - PropertyDeserializer = require( './PropertyDeserializer.js' ), - StrategyProvider = require( '../StrategyProvider.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + ItemDeserializer = require( './ItemDeserializer.js' ), + PropertyDeserializer = require( './PropertyDeserializer.js' ), + StrategyProvider = require( '../StrategyProvider.js' ); -/** - * @class EntityDeserializer - * @extends Deserializer - * @since 1.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbEntityDeserializer', PARENT, function() { - this._strategyProvider = new StrategyProvider(); - this._strategyProvider.registerStrategy( - new ItemDeserializer(), datamodel.Item.TYPE - ); - this._strategyProvider.registerStrategy( - new PropertyDeserializer(), datamodel.Property.TYPE - ); -}, { /** - * @property {StrategyProvider} - * @private + * @class EntityDeserializer + * @extends Deserializer + * @since 1.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > + * + * @constructor */ - _strategyProvider: null, + module.exports = util.inherit( 'WbEntityDeserializer', PARENT, function() { + this._strategyProvider = new StrategyProvider(); + this._strategyProvider.registerStrategy( + new ItemDeserializer(), datamodel.Item.TYPE + ); + this._strategyProvider.registerStrategy( + new PropertyDeserializer(), datamodel.Property.TYPE + ); + }, { + /** + * @property {StrategyProvider} + * @private + */ + _strategyProvider: null, - /** - * @param {Deserializer} deserializer - * @param {string} entityType - */ - registerStrategy: function( deserializer, entityType ) { - this._strategyProvider.registerStrategy( deserializer, entityType ); - }, + /** + * @param {Deserializer} deserializer + * @param {string} entityType + */ + registerStrategy: function( deserializer, entityType ) { + this._strategyProvider.registerStrategy( deserializer, entityType ); + }, - /** - * @inheritdoc - * - * @return {datamodel.Entity} - * - * @throws {Error} if unable to detect the entity type from the serialization. - */ - deserialize: function( serialization ) { - if( !serialization.type || typeof serialization.type !== 'string' ) { - throw new Error( 'Can not determine type of Entity from serialized object' ); - } + /** + * @inheritdoc + * + * @return {datamodel.Entity} + * + * @throws {Error} if unable to detect the entity type from the serialization. + */ + deserialize: function( serialization ) { + if( !serialization.type || typeof serialization.type !== 'string' ) { + throw new Error( 'Can not determine type of Entity from serialized object' ); + } - return this._strategyProvider - .getStrategyFor( serialization.type ) - .deserialize( serialization ); - } -} ); + return this._strategyProvider + .getStrategyFor( serialization.type ) + .deserialize( serialization ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/FingerprintDeserializer.js b/src/Deserializers/FingerprintDeserializer.js index 598d305..5ef9ca7 100644 --- a/src/Deserializers/FingerprintDeserializer.js +++ b/src/Deserializers/FingerprintDeserializer.js @@ -1,36 +1,36 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - TermMapDeserializer = require( './TermMapDeserializer.js' ), - MultiTermMapDeserializer = require( './MultiTermMapDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + TermMapDeserializer = require( './TermMapDeserializer.js' ), + MultiTermMapDeserializer = require( './MultiTermMapDeserializer.js' ); -/** - * @class FingerprintDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbFingerprintDeserializer', PARENT, { /** - * @inheritdoc + * @class FingerprintDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.Fingerprint} + * @constructor */ - deserialize: function( serialization ) { - var termMapDeserializer = new TermMapDeserializer(), - multiTermMapDeserializer = new MultiTermMapDeserializer(); + module.exports = util.inherit( 'WbFingerprintDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Fingerprint} + */ + deserialize: function( serialization ) { + var termMapDeserializer = new TermMapDeserializer(), + multiTermMapDeserializer = new MultiTermMapDeserializer(); - return new datamodel.Fingerprint( - termMapDeserializer.deserialize( serialization.labels ), - termMapDeserializer.deserialize( serialization.descriptions ), - multiTermMapDeserializer.deserialize( serialization.aliases ) - ); - } -} ); + return new datamodel.Fingerprint( + termMapDeserializer.deserialize( serialization.labels ), + termMapDeserializer.deserialize( serialization.descriptions ), + multiTermMapDeserializer.deserialize( serialization.aliases ) + ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/ItemDeserializer.js b/src/Deserializers/ItemDeserializer.js index 93daf6f..12661ab 100644 --- a/src/Deserializers/ItemDeserializer.js +++ b/src/Deserializers/ItemDeserializer.js @@ -1,45 +1,45 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - Item = require( 'wikibase.datamodel' ).Item, - StatementGroupSetDeserializer = require( './StatementGroupSetDeserializer.js' ), - FingerprintDeserializer = require( './FingerprintDeserializer.js' ), - SiteLinkSetDeserializer = require( './SiteLinkSetDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + Item = require( 'wikibase.datamodel' ).Item, + StatementGroupSetDeserializer = require( './StatementGroupSetDeserializer.js' ), + FingerprintDeserializer = require( './FingerprintDeserializer.js' ), + SiteLinkSetDeserializer = require( './SiteLinkSetDeserializer.js' ); -/** - * @class ItemDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbItemDeserializer', PARENT, { /** - * @inheritdoc + * @class ItemDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {Item} - * - * @throws {Error} if serialization does not resolve to a serialized Item. + * @constructor */ - deserialize: function( serialization ) { - if( serialization.type !== Item.TYPE ) { - throw new Error( 'Serialization does not resolve to an Item' ); - } + module.exports = util.inherit( 'WbItemDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {Item} + * + * @throws {Error} if serialization does not resolve to a serialized Item. + */ + deserialize: function( serialization ) { + if( serialization.type !== Item.TYPE ) { + throw new Error( 'Serialization does not resolve to an Item' ); + } - var fingerprintDeserializer = new FingerprintDeserializer(), - statementGroupSetDeserializer = new StatementGroupSetDeserializer(), - siteLinkSetDeserializer = new SiteLinkSetDeserializer(); + var fingerprintDeserializer = new FingerprintDeserializer(), + statementGroupSetDeserializer = new StatementGroupSetDeserializer(), + siteLinkSetDeserializer = new SiteLinkSetDeserializer(); - return new Item( - serialization.id, - fingerprintDeserializer.deserialize( serialization ), - statementGroupSetDeserializer.deserialize( serialization.claims ), - siteLinkSetDeserializer.deserialize( serialization.sitelinks ) - ); - } -} ); + return new Item( + serialization.id, + fingerprintDeserializer.deserialize( serialization ), + statementGroupSetDeserializer.deserialize( serialization.claims ), + siteLinkSetDeserializer.deserialize( serialization.sitelinks ) + ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/MultiTermDeserializer.js b/src/Deserializers/MultiTermDeserializer.js index 562efe6..70f0c43 100644 --- a/src/Deserializers/MultiTermDeserializer.js +++ b/src/Deserializers/MultiTermDeserializer.js @@ -1,40 +1,40 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class MultiTermDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbMultiTermDeserializer', PARENT, { /** - * @inheritdoc + * @class MultiTermDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.MultiTerm} - * - * @throws {Error} if serialization is empty. + * @constructor */ - deserialize: function( serialization ) { - if( !serialization.length ) { - throw new Error( 'Unable to deserialize empty serialization to MultiTerm' ); - } + module.exports = util.inherit( 'WbMultiTermDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.MultiTerm} + * + * @throws {Error} if serialization is empty. + */ + deserialize: function( serialization ) { + if( !serialization.length ) { + throw new Error( 'Unable to deserialize empty serialization to MultiTerm' ); + } - var languageCode = serialization[0].language, - terms = []; + var languageCode = serialization[0].language, + terms = []; - for( var i = 0; i < serialization.length; i++ ) { - terms.push( serialization[i].value ); - } + for( var i = 0; i < serialization.length; i++ ) { + terms.push( serialization[i].value ); + } - return new datamodel.MultiTerm( languageCode, terms ); - } -} ); + return new datamodel.MultiTerm( languageCode, terms ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/MultiTermMapDeserializer.js b/src/Deserializers/MultiTermMapDeserializer.js index 1376c6e..8243a31 100644 --- a/src/Deserializers/MultiTermMapDeserializer.js +++ b/src/Deserializers/MultiTermMapDeserializer.js @@ -1,36 +1,35 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - MultiTermDeserializer = require( './MultiTermDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + MultiTermDeserializer = require( './MultiTermDeserializer.js' ); -/** - * @class MultiTermMapDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbMultiTermMapDeserializer', PARENT, { /** - * @inheritdoc + * @class MultiTermMapDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.MultiTermMap} + * @constructor */ - deserialize: function( serialization ) { - var multiTerms = {}, - multiTermDeserializer = new MultiTermDeserializer(); + module.exports = util.inherit( 'WbMultiTermMapDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.MultiTermMap} + */ + deserialize: function( serialization ) { + var multiTerms = {}, + multiTermDeserializer = new MultiTermDeserializer(); - for( var languageCode in serialization ) { - multiTerms[languageCode] - = multiTermDeserializer.deserialize( serialization[languageCode] ); - } + for( var languageCode in serialization ) { + multiTerms[languageCode] = multiTermDeserializer.deserialize( serialization[languageCode] ); + } - return new datamodel.MultiTermMap( multiTerms ); - } -} ); + return new datamodel.MultiTermMap( multiTerms ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/PropertyDeserializer.js b/src/Deserializers/PropertyDeserializer.js index 0d1c860..e4d7df3 100644 --- a/src/Deserializers/PropertyDeserializer.js +++ b/src/Deserializers/PropertyDeserializer.js @@ -1,43 +1,43 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - StatementGroupSetDeserializer = require( './StatementGroupSetDeserializer.js' ), - FingerprintDeserializer = require( './FingerprintDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + StatementGroupSetDeserializer = require( './StatementGroupSetDeserializer.js' ), + FingerprintDeserializer = require( './FingerprintDeserializer.js' ); -/** - * @class PropertyDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbPropertyDeserializer', PARENT, { /** - * @inheritdoc + * @class PropertyDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.Property} - * - * @throws {Error} if serialization does not resolve to a serialized Property. + * @constructor */ - deserialize: function( serialization ) { - if( serialization.type !== datamodel.Property.TYPE ) { - throw new Error( 'Serialization does not resolve to a Property' ); - } + module.exports = util.inherit( 'WbPropertyDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Property} + * + * @throws {Error} if serialization does not resolve to a serialized Property. + */ + deserialize: function( serialization ) { + if( serialization.type !== datamodel.Property.TYPE ) { + throw new Error( 'Serialization does not resolve to a Property' ); + } - var fingerprintDeserializer = new FingerprintDeserializer(), - statementGroupSetDeserializer = new StatementGroupSetDeserializer(); + var fingerprintDeserializer = new FingerprintDeserializer(), + statementGroupSetDeserializer = new StatementGroupSetDeserializer(); - return new datamodel.Property( - serialization.id, - serialization.datatype, - fingerprintDeserializer.deserialize( serialization ), - statementGroupSetDeserializer.deserialize( serialization.claims ) - ); - } -} ); + return new datamodel.Property( + serialization.id, + serialization.datatype, + fingerprintDeserializer.deserialize( serialization ), + statementGroupSetDeserializer.deserialize( serialization.claims ) + ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/ReferenceDeserializer.js b/src/Deserializers/ReferenceDeserializer.js index b28d7bd..cfcab54 100644 --- a/src/Deserializers/ReferenceDeserializer.js +++ b/src/Deserializers/ReferenceDeserializer.js @@ -1,34 +1,34 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - SnakListDeserializer = require( './SnakListDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + SnakListDeserializer = require( './SnakListDeserializer.js' ); -/** - * @class ReferenceDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbReferenceDeserializer', PARENT, { /** - * @inheritdoc + * @class ReferenceDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.Reference} + * @constructor */ - deserialize: function( serialization ) { - return new datamodel.Reference( - ( new SnakListDeserializer() ).deserialize( - serialization.snaks, - serialization['snaks-order'] - ), - serialization.hash - ); - } -} ); + module.exports = util.inherit( 'WbReferenceDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Reference} + */ + deserialize: function( serialization ) { + return new datamodel.Reference( + ( new SnakListDeserializer() ).deserialize( + serialization.snaks, + serialization['snaks-order'] + ), + serialization.hash + ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/ReferenceListDeserializer.js b/src/Deserializers/ReferenceListDeserializer.js index 594fe11..25993cb 100644 --- a/src/Deserializers/ReferenceListDeserializer.js +++ b/src/Deserializers/ReferenceListDeserializer.js @@ -1,35 +1,35 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - ReferenceDeserializer = require( './ReferenceDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + ReferenceDeserializer = require( './ReferenceDeserializer.js' ); -/** - * @class ReferenceListDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbReferenceListDeserializer', PARENT, { /** - * @inheritdoc + * @class ReferenceListDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.ReferenceList} + * @constructor */ - deserialize: function( serialization ) { - var references = [], - referenceDeserializer = new ReferenceDeserializer(); + module.exports = util.inherit( 'WbReferenceListDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.ReferenceList} + */ + deserialize: function( serialization ) { + var references = [], + referenceDeserializer = new ReferenceDeserializer(); - for( var i = 0; i < serialization.length; i++ ) { - references.push( referenceDeserializer.deserialize( serialization[i] ) ); - } + for( var i = 0; i < serialization.length; i++ ) { + references.push( referenceDeserializer.deserialize( serialization[i] ) ); + } - return new datamodel.ReferenceList( references ); - } -} ); + return new datamodel.ReferenceList( references ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/SiteLinkDeserializer.js b/src/Deserializers/SiteLinkDeserializer.js index b879caa..546f5d5 100644 --- a/src/Deserializers/SiteLinkDeserializer.js +++ b/src/Deserializers/SiteLinkDeserializer.js @@ -1,32 +1,32 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class SiteLinkDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSiteLinkDeserializer', PARENT, { /** - * @inheritdoc + * @class SiteLinkDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {Object} serialization - * @return {datamodel.SiteLink} + * @constructor */ - deserialize: function( serialization ) { - return new datamodel.SiteLink( - serialization.site, - serialization.title, - serialization.badges - ); - } -} ); + module.exports = util.inherit( 'WbSiteLinkDeserializer', PARENT, { + /** + * @inheritdoc + * + * @param {Object} serialization + * @return {datamodel.SiteLink} + */ + deserialize: function( serialization ) { + return new datamodel.SiteLink( + serialization.site, + serialization.title, + serialization.badges + ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/SiteLinkSetDeserializer.js b/src/Deserializers/SiteLinkSetDeserializer.js index ae6d1fd..3517c08 100644 --- a/src/Deserializers/SiteLinkSetDeserializer.js +++ b/src/Deserializers/SiteLinkSetDeserializer.js @@ -1,35 +1,35 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - SiteLinkDeserializer = require( './SiteLinkDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + SiteLinkDeserializer = require( './SiteLinkDeserializer.js' ); -/** - * @class SiteLinkSetDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSiteLinkSetDeserializer', PARENT, { /** - * @inheritdoc + * @class SiteLinkSetDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.SiteLinkSet} + * @constructor */ - deserialize: function( serialization ) { - var siteLinks = [], - siteLinkDeserializer = new SiteLinkDeserializer(); + module.exports = util.inherit( 'WbSiteLinkSetDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.SiteLinkSet} + */ + deserialize: function( serialization ) { + var siteLinks = [], + siteLinkDeserializer = new SiteLinkDeserializer(); - for( var siteId in serialization ) { - siteLinks.push( siteLinkDeserializer.deserialize( serialization[siteId] ) ); - } + for( var siteId in serialization ) { + siteLinks.push( siteLinkDeserializer.deserialize( serialization[siteId] ) ); + } - return new datamodel.SiteLinkSet( siteLinks ); - } -} ); + return new datamodel.SiteLinkSet( siteLinks ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/SnakDeserializer.js b/src/Deserializers/SnakDeserializer.js index 45c21d7..672d205 100644 --- a/src/Deserializers/SnakDeserializer.js +++ b/src/Deserializers/SnakDeserializer.js @@ -1,48 +1,48 @@ -( function( util, dv ) { +( function( dv ) { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class SnakDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * @author Daniel Werner < daniel.a.r.werner@gmail.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSnakDeserializer', PARENT, { /** - * @inheritdoc + * @class SnakDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > + * @author Daniel Werner < daniel.a.r.werner@gmail.com > * - * @return {datamodel.Snak} - * - * @throws {Error} if no constructor for the snak type detected exists. + * @constructor */ - deserialize: function( serialization ) { - if( serialization.snaktype === 'novalue' ) { - return new datamodel.PropertyNoValueSnak( serialization.property, serialization.hash ); - } else if( serialization.snaktype === 'somevalue' ) { - return new datamodel.PropertySomeValueSnak( serialization.property, serialization.hash ); - } else if( serialization.snaktype === 'value' ) { - var dataValue = null, - type = serialization.datavalue.type, - value = serialization.datavalue.value; + module.exports = util.inherit( 'WbSnakDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Snak} + * + * @throws {Error} if no constructor for the snak type detected exists. + */ + deserialize: function( serialization ) { + if( serialization.snaktype === 'novalue' ) { + return new datamodel.PropertyNoValueSnak( serialization.property, serialization.hash ); + } else if( serialization.snaktype === 'somevalue' ) { + return new datamodel.PropertySomeValueSnak( serialization.property, serialization.hash ); + } else if( serialization.snaktype === 'value' ) { + var dataValue = null, + type = serialization.datavalue.type, + value = serialization.datavalue.value; + + try { + dataValue = dv.newDataValue( type, value ); + } catch( error ) { + dataValue = new dv.UnDeserializableValue( value, type, error.message ); + } - try { - dataValue = dv.newDataValue( type, value ); - } catch( error ) { - dataValue = new dv.UnDeserializableValue( value, type, error.message ); + return new datamodel.PropertyValueSnak( serialization.property, dataValue, serialization.hash ); } - return new datamodel.PropertyValueSnak( serialization.property, dataValue, serialization.hash ); + throw new Error( 'Incompatible snak type' ); } + } ); - throw new Error( 'Incompatible snak type' ); - } -} ); - -}( util, dataValues ) ); +}( dataValues ) ); diff --git a/src/Deserializers/SnakListDeserializer.js b/src/Deserializers/SnakListDeserializer.js index 6346a14..f87b01d 100644 --- a/src/Deserializers/SnakListDeserializer.js +++ b/src/Deserializers/SnakListDeserializer.js @@ -1,82 +1,84 @@ -( function( util, $ ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - SnakDeserializer = require( './SnakDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + SnakDeserializer = require( './SnakDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @param {Object[]} serializedSnaks - * @param {datamodel.Snak[]} snaks - * @return {datamodel.SnakList} - */ -function addSerializedSnaksToSnakList( serializedSnaks, snaks ) { - var snakDeserializer = new SnakDeserializer(); + /** + * @param {Object[]} serializedSnaks + * @param {datamodel.Snak[]} snaks + * @return {datamodel.SnakList} + */ + function addSerializedSnaksToSnakList( serializedSnaks, snaks ) { + var snakDeserializer = new SnakDeserializer(); - for( var i = 0; i < serializedSnaks.length; i++ ) { - snaks.push( snakDeserializer.deserialize( serializedSnaks[i] ) ); - } + for( var i = 0; i < serializedSnaks.length; i++ ) { + snaks.push( snakDeserializer.deserialize( serializedSnaks[i] ) ); + } - return snaks; -} + return snaks; + } -/** - * @class SnakListDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSnakListDeserializer', PARENT, { /** - * @inheritdoc - * - * @param {Object} serialization - * @param {string[]} [order] - * @return {datamodel.SnakList} + * @class SnakListDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if the order parameter is provided but the property id of a snak - * serialization is no represented in the order. - * @throws {Error} if the order parameter is provided but no snak exists for a property - * represented in the order. + * @constructor */ - deserialize: function( serialization, order ) { - var snaks = []; + module.exports = util.inherit( 'WbSnakListDeserializer', PARENT, { + /** + * @inheritdoc + * + * @param {Object} serialization + * @param {string[]} [order] + * @return {datamodel.SnakList} + * + * @throws {Error} if the order parameter is provided but the property id of a snak + * serialization is no represented in the order. + * @throws {Error} if the order parameter is provided but no snak exists for a property + * represented in the order. + */ + deserialize: function( serialization, order ) { + var snaks = []; - if( !order ) { + if( !order ) { // No order specified: Just loop through the json object: - $.each( serialization, function( propertyId, snaksPerProperty ) { - addSerializedSnaksToSnakList( snaksPerProperty, snaks ); - } ); + // eslint-disable-next-line no-jquery/no-each-util + $.each( serialization, function( propertyId, snaksPerProperty ) { + addSerializedSnaksToSnakList( snaksPerProperty, snaks ); + } ); - } else { + } else { // Check whether all property ids that are featured by snaks are specified in the order // list: - $.each( serialization, function( propertyId ) { - if( $.inArray( propertyId, order ) === -1 ) { - throw new Error( 'Snak featuring the property id ' + propertyId + ' is not ' - + 'present within list of property ids defined for ordering' ); - } - } ); + // eslint-disable-next-line no-jquery/no-each-util + $.each( serialization, function( propertyId ) { + if( order.indexOf( propertyId ) === -1 ) { + throw new Error( 'Snak featuring the property id ' + propertyId + ' is not ' + + 'present within list of property ids defined for ordering' ); + } + } ); - // Add all snaks grouped by property according to the order specified via the "order" - // parameter: - for( var i = 0; i < order.length; i++ ) { - var propertyId = order[i]; + // Add all snaks grouped by property according to the order specified via the "order" + // parameter: + for( var i = 0; i < order.length; i++ ) { + var propertyId = order[i]; - if( !serialization[propertyId] ) { - throw new Error( 'Trying to oder by property ' + propertyId + ' without any ' - + 'snak featuring this property being present' ); - } + if( !serialization[propertyId] ) { + throw new Error( 'Trying to oder by property ' + propertyId + ' without any ' + + 'snak featuring this property being present' ); + } - addSerializedSnaksToSnakList( serialization[propertyId], snaks ); + addSerializedSnaksToSnakList( serialization[propertyId], snaks ); + } } - } - return new datamodel.SnakList( snaks ); - } -} ); + return new datamodel.SnakList( snaks ); + } + } ); -}( util, jQuery ) ); +}() ); diff --git a/src/Deserializers/StatementDeserializer.js b/src/Deserializers/StatementDeserializer.js index e554d19..5f30033 100644 --- a/src/Deserializers/StatementDeserializer.js +++ b/src/Deserializers/StatementDeserializer.js @@ -1,38 +1,38 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - ReferenceListDeserializer = require( './ReferenceListDeserializer.js' ), - ClaimDeserializer = require( './ClaimDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + ReferenceListDeserializer = require( './ReferenceListDeserializer.js' ), + ClaimDeserializer = require( './ClaimDeserializer.js' ); -/** - * @class StatementDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementDeserializer', PARENT, { /** - * @inheritdoc + * @class StatementDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.Statement} + * @constructor */ - deserialize: function( serialization ) { - var claim = ( new ClaimDeserializer() ).deserialize( serialization ), - references = null, - rank = datamodel.Statement.RANK[serialization.rank.toUpperCase()]; + module.exports = util.inherit( 'WbStatementDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Statement} + */ + deserialize: function( serialization ) { + var claim = ( new ClaimDeserializer() ).deserialize( serialization ), + references = null, + rank = datamodel.Statement.RANK[serialization.rank.toUpperCase()]; - if( serialization.references !== undefined ) { - var referenceDeserializer = new ReferenceListDeserializer(); - references = referenceDeserializer.deserialize( serialization.references ); - } + if( serialization.references !== undefined ) { + var referenceDeserializer = new ReferenceListDeserializer(); + references = referenceDeserializer.deserialize( serialization.references ); + } - return new datamodel.Statement( claim, references, rank ); - } -} ); + return new datamodel.Statement( claim, references, rank ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/StatementGroupDeserializer.js b/src/Deserializers/StatementGroupDeserializer.js index 57b32f7..6e6b159 100644 --- a/src/Deserializers/StatementGroupDeserializer.js +++ b/src/Deserializers/StatementGroupDeserializer.js @@ -1,37 +1,37 @@ -( function( util, $ ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - StatementListDeserializer = require( './StatementListDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + StatementListDeserializer = require( './StatementListDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class StatementGroupDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementGroupDeserializer', PARENT, { /** - * @inheritdoc + * @class StatementGroupDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.StatementGroup} - * - * @throws {Error} if serialization is an empty object. + * @constructor */ - deserialize: function( serialization ) { - if( $.isEmptyObject( serialization ) ) { - throw new Error( 'Cannot deserialize empty serialization' ); - } + module.exports = util.inherit( 'WbStatementGroupDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.StatementGroup} + * + * @throws {Error} if serialization is an empty object. + */ + deserialize: function( serialization ) { + if( $.isEmptyObject( serialization ) ) { + throw new Error( 'Cannot deserialize empty serialization' ); + } - var statementListDeserializer = new StatementListDeserializer(), - statementList = statementListDeserializer.deserialize( serialization ); + var statementListDeserializer = new StatementListDeserializer(), + statementList = statementListDeserializer.deserialize( serialization ); - return new datamodel.StatementGroup( statementList.getPropertyIds()[0], statementList ); - } -} ); + return new datamodel.StatementGroup( statementList.getPropertyIds()[0], statementList ); + } + } ); -}( util, jQuery ) ); +}() ); diff --git a/src/Deserializers/StatementGroupSetDeserializer.js b/src/Deserializers/StatementGroupSetDeserializer.js index 8ffcdea..9ea14cb 100644 --- a/src/Deserializers/StatementGroupSetDeserializer.js +++ b/src/Deserializers/StatementGroupSetDeserializer.js @@ -1,37 +1,37 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - StatementGroupDeserializer = require( './StatementGroupDeserializer.js' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + StatementGroupDeserializer = require( './StatementGroupDeserializer.js' ); -/** - * @class StatementGroupSetDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementGroupSetDeserializer', PARENT, { /** - * @inheritdoc + * @class StatementGroupSetDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.StatementGroupSet} + * @constructor */ - deserialize: function( serialization ) { - var statemenGroupDeserializer = new StatementGroupDeserializer(), - statementGroups = []; + module.exports = util.inherit( 'WbStatementGroupSetDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.StatementGroupSet} + */ + deserialize: function( serialization ) { + var statemenGroupDeserializer = new StatementGroupDeserializer(), + statementGroups = []; - for( var propertyId in serialization ) { - statementGroups.push( - statemenGroupDeserializer.deserialize( serialization[propertyId] ) - ); - } + for( var propertyId in serialization ) { + statementGroups.push( + statemenGroupDeserializer.deserialize( serialization[propertyId] ) + ); + } - return new datamodel.StatementGroupSet( statementGroups ); - } -} ); + return new datamodel.StatementGroupSet( statementGroups ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/StatementListDeserializer.js b/src/Deserializers/StatementListDeserializer.js index b1fa29e..ce217c3 100644 --- a/src/Deserializers/StatementListDeserializer.js +++ b/src/Deserializers/StatementListDeserializer.js @@ -1,35 +1,35 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - StatementDeserializer = require( './StatementDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + StatementDeserializer = require( './StatementDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class StatementListDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementListDeserializer', PARENT, { /** - * @inheritdoc + * @class StatementListDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.StatementList} + * @constructor */ - deserialize: function( serialization ) { - var statements = [], - statementDeserializer = new StatementDeserializer(); + module.exports = util.inherit( 'WbStatementListDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.StatementList} + */ + deserialize: function( serialization ) { + var statements = [], + statementDeserializer = new StatementDeserializer(); - for( var i = 0; i < serialization.length; i++ ) { - statements.push( statementDeserializer.deserialize( serialization[i] ) ); - } + for( var i = 0; i < serialization.length; i++ ) { + statements.push( statementDeserializer.deserialize( serialization[i] ) ); + } - return new datamodel.StatementList( statements ); - } -} ); + return new datamodel.StatementList( statements ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/TermDeserializer.js b/src/Deserializers/TermDeserializer.js index 9167104..965e171 100644 --- a/src/Deserializers/TermDeserializer.js +++ b/src/Deserializers/TermDeserializer.js @@ -1,27 +1,27 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class TermDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbTermDeserializer', PARENT, { /** - * @inheritdoc + * @class TermDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.Term} + * @constructor */ - deserialize: function( serialization ) { - return new datamodel.Term( serialization.language, serialization.value ); - } -} ); + module.exports = util.inherit( 'WbTermDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.Term} + */ + deserialize: function( serialization ) { + return new datamodel.Term( serialization.language, serialization.value ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Deserializers/TermMapDeserializer.js b/src/Deserializers/TermMapDeserializer.js index 9940884..13fc8a6 100644 --- a/src/Deserializers/TermMapDeserializer.js +++ b/src/Deserializers/TermMapDeserializer.js @@ -1,35 +1,35 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Deserializer.js' ), - TermDeserializer = require( './TermDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Deserializer.js' ), + TermDeserializer = require( './TermDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class TermMapDeserializer - * @extends Deserializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbTermMapDeserializer', PARENT, { /** - * @inheritdoc + * @class TermMapDeserializer + * @extends Deserializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @return {datamodel.TermMap} + * @constructor */ - deserialize: function( serialization ) { - var terms = {}, - termDeserializer = new TermDeserializer(); + module.exports = util.inherit( 'WbTermMapDeserializer', PARENT, { + /** + * @inheritdoc + * + * @return {datamodel.TermMap} + */ + deserialize: function( serialization ) { + var terms = {}, + termDeserializer = new TermDeserializer(); - for( var languageCode in serialization ) { - terms[languageCode] = termDeserializer.deserialize( serialization[languageCode] ); - } + for( var languageCode in serialization ) { + terms[languageCode] = termDeserializer.deserialize( serialization[languageCode] ); + } - return new datamodel.TermMap( terms ); - } -} ); + return new datamodel.TermMap( terms ); + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/ClaimSerializer.js b/src/Serializers/ClaimSerializer.js index f3f99b9..877a6ed 100644 --- a/src/Serializers/ClaimSerializer.js +++ b/src/Serializers/ClaimSerializer.js @@ -1,55 +1,55 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - SnakSerializer = require( './SnakSerializer.js' ), - SnakListSerializer = require( './SnakListSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); - -/** - * @class ClaimSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbClaimSerializer', PARENT, { + var PARENT = require( './Serializer.js' ), + SnakSerializer = require( './SnakSerializer.js' ), + SnakListSerializer = require( './SnakListSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); + /** - * @inheritdoc - * - * @param {datamodel.Claim} claim - * @return {Object} + * @class ClaimSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if claim is not a Claim instance. + * @constructor */ - serialize: function( claim ) { - if( !( claim instanceof datamodel.Claim ) ) { - throw new Error( 'Not an instance of datamodel.Claim' ); + module.exports = util.inherit( 'WbClaimSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.Claim} claim + * @return {Object} + * + * @throws {Error} if claim is not a Claim instance. + */ + serialize: function( claim ) { + if( !( claim instanceof datamodel.Claim ) ) { + throw new Error( 'Not an instance of datamodel.Claim' ); + } + + var snakSerializer = new SnakSerializer(), + snakListSerializer = new SnakListSerializer(), + guid = claim.getGuid(), + qualifiers = claim.getQualifiers(); + + var serialization = { + type: 'claim', + mainsnak: snakSerializer.serialize( claim.getMainSnak() ) + }; + + if( guid ) { + serialization.id = guid; + } + + if( qualifiers.length ) { + serialization.qualifiers = snakListSerializer.serialize( qualifiers ); + serialization['qualifiers-order'] = qualifiers.getPropertyOrder(); + } + + return serialization; } + } ); - var snakSerializer = new SnakSerializer(), - snakListSerializer = new SnakListSerializer(), - guid = claim.getGuid(), - qualifiers = claim.getQualifiers(); - - var serialization = { - type: 'claim', - mainsnak: snakSerializer.serialize( claim.getMainSnak() ) - }; - - if( guid ) { - serialization.id = guid; - } - - if( qualifiers.length ) { - serialization.qualifiers = snakListSerializer.serialize( qualifiers ); - serialization['qualifiers-order'] = qualifiers.getPropertyOrder(); - } - - return serialization; - } -} ); - -}( util ) ); +}() ); diff --git a/src/Serializers/ReferenceListSerializer.js b/src/Serializers/ReferenceListSerializer.js index e7f5352..3646c54 100644 --- a/src/Serializers/ReferenceListSerializer.js +++ b/src/Serializers/ReferenceListSerializer.js @@ -1,43 +1,43 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - ReferenceSerializer = require( './ReferenceSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Serializer.js' ), + ReferenceSerializer = require( './ReferenceSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class ReferenceListSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbReferenceLisSerializer', PARENT, { /** - * @inheritdoc + * @class ReferenceListSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {datamodel.ReferenceList} referenceList - * @return {Object[]} - * - * @throws {Error} if referenceList is not a ReferenceList instance. + * @constructor */ - serialize: function( referenceList ) { - if( !( referenceList instanceof datamodel.ReferenceList ) ) { - throw new Error( 'Not an instance of datamodel.ReferenceList' ); - } + module.exports = util.inherit( 'WbReferenceLisSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.ReferenceList} referenceList + * @return {Object[]} + * + * @throws {Error} if referenceList is not a ReferenceList instance. + */ + serialize: function( referenceList ) { + if( !( referenceList instanceof datamodel.ReferenceList ) ) { + throw new Error( 'Not an instance of datamodel.ReferenceList' ); + } - var serialization = [], - referenceSerializer = new ReferenceSerializer(), - references = referenceList.toArray(); + var serialization = [], + referenceSerializer = new ReferenceSerializer(), + references = referenceList.toArray(); - for( var i = 0; i < references.length; i++ ) { - serialization.push( referenceSerializer.serialize( references[i] ) ); - } + for( var i = 0; i < references.length; i++ ) { + serialization.push( referenceSerializer.serialize( references[i] ) ); + } - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/ReferenceSerializer.js b/src/Serializers/ReferenceSerializer.js index e861fca..87d4044 100644 --- a/src/Serializers/ReferenceSerializer.js +++ b/src/Serializers/ReferenceSerializer.js @@ -1,48 +1,48 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - SnakListSerializer = require( './SnakListSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Serializer.js' ), + SnakListSerializer = require( './SnakListSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class ReferenceSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbReferenceSerializer', PARENT, { /** - * @inheritdoc + * @class ReferenceSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {datamodel.Reference} reference - * @return {Object} - * - * @throws {Error} if reference is not a Reference instance. + * @constructor */ - serialize: function( reference ) { - if( !( reference instanceof datamodel.Reference ) ) { - throw new Error( 'Not an instance of datamodel.Reference' ); - } + module.exports = util.inherit( 'WbReferenceSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.Reference} reference + * @return {Object} + * + * @throws {Error} if reference is not a Reference instance. + */ + serialize: function( reference ) { + if( !( reference instanceof datamodel.Reference ) ) { + throw new Error( 'Not an instance of datamodel.Reference' ); + } - var snakListSerializer = new SnakListSerializer(), - snakList = reference.getSnaks(), - hash = reference.getHash(); + var snakListSerializer = new SnakListSerializer(), + snakList = reference.getSnaks(), + hash = reference.getHash(); - var serialization = { - snaks: snakListSerializer.serialize( snakList ), - 'snaks-order': snakList.getPropertyOrder() - }; + var serialization = { + snaks: snakListSerializer.serialize( snakList ), + 'snaks-order': snakList.getPropertyOrder() + }; - if( hash ) { - serialization.hash = hash; - } + if( hash ) { + serialization.hash = hash; + } - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/Serializer.js b/src/Serializers/Serializer.js index f901504..efd59d0 100644 --- a/src/Serializers/Serializer.js +++ b/src/Serializers/Serializer.js @@ -1,4 +1,4 @@ -( function( util, $ ) { +( function() { 'use strict'; /** @@ -24,4 +24,4 @@ } ); module.exports = SELF; -}( util, jQuery ) ); +}() ); diff --git a/src/Serializers/SnakListSerializer.js b/src/Serializers/SnakListSerializer.js index 43bc91c..2ddf1fe 100644 --- a/src/Serializers/SnakListSerializer.js +++ b/src/Serializers/SnakListSerializer.js @@ -1,48 +1,48 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - SnakSerializer = require( './SnakSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); - -/** - * @class SnakListSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSnakListSerializer', PARENT, { + var PARENT = require( './Serializer.js' ), + SnakSerializer = require( './SnakSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); + /** - * @inheritdoc - * - * @param {datamodel.SnakList} snakList - * @return {Object} + * @class SnakListSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if snakList is not a SnakList instance. + * @constructor */ - serialize: function( snakList ) { - if( !( snakList instanceof datamodel.SnakList ) ) { - throw new Error( 'Not an instance of datamodel.SnakList' ); - } + module.exports = util.inherit( 'WbSnakListSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.SnakList} snakList + * @return {Object} + * + * @throws {Error} if snakList is not a SnakList instance. + */ + serialize: function( snakList ) { + if( !( snakList instanceof datamodel.SnakList ) ) { + throw new Error( 'Not an instance of datamodel.SnakList' ); + } - var serialization = {}, - snakSerializer = new SnakSerializer(); + var serialization = {}, + snakSerializer = new SnakSerializer(); - snakList.each( function( i, snak ) { - var propertyId = snak.getPropertyId(); + snakList.each( function( i, snak ) { + var propertyId = snak.getPropertyId(); - if( !serialization[propertyId] ) { - serialization[propertyId] = []; - } + if( !serialization[propertyId] ) { + serialization[propertyId] = []; + } - serialization[propertyId].push( snakSerializer.serialize( snak ) ); - } ); + serialization[propertyId].push( snakSerializer.serialize( snak ) ); + } ); - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/SnakSerializer.js b/src/Serializers/SnakSerializer.js index d1770dd..45b4672 100644 --- a/src/Serializers/SnakSerializer.js +++ b/src/Serializers/SnakSerializer.js @@ -1,52 +1,52 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - datamodel = require( 'wikibase.datamodel' ); - -/** - * @class SnakSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbSnakSerializer', PARENT, { + var PARENT = require( './Serializer.js' ), + datamodel = require( 'wikibase.datamodel' ); + /** - * @inheritdoc - * - * @param {datamodel.Snak} snak - * @return {Object} + * @class SnakSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if snak is not a Snak instance. + * @constructor */ - serialize: function( snak ) { - if( !( snak instanceof datamodel.Snak ) ) { - throw new Error( 'Not an instance of datamodel.Snak' ); - } + module.exports = util.inherit( 'WbSnakSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.Snak} snak + * @return {Object} + * + * @throws {Error} if snak is not a Snak instance. + */ + serialize: function( snak ) { + if( !( snak instanceof datamodel.Snak ) ) { + throw new Error( 'Not an instance of datamodel.Snak' ); + } + + var serialization = { + snaktype: snak.getType(), + property: snak.getPropertyId() + }; - var serialization = { - snaktype: snak.getType(), - property: snak.getPropertyId() - }; + if( snak.getHash() !== null ) { + serialization.hash = snak.getHash(); + } - if( snak.getHash() !== null ) { - serialization.hash = snak.getHash(); - } + if( snak instanceof datamodel.PropertyValueSnak ) { + var dataValue = snak.getValue(); - if( snak instanceof datamodel.PropertyValueSnak ) { - var dataValue = snak.getValue(); + serialization.datavalue = { + type: dataValue.getType(), + value: dataValue.toJSON() + }; + } - serialization.datavalue = { - type: dataValue.getType(), - value: dataValue.toJSON() - }; + return serialization; } + } ); - return serialization; - } -} ); - -}( util ) ); +}() ); diff --git a/src/Serializers/StatementListSerializer.js b/src/Serializers/StatementListSerializer.js index 7287596..31a5d65 100644 --- a/src/Serializers/StatementListSerializer.js +++ b/src/Serializers/StatementListSerializer.js @@ -1,43 +1,43 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - StatementSerializer = require( './StatementSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Serializer.js' ), + StatementSerializer = require( './StatementSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class StatementListSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementListSerializer', PARENT, { /** - * @inheritdoc + * @class StatementListSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {datamodel.StatementList} statementList - * @return {Object[]} - * - * @throws {Error} if statementList is not a StatementList instance. + * @constructor */ - serialize: function( statementList ) { - if( !( statementList instanceof datamodel.StatementList ) ) { - throw new Error( 'Not an instance of datamodel.StatementList' ); - } + module.exports = util.inherit( 'WbStatementListSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.StatementList} statementList + * @return {Object[]} + * + * @throws {Error} if statementList is not a StatementList instance. + */ + serialize: function( statementList ) { + if( !( statementList instanceof datamodel.StatementList ) ) { + throw new Error( 'Not an instance of datamodel.StatementList' ); + } - var serialization = [], - statementSerializer = new StatementSerializer(), - statements = statementList.toArray(); + var serialization = [], + statementSerializer = new StatementSerializer(), + statements = statementList.toArray(); - for( var i = 0; i < statements.length; i++ ) { - serialization.push( statementSerializer.serialize( statements[i] ) ); - } + for( var i = 0; i < statements.length; i++ ) { + serialization.push( statementSerializer.serialize( statements[i] ) ); + } - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/StatementSerializer.js b/src/Serializers/StatementSerializer.js index e76a26b..2ec34f2 100644 --- a/src/Serializers/StatementSerializer.js +++ b/src/Serializers/StatementSerializer.js @@ -1,57 +1,57 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - ClaimSerializer = require( './ClaimSerializer.js' ), - ReferenceListSerializer = require( './ReferenceListSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); - -/** - * @class StatementSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbStatementSerializer', PARENT, { + var PARENT = require( './Serializer.js' ), + ClaimSerializer = require( './ClaimSerializer.js' ), + ReferenceListSerializer = require( './ReferenceListSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); + /** - * @inheritdoc - * - * @param {datamodel.Statement} statement - * @return {Object} + * @class StatementSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if statement is not a Statement instance. + * @constructor */ - serialize: function( statement ) { - if( !( statement instanceof datamodel.Statement ) ) { - throw new Error( 'Not an instance of datamodel.Statement' ); - } + module.exports = util.inherit( 'WbStatementSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.Statement} statement + * @return {Object} + * + * @throws {Error} if statement is not a Statement instance. + */ + serialize: function( statement ) { + if( !( statement instanceof datamodel.Statement ) ) { + throw new Error( 'Not an instance of datamodel.Statement' ); + } - var claimSerializer = new ClaimSerializer(), - referenceListSerializer = new ReferenceListSerializer(), - references = statement.getReferences(), - rank = statement.getRank(); + var claimSerializer = new ClaimSerializer(), + referenceListSerializer = new ReferenceListSerializer(), + references = statement.getReferences(), + rank = statement.getRank(); - var serialization = claimSerializer.serialize( statement.getClaim() ); - serialization.type = 'statement'; + var serialization = claimSerializer.serialize( statement.getClaim() ); + serialization.type = 'statement'; - if( references.length ) { - serialization.references = referenceListSerializer.serialize( references ); - } + if( references.length ) { + serialization.references = referenceListSerializer.serialize( references ); + } - if( rank !== undefined ) { - for( var rankName in datamodel.Statement.RANK ) { - if( rank === datamodel.Statement.RANK[rankName] ) { - serialization.rank = rankName.toLowerCase(); - break; + if( rank !== undefined ) { + for( var rankName in datamodel.Statement.RANK ) { + if( rank === datamodel.Statement.RANK[rankName] ) { + serialization.rank = rankName.toLowerCase(); + break; + } } } - } - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/TermMapSerializer.js b/src/Serializers/TermMapSerializer.js index 6cfd62a..4b55ca8 100644 --- a/src/Serializers/TermMapSerializer.js +++ b/src/Serializers/TermMapSerializer.js @@ -1,44 +1,44 @@ -( function( util ) { +( function() { 'use strict'; var TermSerializer = require( './TermSerializer.js' ), PARENT = require( './Serializer.js' ), datamodel = require( 'wikibase.datamodel' ); -/** - * @class TermMapSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbTermMapSerializer', PARENT, { /** - * @inheritdoc + * @class TermMapSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {datamodel.TermMap} termMap - * @return {Object} - * - * @throws {Error} if termMap is not a TermMap instance. + * @constructor */ - serialize: function( termMap ) { - if( !( termMap instanceof datamodel.TermMap ) ) { - throw new Error( 'Not an instance of datamodel.TermMap' ); - } + module.exports = util.inherit( 'WbTermMapSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.TermMap} termMap + * @return {Object} + * + * @throws {Error} if termMap is not a TermMap instance. + */ + serialize: function( termMap ) { + if( !( termMap instanceof datamodel.TermMap ) ) { + throw new Error( 'Not an instance of datamodel.TermMap' ); + } - var serialization = {}, - termSerializer = new TermSerializer(), - languageCodes = termMap.getKeys(); + var serialization = {}, + termSerializer = new TermSerializer(), + languageCodes = termMap.getKeys(); - for( var i = 0; i < languageCodes.length; i++ ) { - serialization[languageCodes[i]] = termSerializer.serialize( - termMap.getItemByKey( languageCodes[i] ) - ); - } + for( var i = 0; i < languageCodes.length; i++ ) { + serialization[languageCodes[i]] = termSerializer.serialize( + termMap.getItemByKey( languageCodes[i] ) + ); + } - return serialization; - } -} ); + return serialization; + } + } ); -}( util ) ); +}() ); diff --git a/src/Serializers/TermSerializer.js b/src/Serializers/TermSerializer.js index 7582600..9b48c75 100644 --- a/src/Serializers/TermSerializer.js +++ b/src/Serializers/TermSerializer.js @@ -1,37 +1,37 @@ -( function( util ) { +( function() { 'use strict'; -var PARENT = require( './Serializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var PARENT = require( './Serializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -/** - * @class TermSerializer - * @extends Serializer - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -module.exports = util.inherit( 'WbTermSerializer', PARENT, { /** - * @inheritdoc + * @class TermSerializer + * @extends Serializer + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @param {datamodel.Term} term - * @return {Object} - * - * @throws {Error} if term is not a Term instance. + * @constructor */ - serialize: function( term ) { - if( !( term instanceof datamodel.Term ) ) { - throw new Error( 'Not an instance of datamodel.Term' ); - } + module.exports = util.inherit( 'WbTermSerializer', PARENT, { + /** + * @inheritdoc + * + * @param {datamodel.Term} term + * @return {Object} + * + * @throws {Error} if term is not a Term instance. + */ + serialize: function( term ) { + if( !( term instanceof datamodel.Term ) ) { + throw new Error( 'Not an instance of datamodel.Term' ); + } - return { - language: term.getLanguageCode(), - value: term.getText() - }; - } -} ); + return { + language: term.getLanguageCode(), + value: term.getText() + }; + } + } ); -}( util ) ); +}() ); diff --git a/src/StrategyProvider.js b/src/StrategyProvider.js index fe448df..21a1aa6 100644 --- a/src/StrategyProvider.js +++ b/src/StrategyProvider.js @@ -1,74 +1,74 @@ -( function( $ ) { +( function() { 'use strict'; -/** - * @class StrategyProvider - * @since 2.0 - * @license GPL-2.0+ - * @author H. Snater < mediawiki@snater.com > - * - * @constructor - */ -var SELF = function WbSerializationStrategyProvider() { - this._strategies = []; -}; - -$.extend( SELF.prototype, { /** - * @property {Object[]} - * @private - */ - _strategies: null, - - /** - * @param {*} strategy - * @param {*} key + * @class StrategyProvider + * @since 2.0 + * @license GPL-2.0+ + * @author H. Snater < mediawiki@snater.com > * - * @throws {Error} if a strategy for the provided key is registered already. + * @constructor */ - registerStrategy: function( strategy, key ) { - if( this._hasStrategyFor( key ) ) { - throw new Error( 'Strategy for "' + key + '" is registered already' ); - } + var SELF = function WbSerializationStrategyProvider() { + this._strategies = []; + }; - this._strategies.push( { - key: key, - strategy: strategy - } ); - }, + $.extend( SELF.prototype, { + /** + * @property {Object[]} + * @private + */ + _strategies: null, - /** - * @private - * - * @param {*} key - * @return {boolean} - */ - _hasStrategyFor: function( key ) { - for( var i = 0; i < this._strategies.length; i++ ) { - if( key === this._strategies[i].key ) { - return true; + /** + * @param {*} strategy + * @param {*} key + * + * @throws {Error} if a strategy for the provided key is registered already. + */ + registerStrategy: function( strategy, key ) { + if( this._hasStrategyFor( key ) ) { + throw new Error( 'Strategy for "' + key + '" is registered already' ); } - } - return false; - }, - /** - * @param {*} key - * @return {*} - * - * @throws {Error} if no strategy is registered for the key. - */ - getStrategyFor: function( key ) { - for( var i = 0; i < this._strategies.length; i++ ) { - if( key === this._strategies[i].key ) { - return this._strategies[i].strategy; + this._strategies.push( { + key: key, + strategy: strategy + } ); + }, + + /** + * @private + * + * @param {*} key + * @return {boolean} + */ + _hasStrategyFor: function( key ) { + for( var i = 0; i < this._strategies.length; i++ ) { + if( key === this._strategies[i].key ) { + return true; + } + } + return false; + }, + + /** + * @param {*} key + * @return {*} + * + * @throws {Error} if no strategy is registered for the key. + */ + getStrategyFor: function( key ) { + for( var i = 0; i < this._strategies.length; i++ ) { + if( key === this._strategies[i].key ) { + return this._strategies[i].strategy; + } } - } - throw new Error( 'No strategy registered for "' + key + '"' ); - } -} ); + throw new Error( 'No strategy registered for "' + key + '"' ); + } + } ); -module.exports = SELF; + module.exports = SELF; -}( jQuery ) ); +}() ); diff --git a/tests/.eslintrc.json b/tests/.eslintrc.json index 7f5cf82..cf611d3 100644 --- a/tests/.eslintrc.json +++ b/tests/.eslintrc.json @@ -1,9 +1,9 @@ { - "extends": "../.eslintrc.json", - "env": { - "qunit": true - }, + "extends": [ + "wikimedia/qunit", + "../.eslintrc.json" + ], "rules": { - "dot-notation": "off" + "qunit/require-expect": "off" } } diff --git a/tests/Deserializers/ClaimDeserializer.tests.js b/tests/Deserializers/ClaimDeserializer.tests.js index 9f77365..22033ed 100644 --- a/tests/Deserializers/ClaimDeserializer.tests.js +++ b/tests/Deserializers/ClaimDeserializer.tests.js @@ -2,59 +2,59 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var ClaimDeserializer = require( '../../src/Deserializers/ClaimDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var ClaimDeserializer = require( '../../src/Deserializers/ClaimDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'ClaimDeserializer' ); + QUnit.module( 'ClaimDeserializer' ); -var testSets = [ - [ - { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'claim' - }, - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' ) - ], [ - { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' + var testSets = [ + [ + { + id: 'Q1$1', + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'claim' }, - qualifiers: { - P1: [ { + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' ) + ], [ + { + id: 'Q1$1', + mainsnak: { snaktype: 'novalue', property: 'P1' - } ] + }, + qualifiers: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + }, + 'qualifiers-order': [ 'P1' ], + type: 'claim' }, - 'qualifiers-order': [ 'P1' ], - type: 'claim' - }, - new datamodel.Claim( - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), - 'Q1$1' - ) - ] -]; + new datamodel.Claim( + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), + 'Q1$1' + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var claimDeserializer = new ClaimDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var claimDeserializer = new ClaimDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - claimDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + claimDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/Deserializer.tests.js b/tests/Deserializers/Deserializer.tests.js index 5faee13..781eb8e 100644 --- a/tests/Deserializers/Deserializer.tests.js +++ b/tests/Deserializers/Deserializer.tests.js @@ -2,24 +2,24 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( util, QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'Deserializer' ); + QUnit.module( 'Deserializer' ); -var Deserializer = require( '../../src/Deserializers/Deserializer.js' ); + var Deserializer = require( '../../src/Deserializers/Deserializer.js' ); -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var SomeDeserializer = util.inherit( 'WbTestDeserializer', Deserializer, {} ), - someDeserializer = new SomeDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var SomeDeserializer = util.inherit( 'WbTestDeserializer', Deserializer, {} ), + someDeserializer = new SomeDeserializer(); - assert.throws( - function() { - someDeserializer.deserialize( {} ); - }, - 'Trying to deserialize on a Deserializer not having deserialize() specified fails.' - ); -} ); + assert.throws( + function() { + someDeserializer.deserialize( {} ); + }, + 'Trying to deserialize on a Deserializer not having deserialize() specified fails.' + ); + } ); -}( util, QUnit ) ); +}() ); diff --git a/tests/Deserializers/EntityDeserializer.tests.js b/tests/Deserializers/EntityDeserializer.tests.js index 322e1a2..1f4c7f5 100644 --- a/tests/Deserializers/EntityDeserializer.tests.js +++ b/tests/Deserializers/EntityDeserializer.tests.js @@ -2,155 +2,155 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( $, QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'EntityDeserializer' ); -var FingerprintDeserializer = require( '../../src/Deserializers/FingerprintDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ), - MockEntity = require( '../MockEntity.js' ), - EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ), - Deserializer = require( '../../src/Deserializers/Deserializer.js' ); + QUnit.module( 'EntityDeserializer' ); + var FingerprintDeserializer = require( '../../src/Deserializers/FingerprintDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ), + MockEntity = require( '../MockEntity.js' ), + EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ), + Deserializer = require( '../../src/Deserializers/Deserializer.js' ); -/** + /** * @extends Deserializer * * @constructor */ -var MockEntityDeserializer = util.inherit( - 'WbMockEntityDeserializer', - Deserializer, -{ - /** - * @inheritdoc - * - * @return {MockEntity} - */ - deserialize: function( serialization ) { - if( serialization.type !== MockEntity.TYPE ) { - throw new Error( 'Serialization does not resolve to a MockEntity' ); - } + var MockEntityDeserializer = util.inherit( + 'WbMockEntityDeserializer', + Deserializer, + { + /** + * @inheritdoc + * + * @return {MockEntity} + */ + deserialize: function( serialization ) { + if( serialization.type !== MockEntity.TYPE ) { + throw new Error( 'Serialization does not resolve to a MockEntity' ); + } - var fingerprintDeserializer = new FingerprintDeserializer(); + var fingerprintDeserializer = new FingerprintDeserializer(); - return new MockEntity( - serialization.id, - fingerprintDeserializer.deserialize( serialization ) - ); - } -} ); + return new MockEntity( + serialization.id, + fingerprintDeserializer.deserialize( serialization ) + ); + } + } ); -var defaults = [ - { - fingerprint: { - labels: { en: { language: 'en', value: 'label' } }, - descriptions: { en: { language: 'en', value: 'description' } }, - aliases: { en: [ { language: 'en', value: 'alias' } ] } - }, - statementGroupSet: { - P1: [ { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } ] - } - }, { - fingerprint: new datamodel.Fingerprint( - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), - new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) - ), - statementGroupSet: new datamodel.StatementGroupSet( [ - new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ - new datamodel.Statement( - new datamodel.Claim( - new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + var defaults = [ + { + fingerprint: { + labels: { en: { language: 'en', value: 'label' } }, + descriptions: { en: { language: 'en', value: 'description' } }, + aliases: { en: [ { language: 'en', value: 'alias' } ] } + }, + statementGroupSet: { + P1: [ { + id: 'Q1$1', + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } ] + } + }, { + fingerprint: new datamodel.Fingerprint( + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), + new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) + ), + statementGroupSet: new datamodel.StatementGroupSet( [ + new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ + new datamodel.Statement( + new datamodel.Claim( + new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + ) ) - ) - ] ) ) - ] ) - } -]; + ] ) ) + ] ) + } + ]; -var testSets = [ - [ - $.extend( true, {}, defaults[0].fingerprint, { - id: 'P1', - type: 'property', - datatype: 'string', - claims: defaults[0].statementGroupSet - } ), - new datamodel.Property( - 'P1', - 'string', - defaults[1].fingerprint, - defaults[1].statementGroupSet - ) - ], [ - $.extend( true, {}, defaults[0].fingerprint, { - id: 'Q1', - type: 'item', - claims: defaults[0].statementGroupSet, - sitelinks: { - someSite: { - site: 'someSite', - title: 'page', - badges: [] + var testSets = [ + [ + $.extend( true, {}, defaults[0].fingerprint, { + id: 'P1', + type: 'property', + datatype: 'string', + claims: defaults[0].statementGroupSet + } ), + new datamodel.Property( + 'P1', + 'string', + defaults[1].fingerprint, + defaults[1].statementGroupSet + ) + ], [ + $.extend( true, {}, defaults[0].fingerprint, { + id: 'Q1', + type: 'item', + claims: defaults[0].statementGroupSet, + sitelinks: { + someSite: { + site: 'someSite', + title: 'page', + badges: [] + } } - } - } ), - new datamodel.Item( - 'Q1', - defaults[1].fingerprint, - defaults[1].statementGroupSet, - new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'someSite', 'page' ) ] ) - ) - ] -]; + } ), + new datamodel.Item( + 'Q1', + defaults[1].fingerprint, + defaults[1].statementGroupSet, + new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'someSite', 'page' ) ] ) + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var entityDeserializer = new EntityDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var entityDeserializer = new EntityDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -QUnit.test( 'registerStrategy()', function( assert ) { - assert.expect( 2 ); - var entityDeserializer = new EntityDeserializer(); + QUnit.test( 'registerStrategy()', function( assert ) { + assert.expect( 2 ); + var entityDeserializer = new EntityDeserializer(); - var mockEntitySerialization = $.extend( true, { - id: 'i am an id', - type: 'mock' - }, defaults[0].fingerprint ); + var mockEntitySerialization = $.extend( true, { + id: 'i am an id', + type: 'mock' + }, defaults[0].fingerprint ); - assert.throws( - function() { - entityDeserializer.deserialize( mockEntitySerialization ); - }, - 'Throwing an error when trying to deserialize an Entity no Deserializer is registered for.' - ); + assert.throws( + function() { + entityDeserializer.deserialize( mockEntitySerialization ); + }, + 'Throwing an error when trying to deserialize an Entity no Deserializer is registered for.' + ); - entityDeserializer.registerStrategy( - new MockEntityDeserializer(), - MockEntity.TYPE - ); + entityDeserializer.registerStrategy( + new MockEntityDeserializer(), + MockEntity.TYPE + ); - var mockEntity = entityDeserializer.deserialize( mockEntitySerialization ); + var mockEntity = entityDeserializer.deserialize( mockEntitySerialization ); - assert.ok( - mockEntity instanceof MockEntity, - 'Deserialized Entity after registering a proper Deserializer.' - ); -} ); + assert.ok( + mockEntity instanceof MockEntity, + 'Deserialized Entity after registering a proper Deserializer.' + ); + } ); -}( jQuery, QUnit ) ); +}() ); diff --git a/tests/Deserializers/FingerprintDeserializer.tests.js b/tests/Deserializers/FingerprintDeserializer.tests.js index 0c9b65c..43ca795 100644 --- a/tests/Deserializers/FingerprintDeserializer.tests.js +++ b/tests/Deserializers/FingerprintDeserializer.tests.js @@ -2,45 +2,45 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'FingerprintDeserializer' ); -var FingerprintDeserializer = require( '../../src/Deserializers/FingerprintDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + QUnit.module( 'FingerprintDeserializer' ); + var FingerprintDeserializer = require( '../../src/Deserializers/FingerprintDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -var testSets = [ - [ - { - labels: {}, - descriptions: {}, - aliases: {} - }, - new datamodel.Fingerprint() - ], [ - { - labels: { en: { language: 'en', value: 'label' } }, - descriptions: { en: { language: 'en', value: 'description' } }, - aliases: { en: [ { language: 'en', value: 'alias' } ] } - }, - new datamodel.Fingerprint( - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), - new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) - ) - ] -]; + var testSets = [ + [ + { + labels: {}, + descriptions: {}, + aliases: {} + }, + new datamodel.Fingerprint() + ], [ + { + labels: { en: { language: 'en', value: 'label' } }, + descriptions: { en: { language: 'en', value: 'description' } }, + aliases: { en: [ { language: 'en', value: 'alias' } ] } + }, + new datamodel.Fingerprint( + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), + new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var fingerprintDeserializer = new FingerprintDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var fingerprintDeserializer = new FingerprintDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - fingerprintDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + fingerprintDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/ItemDeserializer.tests.js b/tests/Deserializers/ItemDeserializer.tests.js index e0f6a80..c78d8a8 100644 --- a/tests/Deserializers/ItemDeserializer.tests.js +++ b/tests/Deserializers/ItemDeserializer.tests.js @@ -2,83 +2,83 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( $, QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'EntityDeserializer' ); + QUnit.module( 'EntityDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ); -var defaults = [ - { - fingerprint: { - labels: { en: { language: 'en', value: 'label' } }, - descriptions: { en: { language: 'en', value: 'description' } }, - aliases: { en: [ { language: 'en', value: 'alias' } ] } - }, - statementGroupSet: { - P1: [ { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } ] - } - }, { - fingerprint: new datamodel.Fingerprint( - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), - new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) - ), - statementGroupSet: new datamodel.StatementGroupSet( [ - new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ - new datamodel.Statement( - new datamodel.Claim( - new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + var defaults = [ + { + fingerprint: { + labels: { en: { language: 'en', value: 'label' } }, + descriptions: { en: { language: 'en', value: 'description' } }, + aliases: { en: [ { language: 'en', value: 'alias' } ] } + }, + statementGroupSet: { + P1: [ { + id: 'Q1$1', + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } ] + } + }, { + fingerprint: new datamodel.Fingerprint( + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), + new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) + ), + statementGroupSet: new datamodel.StatementGroupSet( [ + new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ + new datamodel.Statement( + new datamodel.Claim( + new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + ) ) - ) - ] ) ) - ] ) - } -]; + ] ) ) + ] ) + } + ]; -var testSets = [ - [ - $.extend( true, {}, defaults[0].fingerprint, { - id: 'Q1', - type: 'item', - claims: defaults[0].statementGroupSet, - sitelinks: { - someSite: { - site: 'someSite', - title: 'page', - badges: [] + var testSets = [ + [ + $.extend( true, {}, defaults[0].fingerprint, { + id: 'Q1', + type: 'item', + claims: defaults[0].statementGroupSet, + sitelinks: { + someSite: { + site: 'someSite', + title: 'page', + badges: [] + } } - } - } ), - new datamodel.Item( - 'Q1', - defaults[1].fingerprint, - defaults[1].statementGroupSet, - new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'someSite', 'page' ) ] ) - ) - ] -]; + } ), + new datamodel.Item( + 'Q1', + defaults[1].fingerprint, + defaults[1].statementGroupSet, + new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'someSite', 'page' ) ] ) + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var entityDeserializer = new EntityDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var entityDeserializer = new EntityDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( jQuery, QUnit ) ); +}() ); diff --git a/tests/Deserializers/MultiTermDeserializer.tests.js b/tests/Deserializers/MultiTermDeserializer.tests.js index e398e60..c5b527b 100644 --- a/tests/Deserializers/MultiTermDeserializer.tests.js +++ b/tests/Deserializers/MultiTermDeserializer.tests.js @@ -2,31 +2,31 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'MultiTermDeserializer' ); -var MultiTermDeserializer = require( '../../src/Deserializers/MultiTermDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + QUnit.module( 'MultiTermDeserializer' ); + var MultiTermDeserializer = require( '../../src/Deserializers/MultiTermDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -var testSets = [ - [ - [ { language: 'en', value: 'test1' }, { language: 'en', value: 'test2' } ], - new datamodel.MultiTerm( 'en', [ 'test1', 'test2' ] ) - ] -]; + var testSets = [ + [ + [ { language: 'en', value: 'test1' }, { language: 'en', value: 'test2' } ], + new datamodel.MultiTerm( 'en', [ 'test1', 'test2' ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var multiTermDeserializer = new MultiTermDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var multiTermDeserializer = new MultiTermDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - multiTermDeserializer.deserialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + multiTermDeserializer.deserialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/MultiTermMapDeserializer.tests.js b/tests/Deserializers/MultiTermMapDeserializer.tests.js index 7a26c0b..78781ad 100644 --- a/tests/Deserializers/MultiTermMapDeserializer.tests.js +++ b/tests/Deserializers/MultiTermMapDeserializer.tests.js @@ -2,49 +2,49 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'MultiTermMapDeserializer' ); -var MultiTermMapDeserializer = require( '../../src/Deserializers/MultiTermMapDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + QUnit.module( 'MultiTermMapDeserializer' ); + var MultiTermMapDeserializer = require( '../../src/Deserializers/MultiTermMapDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -var testSets = [ - [ - {}, - new datamodel.MultiTermMap() - ], [ - { - en: [ { language: 'en', value: 'en-test' } ], - de: [ { language: 'de', value: 'de-test' } ] - }, - new datamodel.MultiTermMap( { - en: new datamodel.MultiTerm( 'en', [ 'en-test' ] ), - de: new datamodel.MultiTerm( 'de', [ 'de-test' ] ) - } ) - ], [ - { - en: [ { language: 'en', value: 'en-test' } ], - de: [ { language: 'en', value: 'en-test' } ] - }, - new datamodel.MultiTermMap( { - en: new datamodel.MultiTerm( 'en', [ 'en-test' ] ), - de: new datamodel.MultiTerm( 'en', [ 'en-test' ] ) - } ) - ] -]; + var testSets = [ + [ + {}, + new datamodel.MultiTermMap() + ], [ + { + en: [ { language: 'en', value: 'en-test' } ], + de: [ { language: 'de', value: 'de-test' } ] + }, + new datamodel.MultiTermMap( { + en: new datamodel.MultiTerm( 'en', [ 'en-test' ] ), + de: new datamodel.MultiTerm( 'de', [ 'de-test' ] ) + } ) + ], [ + { + en: [ { language: 'en', value: 'en-test' } ], + de: [ { language: 'en', value: 'en-test' } ] + }, + new datamodel.MultiTermMap( { + en: new datamodel.MultiTerm( 'en', [ 'en-test' ] ), + de: new datamodel.MultiTerm( 'en', [ 'en-test' ] ) + } ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 3 ); - var multiTermMapDeserializer = new MultiTermMapDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 3 ); + var multiTermMapDeserializer = new MultiTermMapDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - multiTermMapDeserializer.deserialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + multiTermMapDeserializer.deserialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/PropertyDeserializer.tests.js b/tests/Deserializers/PropertyDeserializer.tests.js index 3f99456..fc99c41 100644 --- a/tests/Deserializers/PropertyDeserializer.tests.js +++ b/tests/Deserializers/PropertyDeserializer.tests.js @@ -2,77 +2,77 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( $, QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'EntityDeserializer' ); + QUnit.module( 'EntityDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + EntityDeserializer = require( '../../src/Deserializers/EntityDeserializer.js' ); -var defaults = [ - { - fingerprint: { - labels: { en: { language: 'en', value: 'label' } }, - descriptions: { en: { language: 'en', value: 'description' } }, - aliases: { en: [ { language: 'en', value: 'alias' } ] } - }, - statementGroupSet: { - P1: [ { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } ] - } - }, { - fingerprint: new datamodel.Fingerprint( - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), - new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), - new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) - ), - statementGroupSet: new datamodel.StatementGroupSet( [ - new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ - new datamodel.Statement( - new datamodel.Claim( - new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + var defaults = [ + { + fingerprint: { + labels: { en: { language: 'en', value: 'label' } }, + descriptions: { en: { language: 'en', value: 'description' } }, + aliases: { en: [ { language: 'en', value: 'alias' } ] } + }, + statementGroupSet: { + P1: [ { + id: 'Q1$1', + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } ] + } + }, { + fingerprint: new datamodel.Fingerprint( + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'label' ) } ), + new datamodel.TermMap( { en: new datamodel.Term( 'en', 'description' ) } ), + new datamodel.MultiTermMap( { en: new datamodel.MultiTerm( 'en', [ 'alias' ] ) } ) + ), + statementGroupSet: new datamodel.StatementGroupSet( [ + new datamodel.StatementGroup( 'P1', new datamodel.StatementList( [ + new datamodel.Statement( + new datamodel.Claim( + new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' + ) ) - ) - ] ) ) - ] ) - } -]; + ] ) ) + ] ) + } + ]; -var testSets = [ - [ - $.extend( true, {}, defaults[0].fingerprint, { - id: 'P1', - type: 'property', - datatype: 'string', - claims: defaults[0].statementGroupSet - } ), - new datamodel.Property( - 'P1', - 'string', - defaults[1].fingerprint, - defaults[1].statementGroupSet - ) - ] -]; + var testSets = [ + [ + $.extend( true, {}, defaults[0].fingerprint, { + id: 'P1', + type: 'property', + datatype: 'string', + claims: defaults[0].statementGroupSet + } ), + new datamodel.Property( + 'P1', + 'string', + defaults[1].fingerprint, + defaults[1].statementGroupSet + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var entityDeserializer = new EntityDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var entityDeserializer = new EntityDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + entityDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( jQuery, QUnit ) ); +}() ); diff --git a/tests/Deserializers/ReferenceDeserializer.tests.js b/tests/Deserializers/ReferenceDeserializer.tests.js index b9171d4..4305a09 100644 --- a/tests/Deserializers/ReferenceDeserializer.tests.js +++ b/tests/Deserializers/ReferenceDeserializer.tests.js @@ -2,69 +2,69 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var ReferenceDeserializer = require( '../../src/Deserializers/ReferenceDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var ReferenceDeserializer = require( '../../src/Deserializers/ReferenceDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'ReferenceDeserializer' ); + QUnit.module( 'ReferenceDeserializer' ); -var testSets = [ - [ - { - hash: 'i am a hash', - snaks: { - P1: [ { - snaktype: 'novalue', - property: 'P1' - } ] + var testSets = [ + [ + { + hash: 'i am a hash', + snaks: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + }, + 'snaks-order': [ 'P1' ] }, - 'snaks-order': [ 'P1' ] - }, - new datamodel.Reference( - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), - 'i am a hash' - ) - ], [ - { - hash: 'i am a hash', - snaks: { - P1: [ { - snaktype: 'novalue', - property: 'P1' - }, { - snaktype: 'somevalue', - property: 'P1' - } ], - P2: [ { - snaktype: 'novalue', - property: 'P2' - } ] + new datamodel.Reference( + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), + 'i am a hash' + ) + ], [ + { + hash: 'i am a hash', + snaks: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + }, { + snaktype: 'somevalue', + property: 'P1' + } ], + P2: [ { + snaktype: 'novalue', + property: 'P2' + } ] + }, + 'snaks-order': [ 'P2', 'P1' ] }, - 'snaks-order': [ 'P2', 'P1' ] - }, - new datamodel.Reference( - new datamodel.SnakList( [ - new datamodel.PropertyNoValueSnak( 'P2' ), - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.PropertySomeValueSnak( 'P1' ) - ] ), - 'i am a hash' - ) - ] -]; + new datamodel.Reference( + new datamodel.SnakList( [ + new datamodel.PropertyNoValueSnak( 'P2' ), + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.PropertySomeValueSnak( 'P1' ) + ] ), + 'i am a hash' + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var referenceDeserializer = new ReferenceDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var referenceDeserializer = new ReferenceDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - referenceDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + referenceDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/ReferenceListDeserializer.tests.js b/tests/Deserializers/ReferenceListDeserializer.tests.js index ca3a242..cacade7 100644 --- a/tests/Deserializers/ReferenceListDeserializer.tests.js +++ b/tests/Deserializers/ReferenceListDeserializer.tests.js @@ -2,55 +2,55 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var ReferenceListDeserializer = require( '../../src/Deserializers/ReferenceListDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var ReferenceListDeserializer = require( '../../src/Deserializers/ReferenceListDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'ReferenceListDeserializer' ); + QUnit.module( 'ReferenceListDeserializer' ); -var testSets = [ - [ - [], - new datamodel.ReferenceList() - ], [ + var testSets = [ [ - { - snaks: {}, - 'snaks-order': [] - } - ], - new datamodel.ReferenceList( [ new datamodel.Reference() ] ) - ], [ - [ - { - snaks: {}, - 'snaks-order': [], - hash: 'hash1' - }, { - snaks: {}, - 'snaks-order': [], - hash: 'hash2' - } - ], - new datamodel.ReferenceList( [ - new datamodel.Reference( null, 'hash1' ), - new datamodel.Reference( null, 'hash2' ) - ] ) - ] -]; + [], + new datamodel.ReferenceList() + ], [ + [ + { + snaks: {}, + 'snaks-order': [] + } + ], + new datamodel.ReferenceList( [ new datamodel.Reference() ] ) + ], [ + [ + { + snaks: {}, + 'snaks-order': [], + hash: 'hash1' + }, { + snaks: {}, + 'snaks-order': [], + hash: 'hash2' + } + ], + new datamodel.ReferenceList( [ + new datamodel.Reference( null, 'hash1' ), + new datamodel.Reference( null, 'hash2' ) + ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 3 ); - var referenceListDeserializer = new ReferenceListDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 3 ); + var referenceListDeserializer = new ReferenceListDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - referenceListDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + referenceListDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/SiteLinkDeserializer.tests.js b/tests/Deserializers/SiteLinkDeserializer.tests.js index db6c2ee..33dacd1 100644 --- a/tests/Deserializers/SiteLinkDeserializer.tests.js +++ b/tests/Deserializers/SiteLinkDeserializer.tests.js @@ -2,34 +2,34 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'SiteLinkDeserializer' ); -var SiteLinkDeserializer = require( '../../src/Deserializers/SiteLinkDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + QUnit.module( 'SiteLinkDeserializer' ); + var SiteLinkDeserializer = require( '../../src/Deserializers/SiteLinkDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -var testSets = [ - [ - { - site: 'site-id', - title: 'page-title', - badges: [ 'badge-1', 'badge-2' ] - }, - new datamodel.SiteLink( 'site-id', 'page-title', [ 'badge-1', 'badge-2' ] ) - ] -]; + var testSets = [ + [ + { + site: 'site-id', + title: 'page-title', + badges: [ 'badge-1', 'badge-2' ] + }, + new datamodel.SiteLink( 'site-id', 'page-title', [ 'badge-1', 'badge-2' ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var siteLinkDeserializer = new SiteLinkDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var siteLinkDeserializer = new SiteLinkDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - siteLinkDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + siteLinkDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/SiteLinkSetDeserializer.tests.js b/tests/Deserializers/SiteLinkSetDeserializer.tests.js index d3b37d8..3f66104 100644 --- a/tests/Deserializers/SiteLinkSetDeserializer.tests.js +++ b/tests/Deserializers/SiteLinkSetDeserializer.tests.js @@ -2,39 +2,39 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'SiteLinkSetDeserializer' ); -var SiteLinkSetDeserializer = require( '../../src/Deserializers/SiteLinkSetDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + QUnit.module( 'SiteLinkSetDeserializer' ); + var SiteLinkSetDeserializer = require( '../../src/Deserializers/SiteLinkSetDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -var testSets = [ - [ - {}, - new datamodel.SiteLinkSet() - ], [ - { - site: { - site: 'site', - title: 'page', - badges: [] - } - }, - new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'site', 'page' ) ] ) - ] -]; + var testSets = [ + [ + {}, + new datamodel.SiteLinkSet() + ], [ + { + site: { + site: 'site', + title: 'page', + badges: [] + } + }, + new datamodel.SiteLinkSet( [ new datamodel.SiteLink( 'site', 'page' ) ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var siteLinkSetDeserializer = new SiteLinkSetDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var siteLinkSetDeserializer = new SiteLinkSetDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - siteLinkSetDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + siteLinkSetDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/SnakDeserializer.tests.js b/tests/Deserializers/SnakDeserializer.tests.js index 4daa9d5..6e55db1 100644 --- a/tests/Deserializers/SnakDeserializer.tests.js +++ b/tests/Deserializers/SnakDeserializer.tests.js @@ -3,69 +3,68 @@ * @author H. Snater < mediawiki@snater.com > */ -( function( dv, QUnit ) { -'use strict'; +( function( dv ) { + 'use strict'; -QUnit.module( 'SnakDeserializer' ); + QUnit.module( 'SnakDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - SnakDeserializer = require( '../../src/Deserializers/SnakDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + SnakDeserializer = require( '../../src/Deserializers/SnakDeserializer.js' ); -var testSets = [ - [ - { - snaktype: 'novalue', - property: 'P1' - }, - new datamodel.PropertyNoValueSnak( 'P1' ) - ], [ - { - snaktype: 'somevalue', - property: 'P1' - }, - new datamodel.PropertySomeValueSnak( 'P1' ) - ], [ - { - snaktype: 'value', - property: 'P1', - datavalue: { - type: 'string', - value: 'some string' - } - }, - new datamodel.PropertyValueSnak( 'P1', new dv.StringValue( 'some string' ) ) - ], [ - { - snaktype: 'value', - property: 'P1', - datavalue: { - type: 'undeserializable', - value: { - value: { foo: 'bar' }, + var testSets = [ + [ + { + snaktype: 'novalue', + property: 'P1' + }, + new datamodel.PropertyNoValueSnak( 'P1' ) + ], [ + { + snaktype: 'somevalue', + property: 'P1' + }, + new datamodel.PropertySomeValueSnak( 'P1' ) + ], [ + { + snaktype: 'value', + property: 'P1', + datavalue: { type: 'string', - error: 'String is invalid.' + value: 'some string' } - } - }, - new datamodel.PropertyValueSnak( 'P1', new dv.UnDeserializableValue( + }, + new datamodel.PropertyValueSnak( 'P1', new dv.StringValue( 'some string' ) ) + ], [ + { + snaktype: 'value', + property: 'P1', + datavalue: { + type: 'undeserializable', + value: { + value: { foo: 'bar' }, + type: 'string', + error: 'String is invalid.' + } + } + }, + new datamodel.PropertyValueSnak( 'P1', new dv.UnDeserializableValue( { foo: 'bar' }, 'string', 'String is invalid.' - ) - ) - ] -]; + ) ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 4 ); - var snakDeserializer = new SnakDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 4 ); + var snakDeserializer = new SnakDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - snakDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + snakDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( dataValues, QUnit ) ); +}( dataValues ) ); diff --git a/tests/Deserializers/SnakListDeserializer.tests.js b/tests/Deserializers/SnakListDeserializer.tests.js index f3ceaf6..5bfe38c 100644 --- a/tests/Deserializers/SnakListDeserializer.tests.js +++ b/tests/Deserializers/SnakListDeserializer.tests.js @@ -3,68 +3,68 @@ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var SnakListDeserializer = require( '../../src/Deserializers/SnakListDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var SnakListDeserializer = require( '../../src/Deserializers/SnakListDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'SnakListDeserializer' ); + QUnit.module( 'SnakListDeserializer' ); -var testSets = [ - [ + var testSets = [ [ - {}, - undefined - ], - new datamodel.SnakList() - ], [ - [ - { - P1: [ { - snaktype: 'novalue', - property: 'P1' - } ] - }, - undefined - ], - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ) - ], [ - [ - { - P1: [ { - snaktype: 'novalue', - property: 'P1' - }, { - snaktype: 'somevalue', - property: 'P1' - } ], - P2: [ { - snaktype: 'novalue', - property: 'P2' - } ] - }, - [ 'P2', 'P1' ] - ], - new datamodel.SnakList( [ - new datamodel.PropertyNoValueSnak( 'P2' ), - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.PropertySomeValueSnak( 'P1' ) - ] ) - ] -]; + [ + {}, + undefined + ], + new datamodel.SnakList() + ], [ + [ + { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + }, + undefined + ], + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ) + ], [ + [ + { + P1: [ { + snaktype: 'novalue', + property: 'P1' + }, { + snaktype: 'somevalue', + property: 'P1' + } ], + P2: [ { + snaktype: 'novalue', + property: 'P2' + } ] + }, + [ 'P2', 'P1' ] + ], + new datamodel.SnakList( [ + new datamodel.PropertyNoValueSnak( 'P2' ), + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.PropertySomeValueSnak( 'P1' ) + ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 3 ); - var snakListDeserializer = new SnakListDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 3 ); + var snakListDeserializer = new SnakListDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - snakListDeserializer.deserialize( testSets[i][0][0], testSets[i][0][1] ) - .equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + snakListDeserializer.deserialize( testSets[i][0][0], testSets[i][0][1] ) + .equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/StatementDeserializer.tests.js b/tests/Deserializers/StatementDeserializer.tests.js index 7ce1b4e..69ce5a4 100644 --- a/tests/Deserializers/StatementDeserializer.tests.js +++ b/tests/Deserializers/StatementDeserializer.tests.js @@ -2,60 +2,60 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'StatementDeserializer' ); + QUnit.module( 'StatementDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - StatementDeserializer = require( '../../src/Deserializers/StatementDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + StatementDeserializer = require( '../../src/Deserializers/StatementDeserializer.js' ); -var testSets = [ - [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' + var testSets = [ + [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' }, - type: 'statement', - rank: 'normal' - }, - new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), - null, - datamodel.Statement.RANK.NORMAL - ) - ], [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' + new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), + null, + datamodel.Statement.RANK.NORMAL + ) + ], [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + references: [ { + snaks: {}, + 'snaks-order': [] + } ], + type: 'statement', + rank: 'preferred' }, - references: [ { - snaks: {}, - 'snaks-order': [] - } ], - type: 'statement', - rank: 'preferred' - }, - new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), - new datamodel.ReferenceList( [ new datamodel.Reference() ] ), - datamodel.Statement.RANK.PREFERRED - ) - ] -]; + new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), + new datamodel.ReferenceList( [ new datamodel.Reference() ] ), + datamodel.Statement.RANK.PREFERRED + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var statementDeserializer = new StatementDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var statementDeserializer = new StatementDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - statementDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + statementDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/StatementGroupDeserializer.tests.js b/tests/Deserializers/StatementGroupDeserializer.tests.js index be79c38..c2aad0a 100644 --- a/tests/Deserializers/StatementGroupDeserializer.tests.js +++ b/tests/Deserializers/StatementGroupDeserializer.tests.js @@ -2,52 +2,52 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var StatementGroupDeserializer = require( '../../src/Deserializers/StatementGroupDeserializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var StatementGroupDeserializer = require( '../../src/Deserializers/StatementGroupDeserializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'StatementGroupDeserializer' ); + QUnit.module( 'StatementGroupDeserializer' ); -var testSets = [ - [ + var testSets = [ [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } - ], - new datamodel.StatementGroup( 'P1', - new datamodel.StatementList( [ new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) - ) ] ) - ) - ] -]; + [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } + ], + new datamodel.StatementGroup( 'P1', + new datamodel.StatementList( [ new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) + ) ] ) + ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var statementGroupDeserializer = new StatementGroupDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var statementGroupDeserializer = new StatementGroupDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - statementGroupDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + statementGroupDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } - assert.throws( - function() { - statementGroupDeserializer.deserialize( [] ); - }, - 'Unable to deserialize an empty array since there is no way to determine the property id ' - + 'statements shall be grouped with.' - ); -} ); + assert.throws( + function() { + statementGroupDeserializer.deserialize( [] ); + }, + 'Unable to deserialize an empty array since there is no way to determine the property id ' + + 'statements shall be grouped with.' + ); + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/StatementGroupSetDeserializer.tests.js b/tests/Deserializers/StatementGroupSetDeserializer.tests.js index f5dd187..1f8b969 100644 --- a/tests/Deserializers/StatementGroupSetDeserializer.tests.js +++ b/tests/Deserializers/StatementGroupSetDeserializer.tests.js @@ -2,66 +2,66 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'StatementGroupSetDeserializer' ); + QUnit.module( 'StatementGroupSetDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - StatementGroupSetDeserializer = require( '../../src/Deserializers/StatementGroupSetDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + StatementGroupSetDeserializer = require( '../../src/Deserializers/StatementGroupSetDeserializer.js' ); -var testSets = [ - [ - {}, - new datamodel.StatementGroupSet() - ], [ - { - P1: [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } - ], - P2: [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P2' - }, - type: 'statement', - rank: 'normal' - } - ] - }, - new datamodel.StatementGroupSet( [ - new datamodel.StatementGroup( 'P1', - new datamodel.StatementList( [ new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) - ) ] ) - ), - new datamodel.StatementGroup( 'P2', - new datamodel.StatementList( [ new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P2' ) ) - ) ] ) - ) - ] ) - ] -]; + var testSets = [ + [ + {}, + new datamodel.StatementGroupSet() + ], [ + { + P1: [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } + ], + P2: [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P2' + }, + type: 'statement', + rank: 'normal' + } + ] + }, + new datamodel.StatementGroupSet( [ + new datamodel.StatementGroup( 'P1', + new datamodel.StatementList( [ new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) + ) ] ) + ), + new datamodel.StatementGroup( 'P2', + new datamodel.StatementList( [ new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P2' ) ) + ) ] ) + ) + ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var statementGroupSetDeserializer = new StatementGroupSetDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var statementGroupSetDeserializer = new StatementGroupSetDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - statementGroupSetDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + statementGroupSetDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/StatementListDeserializer.tests.js b/tests/Deserializers/StatementListDeserializer.tests.js index 4c26953..1c597d1 100644 --- a/tests/Deserializers/StatementListDeserializer.tests.js +++ b/tests/Deserializers/StatementListDeserializer.tests.js @@ -2,45 +2,45 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'StatementListDeserializer' ); + QUnit.module( 'StatementListDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - StatementListDeserializer = require( '../../src/Deserializers/StatementListDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + StatementListDeserializer = require( '../../src/Deserializers/StatementListDeserializer.js' ); -var testSets = [ - [ - [], - new datamodel.StatementList() - ], [ + var testSets = [ [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } - ], - new datamodel.StatementList( [ new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) - ) ] ) - ] -]; + [], + new datamodel.StatementList() + ], [ + [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } + ], + new datamodel.StatementList( [ new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) + ) ] ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 2 ); - var statementListDeserializer = new StatementListDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 2 ); + var statementListDeserializer = new StatementListDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.ok( - statementListDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.ok( + statementListDeserializer.deserialize( testSets[i][0] ).equals( testSets[i][1] ), + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/TermDeserializer.tests.js b/tests/Deserializers/TermDeserializer.tests.js index d856ec4..83ee1a9 100644 --- a/tests/Deserializers/TermDeserializer.tests.js +++ b/tests/Deserializers/TermDeserializer.tests.js @@ -2,32 +2,32 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'TermDeserializer' ); + QUnit.module( 'TermDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - TermDeserializer = require( '../../src/Deserializers/TermDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + TermDeserializer = require( '../../src/Deserializers/TermDeserializer.js' ); -var testSets = [ - [ - { language: 'en', value: 'test' }, - new datamodel.Term( 'en', 'test' ) - ] -]; + var testSets = [ + [ + { language: 'en', value: 'test' }, + new datamodel.Term( 'en', 'test' ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 1 ); - var termDeserializer = new TermDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 1 ); + var termDeserializer = new TermDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - termDeserializer.deserialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + termDeserializer.deserialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Deserializers/TermMapDeserializer.tests.js b/tests/Deserializers/TermMapDeserializer.tests.js index 315c537..caad541 100644 --- a/tests/Deserializers/TermMapDeserializer.tests.js +++ b/tests/Deserializers/TermMapDeserializer.tests.js @@ -2,50 +2,50 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'TermMapDeserializer' ); + QUnit.module( 'TermMapDeserializer' ); -var datamodel = require( 'wikibase.datamodel' ), - TermMapDeserializer = require( '../../src/Deserializers/TermMapDeserializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + TermMapDeserializer = require( '../../src/Deserializers/TermMapDeserializer.js' ); -var testSets = [ - [ - {}, - new datamodel.TermMap() - ], [ - { - en: { language: 'en', value: 'en-test' }, - de: { language: 'de', value: 'de-test' } - }, - new datamodel.TermMap( { - en: new datamodel.Term( 'en', 'en-test' ), - de: new datamodel.Term( 'de', 'de-test' ) - } ) - ], [ - { - en: { language: 'en', value: 'en-test' }, - de: { language: 'en', value: 'en-test' } - }, - new datamodel.TermMap( { - en: new datamodel.Term( 'en', 'en-test' ), - de: new datamodel.Term( 'en', 'en-test' ) - } ) - ] -]; + var testSets = [ + [ + {}, + new datamodel.TermMap() + ], [ + { + en: { language: 'en', value: 'en-test' }, + de: { language: 'de', value: 'de-test' } + }, + new datamodel.TermMap( { + en: new datamodel.Term( 'en', 'en-test' ), + de: new datamodel.Term( 'de', 'de-test' ) + } ) + ], [ + { + en: { language: 'en', value: 'en-test' }, + de: { language: 'en', value: 'en-test' } + }, + new datamodel.TermMap( { + en: new datamodel.Term( 'en', 'en-test' ), + de: new datamodel.Term( 'en', 'en-test' ) + } ) + ] + ]; -QUnit.test( 'deserialize()', function( assert ) { - assert.expect( 3 ); - var termMapDeserializer = new TermMapDeserializer(); + QUnit.test( 'deserialize()', function( assert ) { + assert.expect( 3 ); + var termMapDeserializer = new TermMapDeserializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - termMapDeserializer.deserialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Deserializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + termMapDeserializer.deserialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Deserializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/MockEntity.js b/tests/MockEntity.js index d371fc7..735e455 100644 --- a/tests/MockEntity.js +++ b/tests/MockEntity.js @@ -2,12 +2,12 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( util ) { -'use strict'; +( function() { + 'use strict'; -var datamodel = require( 'wikibase.datamodel' ); + var datamodel = require( 'wikibase.datamodel' ); -/** + /** * @extends datamodel.Entity * * @constructor @@ -15,30 +15,30 @@ var datamodel = require( 'wikibase.datamodel' ); * @param {string} id * @param {datamodel.Fingerprint} fingerprint */ -var SELF = util.inherit( - 'wbMockEntity', - datamodel.FingerprintableEntity, - function WbMockEntity( id, fingerprint ) { - this._id = id; - this._fingerprint = fingerprint; - }, -{ - /** - * @inheritdoc - */ - isEmpty: function() { - return this._fingerprint.isEmpty(); - }, + var SELF = util.inherit( + 'wbMockEntity', + datamodel.FingerprintableEntity, + function WbMockEntity( id, fingerprint ) { + this._id = id; + this._fingerprint = fingerprint; + }, + { + /** + * @inheritdoc + */ + isEmpty: function() { + return this._fingerprint.isEmpty(); + }, - /** - * @inheritdoc - */ - equals: function( mock ) { - return this._id === mock.getId() && this._fingerprint.equals( mock.getFingerprint() ); - } -} ); + /** + * @inheritdoc + */ + equals: function( mock ) { + return this._id === mock.getId() && this._fingerprint.equals( mock.getFingerprint() ); + } + } ); -SELF.TYPE = 'mock'; + SELF.TYPE = 'mock'; -module.exports = SELF; -}( util ) ); + module.exports = SELF; +}() ); diff --git a/tests/MockEntity.tests.js b/tests/MockEntity.tests.js index 3e68544..d311826 100644 --- a/tests/MockEntity.tests.js +++ b/tests/MockEntity.tests.js @@ -2,94 +2,98 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { +( function() { 'use strict'; -QUnit.module( 'MockEntity' ); + QUnit.module( 'MockEntity' ); -var datamodel = require( 'wikibase.datamodel' ), - MockEntity = require( './MockEntity.js' ); + var datamodel = require( 'wikibase.datamodel' ), + MockEntity = require( './MockEntity.js' ); -var testSets = [ - [ - 'i am an id', - new datamodel.Fingerprint( - new datamodel.TermMap(), - new datamodel.TermMap(), - new datamodel.MultiTermMap() - ) - ], [ - 'i am an id', - new datamodel.Fingerprint( - new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-label' ) } ), - new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-description' ) } ), - new datamodel.MultiTermMap( { - de: new datamodel.MultiTerm( 'de', [ 'de-alias' ] ) - } ) - ) - ] -]; - -QUnit.test( 'Constructor', function( assert ) { - assert.expect( 2 ); - for( var i = 0; i < testSets.length; i++ ) { - var mockEntity = new MockEntity( testSets[i][0], testSets[i][1] ); - assert.ok( - mockEntity instanceof MockEntity, - 'Test set #' + i + ': Instantiated MockEntity object.' - ); - } -} ); - -QUnit.test( 'isEmpty()', function( assert ) { - assert.expect( 2 ); - assert.ok( - ( new MockEntity( + var testSets = [ + [ 'i am an id', new datamodel.Fingerprint( new datamodel.TermMap(), new datamodel.TermMap(), new datamodel.MultiTermMap() ) - ) ).isEmpty(), - 'Verified isEmpty() returning TRUE.' - ); - - assert.ok( - !( new MockEntity( + ], [ 'i am an id', new datamodel.Fingerprint( - new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-term' ) } ), - new datamodel.TermMap(), - new datamodel.MultiTermMap() + new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-label' ) } ), + new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-description' ) } ), + new datamodel.MultiTermMap( { + de: new datamodel.MultiTerm( 'de', [ 'de-alias' ] ) + } ) ) - ) ).isEmpty(), - 'Returning FALSE when Fingerprint is not empty.' - ); -} ); + ] + ]; + + QUnit.test( 'Constructor', function( assert ) { + assert.expect( 2 ); + for( var i = 0; i < testSets.length; i++ ) { + var mockEntity = new MockEntity( testSets[i][0], testSets[i][1] ); + assert.ok( + mockEntity instanceof MockEntity, + 'Test set #' + i + ': Instantiated MockEntity object.' + ); + } + } ); + + QUnit.test( 'isEmpty()', function( assert ) { + assert.expect( 2 ); + assert.strictEqual( + ( new MockEntity( + 'i am an id', + new datamodel.Fingerprint( + new datamodel.TermMap(), + new datamodel.TermMap(), + new datamodel.MultiTermMap() + ) + ) ).isEmpty(), + true, + 'Verified isEmpty() returning TRUE.' + ); + + assert.strictEqual( + ( new MockEntity( + 'i am an id', + new datamodel.Fingerprint( + new datamodel.TermMap( { de: new datamodel.Term( 'de', 'de-term' ) } ), + new datamodel.TermMap(), + new datamodel.MultiTermMap() + ) + ) ).isEmpty(), + false, + 'Returning FALSE when Fingerprint is not empty.' + ); + } ); -QUnit.test( 'equals()', function( assert ) { - assert.expect( 4 ); - for( var i = 0; i < testSets.length; i++ ) { - var property1 = new MockEntity( testSets[i][0], testSets[i][1] ); + QUnit.test( 'equals()', function( assert ) { + assert.expect( 4 ); + for( var i = 0; i < testSets.length; i++ ) { + var property1 = new MockEntity( testSets[i][0], testSets[i][1] ); - for( var j = 0; j < testSets.length; j++ ) { - var property2 = new MockEntity( testSets[j][0], testSets[j][1] ); + for( var j = 0; j < testSets.length; j++ ) { + var property2 = new MockEntity( testSets[j][0], testSets[j][1] ); - if( i === j ) { - assert.ok( + if( i === j ) { + assert.strictEqual( + property1.equals( property2 ), + true, + 'Test set #' + i + ' equals test set #' + j + '.' + ); + continue; + } + + assert.strictEqual( property1.equals( property2 ), - 'Test set #' + i + ' equals test set #' + j + '.' + false, + 'Test set #' + i + ' does not equal test set #' + j + '.' ); - continue; } - - assert.ok( - !property1.equals( property2 ), - 'Test set #' + i + ' does not equal test set #' + j + '.' - ); } - } -} ); + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/ClaimSerializer.tests.js b/tests/Serializers/ClaimSerializer.tests.js index 6fde6f3..8a837e9 100644 --- a/tests/Serializers/ClaimSerializer.tests.js +++ b/tests/Serializers/ClaimSerializer.tests.js @@ -2,60 +2,60 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'ClaimSerializer' ); + QUnit.module( 'ClaimSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - ClaimSerializer = require( '../../src/Serializers/ClaimSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + ClaimSerializer = require( '../../src/Serializers/ClaimSerializer.js' ); -var testSets = [ - [ - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' ), - { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'claim' - } - ], [ - new datamodel.Claim( - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), - 'Q1$1' - ), - { - id: 'Q1$1', - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - qualifiers: { - P1: [ { + var testSets = [ + [ + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ), null, 'Q1$1' ), + { + id: 'Q1$1', + mainsnak: { snaktype: 'novalue', property: 'P1' - } ] - }, - 'qualifiers-order': [ 'P1' ], - type: 'claim' - } - ] -]; + }, + type: 'claim' + } + ], [ + new datamodel.Claim( + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), + 'Q1$1' + ), + { + id: 'Q1$1', + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + qualifiers: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + }, + 'qualifiers-order': [ 'P1' ], + type: 'claim' + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 2 ); - var claimSerializer = new ClaimSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 2 ); + var claimSerializer = new ClaimSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - claimSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + claimSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/ReferenceListSerializer.tests.js b/tests/Serializers/ReferenceListSerializer.tests.js index 0bdc964..9ff31f6 100644 --- a/tests/Serializers/ReferenceListSerializer.tests.js +++ b/tests/Serializers/ReferenceListSerializer.tests.js @@ -2,56 +2,56 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'ReferenceListSerializer' ); + QUnit.module( 'ReferenceListSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - ReferenceListSerializer = require( '../../src/Serializers/ReferenceListSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + ReferenceListSerializer = require( '../../src/Serializers/ReferenceListSerializer.js' ); -var testSets = [ - [ - new datamodel.ReferenceList(), - [] - ], [ - new datamodel.ReferenceList( [ new datamodel.Reference() ] ), + var testSets = [ [ - { - snaks: {}, - 'snaks-order': [] - } + new datamodel.ReferenceList(), + [] + ], [ + new datamodel.ReferenceList( [ new datamodel.Reference() ] ), + [ + { + snaks: {}, + 'snaks-order': [] + } + ] + ], [ + new datamodel.ReferenceList( [ + new datamodel.Reference( null, 'hash1' ), + new datamodel.Reference( null, 'hash2' ) + ] ), + [ + { + snaks: {}, + 'snaks-order': [], + hash: 'hash1' + }, { + snaks: {}, + 'snaks-order': [], + hash: 'hash2' + } + ] ] - ], [ - new datamodel.ReferenceList( [ - new datamodel.Reference( null, 'hash1' ), - new datamodel.Reference( null, 'hash2' ) - ] ), - [ - { - snaks: {}, - 'snaks-order': [], - hash: 'hash1' - }, { - snaks: {}, - 'snaks-order': [], - hash: 'hash2' - } - ] - ] -]; + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 3 ); - var referenceListSerializer = new ReferenceListSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 3 ); + var referenceListSerializer = new ReferenceListSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - referenceListSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + referenceListSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/ReferenceSerializer.tests.js b/tests/Serializers/ReferenceSerializer.tests.js index 48340e6..7ed04de 100644 --- a/tests/Serializers/ReferenceSerializer.tests.js +++ b/tests/Serializers/ReferenceSerializer.tests.js @@ -2,70 +2,70 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'ReferenceSerializer' ); + QUnit.module( 'ReferenceSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - ReferenceSerializer = require( '../../src/Serializers/ReferenceSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + ReferenceSerializer = require( '../../src/Serializers/ReferenceSerializer.js' ); -var testSets = [ - [ - new datamodel.Reference( - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), - 'i am a hash' - ), - { - hash: 'i am a hash', - snaks: { - P1: [ { - snaktype: 'novalue', - property: 'P1' - } ] - }, - 'snaks-order': [ 'P1' ] - } - ], [ - new datamodel.Reference( - new datamodel.SnakList( [ - new datamodel.PropertyNoValueSnak( 'P2' ), - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.PropertySomeValueSnak( 'P1' ) - ] ), - 'i am a hash' - ), - { - hash: 'i am a hash', - snaks: { - P1: [ { - snaktype: 'novalue', - property: 'P1' - }, { - snaktype: 'somevalue', - property: 'P1' - } ], - P2: [ { - snaktype: 'novalue', - property: 'P2' - } ] - }, - 'snaks-order': [ 'P2', 'P1' ] - } - ] -]; + var testSets = [ + [ + new datamodel.Reference( + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), + 'i am a hash' + ), + { + hash: 'i am a hash', + snaks: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + }, + 'snaks-order': [ 'P1' ] + } + ], [ + new datamodel.Reference( + new datamodel.SnakList( [ + new datamodel.PropertyNoValueSnak( 'P2' ), + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.PropertySomeValueSnak( 'P1' ) + ] ), + 'i am a hash' + ), + { + hash: 'i am a hash', + snaks: { + P1: [ { + snaktype: 'novalue', + property: 'P1' + }, { + snaktype: 'somevalue', + property: 'P1' + } ], + P2: [ { + snaktype: 'novalue', + property: 'P2' + } ] + }, + 'snaks-order': [ 'P2', 'P1' ] + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 2 ); - var referenceSerializer = new ReferenceSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 2 ); + var referenceSerializer = new ReferenceSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - referenceSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + referenceSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/Serializer.tests.js b/tests/Serializers/Serializer.tests.js index cbd2a94..e6ddf36 100644 --- a/tests/Serializers/Serializer.tests.js +++ b/tests/Serializers/Serializer.tests.js @@ -2,24 +2,24 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( util, QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'Serializer' ); + QUnit.module( 'Serializer' ); -var Serializer = require( '../../src/Serializers/Serializer.js' ); + var Serializer = require( '../../src/Serializers/Serializer.js' ); -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 1 ); - var SomeSerializer = util.inherit( 'WbTestSerializer', Serializer, {} ), - someSerializer = new SomeSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 1 ); + var SomeSerializer = util.inherit( 'WbTestSerializer', Serializer, {} ), + someSerializer = new SomeSerializer(); - assert.throws( - function() { - someSerializer.serialize( {} ); - }, - 'Trying to serialize on a Serializer not having serialize() specified fails.' - ); -} ); + assert.throws( + function() { + someSerializer.serialize( {} ); + }, + 'Trying to serialize on a Serializer not having serialize() specified fails.' + ); + } ); -}( util, QUnit ) ); +}() ); diff --git a/tests/Serializers/SnakListSerializer.tests.js b/tests/Serializers/SnakListSerializer.tests.js index 95bd568..d5a568f 100644 --- a/tests/Serializers/SnakListSerializer.tests.js +++ b/tests/Serializers/SnakListSerializer.tests.js @@ -2,59 +2,59 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'SnakListSerializer' ); + QUnit.module( 'SnakListSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - SnakListSerializer = require( '../../src/Serializers/SnakListSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + SnakListSerializer = require( '../../src/Serializers/SnakListSerializer.js' ); -var testSets = [ - [ - new datamodel.SnakList(), - {} - ], [ - new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), - { - P1: [ { - snaktype: 'novalue', - property: 'P1' - } ] - } - ], [ - new datamodel.SnakList( [ - new datamodel.PropertyNoValueSnak( 'P2' ), - new datamodel.PropertyNoValueSnak( 'P1' ), - new datamodel.PropertySomeValueSnak( 'P1' ) - ] ), - { - P1: [ { - snaktype: 'novalue', - property: 'P1' - }, { - snaktype: 'somevalue', - property: 'P1' - } ], - P2: [ { - snaktype: 'novalue', - property: 'P2' - } ] - } - ] -]; + var testSets = [ + [ + new datamodel.SnakList(), + {} + ], [ + new datamodel.SnakList( [ new datamodel.PropertyNoValueSnak( 'P1' ) ] ), + { + P1: [ { + snaktype: 'novalue', + property: 'P1' + } ] + } + ], [ + new datamodel.SnakList( [ + new datamodel.PropertyNoValueSnak( 'P2' ), + new datamodel.PropertyNoValueSnak( 'P1' ), + new datamodel.PropertySomeValueSnak( 'P1' ) + ] ), + { + P1: [ { + snaktype: 'novalue', + property: 'P1' + }, { + snaktype: 'somevalue', + property: 'P1' + } ], + P2: [ { + snaktype: 'novalue', + property: 'P2' + } ] + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 3 ); - var snakListSerializer = new SnakListSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 3 ); + var snakListSerializer = new SnakListSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - snakListSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + snakListSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/SnakSerializer.tests.js b/tests/Serializers/SnakSerializer.tests.js index de1fa5a..cb30a4e 100644 --- a/tests/Serializers/SnakSerializer.tests.js +++ b/tests/Serializers/SnakSerializer.tests.js @@ -3,51 +3,51 @@ * @author H. Snater < mediawiki@snater.com > */ -( function( dv, QUnit ) { -'use strict'; +( function( dv ) { + 'use strict'; -QUnit.module( 'SnakSerializer' ); + QUnit.module( 'SnakSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - SnakSerializer = require( '../../src/Serializers/SnakSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + SnakSerializer = require( '../../src/Serializers/SnakSerializer.js' ); -var testSets = [ - [ - new datamodel.PropertyNoValueSnak( 'P1' ), - { - snaktype: 'novalue', - property: 'P1' - } - ], [ - new datamodel.PropertySomeValueSnak( 'P1' ), - { - snaktype: 'somevalue', - property: 'P1' - } - ], [ - new datamodel.PropertyValueSnak( 'P1', new dv.StringValue( 'some string' ) ), - { - snaktype: 'value', - property: 'P1', - datavalue: { - type: 'string', - value: 'some string' + var testSets = [ + [ + new datamodel.PropertyNoValueSnak( 'P1' ), + { + snaktype: 'novalue', + property: 'P1' } - } - ] -]; + ], [ + new datamodel.PropertySomeValueSnak( 'P1' ), + { + snaktype: 'somevalue', + property: 'P1' + } + ], [ + new datamodel.PropertyValueSnak( 'P1', new dv.StringValue( 'some string' ) ), + { + snaktype: 'value', + property: 'P1', + datavalue: { + type: 'string', + value: 'some string' + } + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 3 ); - var snakSerializer = new SnakSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 3 ); + var snakSerializer = new SnakSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - snakSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + snakSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( dataValues, QUnit ) ); +}( dataValues ) ); diff --git a/tests/Serializers/StatementListSerializer.tests.js b/tests/Serializers/StatementListSerializer.tests.js index 4f58403..7ad0ecd 100644 --- a/tests/Serializers/StatementListSerializer.tests.js +++ b/tests/Serializers/StatementListSerializer.tests.js @@ -2,46 +2,46 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'StatementListSerializer' ); + QUnit.module( 'StatementListSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - StatementListSerializer = require( '../../src/Serializers/StatementListSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + StatementListSerializer = require( '../../src/Serializers/StatementListSerializer.js' ); -var testSets = [ - [ - new datamodel.StatementList(), - [] - ], [ - new datamodel.StatementList( [ new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) - ) ] ), + var testSets = [ [ - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } + new datamodel.StatementList(), + [] + ], [ + new datamodel.StatementList( [ new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ) + ) ] ), + [ + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } + ] ] - ] -]; + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 2 ); - var statementListSerializer = new StatementListSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 2 ); + var statementListSerializer = new StatementListSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - statementListSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + statementListSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/StatementSerializer.tests.js b/tests/Serializers/StatementSerializer.tests.js index 5a03b52..bc041ca 100644 --- a/tests/Serializers/StatementSerializer.tests.js +++ b/tests/Serializers/StatementSerializer.tests.js @@ -2,61 +2,61 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'StatementSerializer' ); + QUnit.module( 'StatementSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - StatementSerializer = require( '../../src/Serializers/StatementSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + StatementSerializer = require( '../../src/Serializers/StatementSerializer.js' ); -var testSets = [ - [ - new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), - null, - datamodel.Statement.RANK.NORMAL - ), - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - type: 'statement', - rank: 'normal' - } - ], [ - new datamodel.Statement( - new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), - new datamodel.ReferenceList( [ new datamodel.Reference() ] ), - datamodel.Statement.RANK.PREFERRED - ), - { - mainsnak: { - snaktype: 'novalue', - property: 'P1' - }, - references: [ { - snaks: {}, - 'snaks-order': [] - } ], - type: 'statement', - rank: 'preferred' - } - ] -]; + var testSets = [ + [ + new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), + null, + datamodel.Statement.RANK.NORMAL + ), + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + type: 'statement', + rank: 'normal' + } + ], [ + new datamodel.Statement( + new datamodel.Claim( new datamodel.PropertyNoValueSnak( 'P1' ) ), + new datamodel.ReferenceList( [ new datamodel.Reference() ] ), + datamodel.Statement.RANK.PREFERRED + ), + { + mainsnak: { + snaktype: 'novalue', + property: 'P1' + }, + references: [ { + snaks: {}, + 'snaks-order': [] + } ], + type: 'statement', + rank: 'preferred' + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 2 ); - var statementSerializer = new StatementSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 2 ); + var statementSerializer = new StatementSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - statementSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + statementSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/TermMapSerializer.tests.js b/tests/Serializers/TermMapSerializer.tests.js index f4bd24d..010b584 100644 --- a/tests/Serializers/TermMapSerializer.tests.js +++ b/tests/Serializers/TermMapSerializer.tests.js @@ -2,50 +2,50 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -QUnit.module( 'TermMapSerializer' ); + QUnit.module( 'TermMapSerializer' ); -var datamodel = require( 'wikibase.datamodel' ), - TermMapSerializer = require( '../../src/Serializers/TermMapSerializer.js' ); + var datamodel = require( 'wikibase.datamodel' ), + TermMapSerializer = require( '../../src/Serializers/TermMapSerializer.js' ); -var testSets = [ - [ - new datamodel.TermMap(), - {} - ], [ - new datamodel.TermMap( { - en: new datamodel.Term( 'en', 'en-test' ), - de: new datamodel.Term( 'de', 'de-test' ) - } ), - { - en: { language: 'en', value: 'en-test' }, - de: { language: 'de', value: 'de-test' } - } - ], [ - new datamodel.TermMap( { - en: new datamodel.Term( 'en', 'en-test' ), - de: new datamodel.Term( 'en', 'en-test' ) - } ), - { - en: { language: 'en', value: 'en-test' }, - de: { language: 'en', value: 'en-test' } - } - ] -]; + var testSets = [ + [ + new datamodel.TermMap(), + {} + ], [ + new datamodel.TermMap( { + en: new datamodel.Term( 'en', 'en-test' ), + de: new datamodel.Term( 'de', 'de-test' ) + } ), + { + en: { language: 'en', value: 'en-test' }, + de: { language: 'de', value: 'de-test' } + } + ], [ + new datamodel.TermMap( { + en: new datamodel.Term( 'en', 'en-test' ), + de: new datamodel.Term( 'en', 'en-test' ) + } ), + { + en: { language: 'en', value: 'en-test' }, + de: { language: 'en', value: 'en-test' } + } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 3 ); - var termMapSerializer = new TermMapSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 3 ); + var termMapSerializer = new TermMapSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - termMapSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + termMapSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/Serializers/TermSerializer.tests.js b/tests/Serializers/TermSerializer.tests.js index f7bc0b9..c934ea2 100644 --- a/tests/Serializers/TermSerializer.tests.js +++ b/tests/Serializers/TermSerializer.tests.js @@ -2,32 +2,32 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { -'use strict'; +( function() { + 'use strict'; -var TermSerializer = require( './../../src/Serializers/TermSerializer.js' ), - datamodel = require( 'wikibase.datamodel' ); + var TermSerializer = require( '../../src/Serializers/TermSerializer.js' ), + datamodel = require( 'wikibase.datamodel' ); -QUnit.module( 'TermSerializer' ); + QUnit.module( 'TermSerializer' ); -var testSets = [ - [ - new datamodel.Term( 'en', 'test' ), - { language: 'en', value: 'test' } - ] -]; + var testSets = [ + [ + new datamodel.Term( 'en', 'test' ), + { language: 'en', value: 'test' } + ] + ]; -QUnit.test( 'serialize()', function( assert ) { - assert.expect( 1 ); - var termSerializer = new TermSerializer(); + QUnit.test( 'serialize()', function( assert ) { + assert.expect( 1 ); + var termSerializer = new TermSerializer(); - for( var i = 0; i < testSets.length; i++ ) { - assert.deepEqual( - termSerializer.serialize( testSets[i][0] ), - testSets[i][1], - 'Test set #' + i + ': Serializing successful.' - ); - } -} ); + for( var i = 0; i < testSets.length; i++ ) { + assert.deepEqual( + termSerializer.serialize( testSets[i][0] ), + testSets[i][1], + 'Test set #' + i + ': Serializing successful.' + ); + } + } ); -}( QUnit ) ); +}() ); diff --git a/tests/StrategyProvider.tests.js b/tests/StrategyProvider.tests.js index 89cfe37..38d8e02 100644 --- a/tests/StrategyProvider.tests.js +++ b/tests/StrategyProvider.tests.js @@ -2,45 +2,45 @@ * @license GPL-2.0+ * @author H. Snater < mediawiki@snater.com > */ -( function( QUnit ) { +( function() { 'use strict'; -QUnit.module( 'StrategyProvider' ); + QUnit.module( 'StrategyProvider' ); -var testSets = [ - { - strategies: [ [ 0, 'key1' ], [ 1, 'key2' ] ] - } -], - StrategyProvider = require( '../src/StrategyProvider.js' ); + var testSets = [ + { + strategies: [ [ 0, 'key1' ], [ 1, 'key2' ] ] + } + ], + StrategyProvider = require( '../src/StrategyProvider.js' ); -QUnit.test( 'Constructor', function( assert ) { - assert.expect( 1 ); - assert.ok( - ( new StrategyProvider() ) instanceof StrategyProvider, - 'Instantiated StrategyProvider.' - ); -} ); + QUnit.test( 'Constructor', function( assert ) { + assert.expect( 1 ); + assert.ok( + ( new StrategyProvider() ) instanceof StrategyProvider, + 'Instantiated StrategyProvider.' + ); + } ); -QUnit.test( 'registerStrategy() & getStrategyFor()', function( assert ) { - assert.expect( 2 ); - for( var i = 0; i < testSets.length; i++ ) { - var strategyProvider = new StrategyProvider(); + QUnit.test( 'registerStrategy() & getStrategyFor()', function( assert ) { + assert.expect( 2 ); + for( var i = 0; i < testSets.length; i++ ) { + var strategyProvider = new StrategyProvider(); - for( var j = 0; j < testSets[i].strategies.length; j++ ) { - strategyProvider.registerStrategy( - testSets[i].strategies[j][0], - testSets[i].strategies[j][1] - ); - } + for( var j = 0; j < testSets[i].strategies.length; j++ ) { + strategyProvider.registerStrategy( + testSets[i].strategies[j][0], + testSets[i].strategies[j][1] + ); + } - for( j = 0; j < testSets[i].strategies.length; j++ ) { - assert.strictEqual( - strategyProvider.getStrategyFor( testSets[i].strategies[j][1] ), - testSets[i].strategies[j][0] - ); + for( j = 0; j < testSets[i].strategies.length; j++ ) { + assert.strictEqual( + strategyProvider.getStrategyFor( testSets[i].strategies[j][1] ), + testSets[i].strategies[j][0] + ); + } } - } -} ); + } ); -}( QUnit ) ); +}() );