diff --git a/resources/src/mediawiki.api/mediawiki.api.category.js b/resources/src/mediawiki.api/mediawiki.api.category.js index a90617d8add..7dd9730f779 100644 --- a/resources/src/mediawiki.api/mediawiki.api.category.js +++ b/resources/src/mediawiki.api/mediawiki.api.category.js @@ -73,7 +73,7 @@ var texts = []; if ( data.query && data.query.allpages ) { $.each( data.query.allpages, function ( i, category ) { - texts.push( new mw.Title( category.title ).getNameText() ); + texts.push( new mw.Title( category.title ).getMainText() ); } ); } return texts; diff --git a/tests/qunit/QUnitTestResources.php b/tests/qunit/QUnitTestResources.php index e861967e110..5cfd18f7582 100644 --- a/tests/qunit/QUnitTestResources.php +++ b/tests/qunit/QUnitTestResources.php @@ -71,6 +71,7 @@ return array( 'tests/qunit/suites/resources/mediawiki/mediawiki.user.test.js', 'tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js', 'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js', + 'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js', 'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js', 'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js', 'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js', @@ -96,6 +97,7 @@ return array( 'jquery.tablesorter', 'jquery.textSelection', 'mediawiki.api', + 'mediawiki.api.category', 'mediawiki.api.parse', 'mediawiki.api.watch', 'mediawiki.jqueryMsg', diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js new file mode 100644 index 00000000000..a0c7daf1a06 --- /dev/null +++ b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js @@ -0,0 +1,30 @@ +( function ( mw ) { + QUnit.module( 'mediawiki.api.category', QUnit.newMwEnvironment( { + setup: function () { + this.server = this.sandbox.useFakeServer(); + } + } ) ); + + QUnit.test( '.getCategoriesByPrefix()', function ( assert ) { + QUnit.expect( 1 ); + + var api = new mw.Api(); + + api.getCategoriesByPrefix( 'Foo' ).done( function ( matches ) { + assert.deepEqual( + matches, + [ 'Food', 'Fool Supermarine S.6', 'Fools' ] + ); + } ); + + this.server.respond( function ( req ) { + req.respond( 200, { 'Content-Type': 'application/json' }, + '{ "query": { "allpages": [ ' + + '{ "title": "Category:Food" },' + + '{ "title": "Category:Fool Supermarine S.6" },' + + '{ "title": "Category:Fools" }' + + '] } }' + ); + } ); + } ); +}( mediaWiki ) );