Jsahleen has uploaded a new change for review.
https://gerrit.wikimedia.org/r/191673
Change subject: [WIP] Categories: Update categories code and unit tests
......................................................................
[WIP] Categories: Update categories code and unit tests
* Updates categories code to remove unexecuted code
* Updates unit tests
* Note: Still not using fake server. Need some help with that.
Bug: T89641
Change-Id: I42025b94b5cb7be6d02b55f7259b64e4d8a6c7ea
---
M modules/tools/ext.cx.tools.categories.js
M tests/qunit/tools/ext.cx.tools.categories.test.js
2 files changed, 56 insertions(+), 169 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation
refs/changes/73/191673/1
diff --git a/modules/tools/ext.cx.tools.categories.js
b/modules/tools/ext.cx.tools.categories.js
index 7db52e3..0f80351 100644
--- a/modules/tools/ext.cx.tools.categories.js
+++ b/modules/tools/ext.cx.tools.categories.js
@@ -602,50 +602,20 @@
* If no set is specified, returns all three sets
*
* @param {string} categorySet The set of categories to return
- * @return {jQuery.promis}
+ * @return {jQuery.Promise}
*/
- CXCategoryTool.prototype.getCategories = function ( categorySet ) {
+ CXCategoryTool.prototype.getCategories = function ( ) {
var categoryTool = this,
deferred = $.Deferred();
- switch ( categorySet ) {
- case 'source':
- this.getArticleCategories( mw.cx.sourceTitle,
mw.cx.sourceLanguage )
- .done( function ( categories ) {
- deferred.resolve( categories );
- } );
- break;
- case 'adapted':
- this.getArticleCategories( mw.cx.sourceTitle,
mw.cx.sourceLanguage )
- .done( function ( categories ) {
- categoryTool.adaptCategories(
categories, mw.cx.targetLanguage )
- .done( function (
adaptedCategories ) {
- deferred.resolve(
adaptedCategories );
- } );
- } );
- break;
- case 'target':
- if ( this.categories.target !== null ) {
- deferred.resolve( this.categories.target );
- } else {
- this.getArticleCategories( mw.cx.sourceTitle,
mw.cx.sourceLanguage )
- .done( function ( categories ) {
- categoryTool.adaptCategories(
categories, mw.cx.targetLanguage )
- .done( function (
adaptedCategories ) {
-
deferred.resolve( adaptedCategories );
- } );
+ this.getArticleCategories( mw.cx.sourceTitle,
mw.cx.sourceLanguage )
+ .done( function ( categories ) {
+ categoryTool.adaptCategories( categories,
mw.cx.targetLanguage )
+ .done( function () {
+ console.dir(
categoryTool.categories );
+ deferred.resolve(
categoryTool.categories );
} );
- }
- break;
- default:
- this.getArticleCategories( mw.cx.sourceTitle,
mw.cx.sourceLanguage )
- .done( function ( categories ) {
- categoryTool.adaptCategories(
categories, mw.cx.targetLanguage )
- .done( function () {
- deferred.resolve(
categoryTool.categories );
- } );
- } );
- }
+ } );
return deferred.promise();
diff --git a/tests/qunit/tools/ext.cx.tools.categories.test.js
b/tests/qunit/tools/ext.cx.tools.categories.test.js
index 3796931..63b7b22 100644
--- a/tests/qunit/tools/ext.cx.tools.categories.test.js
+++ b/tests/qunit/tools/ext.cx.tools.categories.test.js
@@ -12,144 +12,61 @@
mw.cx.siteMapper = new mw.cx.SiteMapper(
mw.config.get(
'wgContentTranslationSiteTemplates' )
);
- mw.cx.sourceLanguage = 'en';
- mw.cx.targetLanguage = 'es';
+ mw.cx.sourceLanguage = 'es';
+ mw.cx.targetLanguage = 'ca';
+ this.server = this.sandbox.useFakeServer();
}
} ) );
- QUnit.test( 'Get source categories', function ( assert ) {
+ QUnit.test( 'Get categories', function ( assert ) {
+ var server, done1, categoryTool = new mw.cx.CategoryTool(
mw.cx.siteMapper );
+ server = this.server;
+ done1 = assert.async();
QUnit.expect( 3 );
- function testGetSourceCategories( title ) {
- var deferred = $.Deferred();
-
- mw.cx.categoryTool = new mw.cx.CategoryTool(
mw.cx.siteMapper );
- mw.cx.sourceTitle = title;
- mw.cx.categoryTool.getCategories( 'source' )
- .done( function ( categories ) {
- deferred.resolve( categories );
- } );
-
- return deferred.promise();
- }
-
- QUnit.stop();
- testGetSourceCategories( 'Han Fei' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 13,
- 'Correct number of source categories
retrieved (13 results)'
- );
- QUnit.start();
+ mw.cx.sourceTitle = 'Han Feizi';
+ categoryTool.getCategories()
+ .then( function () {
+ assert.equal( Object.keys(
categoryTool.categories.source ).length, 4 );
+ assert.equal( Object.keys(
categoryTool.categories.adapted ).length, 1 );
+ assert.equal( Object.keys(
categoryTool.categories.target ).length, 1 );
+ done1();
} );
- QUnit.stop();
- testGetSourceCategories( 'Han' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 1,
- 'Correct number of source categories
retrieved (1 result)'
- );
- QUnit.start();
- } );
+ /*server.requests[ 0 ].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ { 'query': { 'pageids': [ '1297210' ],
+ 'pages': { '1297210': { 'pageid': 1297210,
'ns': 0, 'title': 'Han Feizi',
+ 'categories': [
+ { 'ns': 14, 'title':
'Categor\u00eda:Chinos del siglo III a. C.' },
+ { 'ns': 14, 'title':
'Categor\u00eda:Fil\u00f3sofos de China Antigua' },
+ { 'ns': 14, 'title':
'Categor\u00eda:Fil\u00f3sofos del siglo III a. C.' },
+ { 'ns': 14, 'title':
'Categor\u00eda:Suicidas de China' }
+ ]
+ } } }
+ }
+ );*/
- QUnit.stop();
- testGetSourceCategories( 'Shen Dao' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 6,
- 'Correct number of source categories
retrieved (6 results)'
- );
- QUnit.start();
- } );
-
- } );
-
- QUnit.test( 'Get adapted categories', function ( assert ) {
- QUnit.expect( 3 );
-
- function testGetAdaptedCategories( title ) {
- var deferred = $.Deferred();
-
- mw.cx.categoryTool = new mw.cx.CategoryTool(
mw.cx.siteMapper );
- mw.cx.sourceTitle = title;
- mw.cx.categoryTool.getCategories( 'adapted' )
- .done( function ( adaptedCategories ) {
- deferred.resolve( adaptedCategories );
- } );
-
- return deferred.promise();
- }
-
- QUnit.stop();
- testGetAdaptedCategories( 'Han Fei' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 4,
- 'Correct number of adapted categories
retrieved (4 results)'
- );
- QUnit.start();
- } );
-
- QUnit.stop();
- testGetAdaptedCategories( 'Han' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 1,
- 'Correct number of adapted categories
retrieved (1 result)'
- );
- QUnit.start();
- } );
-
- QUnit.stop();
- testGetAdaptedCategories( 'Shen Dao' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 0,
- 'Correct number of adapted categories
retrieved (No results)'
- );
- QUnit.start();
- } );
-
- } );
-
- QUnit.test( 'Get target categories', function ( assert ) {
- QUnit.expect( 3 );
-
- function testGetTargetCategories( title ) {
- var deferred = $.Deferred();
-
- mw.cx.categoryTool = new mw.cx.CategoryTool(
mw.cx.siteMapper );
- mw.cx.sourceTitle = title;
- mw.cx.categoryTool.getCategories( 'target' )
- .done( function ( adaptedCategories ) {
- deferred.resolve( adaptedCategories );
- } );
-
- return deferred.promise();
- }
-
- QUnit.stop();
- testGetTargetCategories( 'Han Fei' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 4,
- 'Correct number of target categories
retrieved (4 results)'
- );
- QUnit.start();
- } );
-
- QUnit.stop();
- testGetTargetCategories( 'Han' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 1,
- 'Correct number of target categories
retrieved (1 result)'
- );
- QUnit.start();
- } );
-
- QUnit.stop();
- testGetTargetCategories( 'Shen Dao' )
- .done( function ( results ) {
- assert.equal( Object.keys( results ).length, 0,
- 'Correct number of target categories
retrieved (No results)'
- );
- QUnit.start();
- } );
-
+ /*server.requests[ 1 ].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ { 'query': { 'pageids': [ '4794870', '389825',
'1894749', '2631886' ],
+ 'pages': {
+ '4794870':
+ { 'pageid': 4794870, 'ns': 14,
'title': 'Categor\u00eda:Chinos del siglo III a. C.' },
+ '389825':
+ { 'pageid': 389825, 'ns': 14,
'title': 'Categor\u00eda:Fil\u00f3sofos de China Antigua' },
+ '1894749':
+ { 'pageid': 1894749, 'ns': 14,
'title': 'Categor\u00eda:Fil\u00f3sofos del siglo III a. C.' },
+ '2631886':
+ { 'pageid': 2631886, 'ns': 14,
'title': 'Categor\u00eda:Suicidas de China',
+ 'langlinks': [
+ { 'lang': 'ca',
'*': 'Categoria:Su\u00efcides xinesos' }
+ ]
+ }
+ }
+ } } );*/
} );
}( jQuery, mediaWiki ) );
--
To view, visit https://gerrit.wikimedia.org/r/191673
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I42025b94b5cb7be6d02b55f7259b64e4d8a6c7ea
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Jsahleen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits