Merge "Add test for WikiPage::updateCategoryCounts"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 4 Dec 2017 19:05:29 +0000 (19:05 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 4 Dec 2017 19:05:29 +0000 (19:05 +0000)
tests/phpunit/includes/page/WikiPageDbTestBase.php

index 7ef279e..64ad644 100644 (file)
@@ -12,6 +12,7 @@ abstract class WikiPageDbTestBase extends MediaWikiLangTestCase {
                        [ 'page',
                                'revision',
                                'archive',
+                               'category',
                                'ip_changes',
                                'text',
 
@@ -1154,4 +1155,32 @@ more stuff
                ];
        }
 
+       /**
+        * @covers WikiPage::updateCategoryCounts
+        */
+       public function testUpdateCategoryCounts() {
+               $page = new WikiPage( Title::newFromText( __METHOD__ ) );
+
+               // Add an initial category
+               $page->updateCategoryCounts( [ 'A' ], [], 0 );
+
+               $this->assertEquals( 1, Category::newFromName( 'A' )->getPageCount() );
+               $this->assertEquals( 0, Category::newFromName( 'B' )->getPageCount() );
+               $this->assertEquals( 0, Category::newFromName( 'C' )->getPageCount() );
+
+               // Add a new category
+               $page->updateCategoryCounts( [ 'B' ], [], 0 );
+
+               $this->assertEquals( 1, Category::newFromName( 'A' )->getPageCount() );
+               $this->assertEquals( 1, Category::newFromName( 'B' )->getPageCount() );
+               $this->assertEquals( 0, Category::newFromName( 'C' )->getPageCount() );
+
+               // Add and remove a category
+               $page->updateCategoryCounts( [ 'C' ], [ 'A' ], 0 );
+
+               $this->assertEquals( 0, Category::newFromName( 'A' )->getPageCount() );
+               $this->assertEquals( 1, Category::newFromName( 'B' )->getPageCount() );
+               $this->assertEquals( 1, Category::newFromName( 'C' )->getPageCount() );
+       }
+
 }