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

Reply via email to