diff options
Diffstat (limited to 'tests/phpunit/includes/TemplateCategoriesTest.php')
-rw-r--r-- | tests/phpunit/includes/TemplateCategoriesTest.php | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/phpunit/includes/TemplateCategoriesTest.php b/tests/phpunit/includes/TemplateCategoriesTest.php new file mode 100644 index 00000000..fb63a564 --- /dev/null +++ b/tests/phpunit/includes/TemplateCategoriesTest.php @@ -0,0 +1,53 @@ +<?php + +/** + * @group Database + */ +require __DIR__ . "/../../../maintenance/runJobs.php"; + +class TemplateCategoriesTest extends MediaWikiLangTestCase { + + /** + * @covers Title::getParentCategories + */ + public function testTemplateCategories() { + $title = Title::newFromText( "Categorized from template" ); + $page = WikiPage::factory( $title ); + $user = new User(); + $user->mRights = array( 'createpage', 'edit', 'purge' ); + + $page->doEditContent( + new WikitextContent( '{{Categorising template}}' ), + 'Create a page with a template', + 0, + false, + $user + ); + + $this->assertEquals( + array() + , $title->getParentCategories() + ); + + $template = WikiPage::factory( Title::newFromText( 'Template:Categorising template' ) ); + + $template->doEditContent( + new WikitextContent( '[[Category:Solved bugs]]' ), + 'Add a category through a template', + 0, + false, + $user + ); + + // Run the job queue + JobQueueGroup::destroySingletons(); + $jobs = new RunJobs; + $jobs->loadParamsAndArgs( null, array( 'quiet' => true ), null ); + $jobs->execute(); + + $this->assertEquals( + array( 'Category:Solved_bugs' => $title->getPrefixedText() ) + , $title->getParentCategories() + ); + } +} |