From b589693af04b35b14372b6a45c58e120390c7676 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Wed, 29 May 2019 14:05:10 -0700 Subject: [PATCH] Cleanup LinkerTest leakage between provider entries The problem was that new revisions were being added to the same page since it is not deleted between each run. Change-Id: I52e8db8e5ef3cde309c26f928fd44de4e6ec18e4 --- tests/phpunit/includes/LinkerTest.php | 29 +++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/tests/phpunit/includes/LinkerTest.php b/tests/phpunit/includes/LinkerTest.php index d3523c3a54..980b32090c 100644 --- a/tests/phpunit/includes/LinkerTest.php +++ b/tests/phpunit/includes/LinkerTest.php @@ -4,7 +4,6 @@ * @group Database */ class LinkerTest extends MediaWikiLangTestCase { - /** * @dataProvider provideCasesForUserLink * @covers Linker::userLink @@ -414,14 +413,15 @@ class LinkerTest extends MediaWikiLangTestCase { * @covers Linker::generateRollback * @dataProvider provideCasesForRollbackGeneration */ - public function testGenerateRollback( $rollbackEnabled, $expectedModules ) { + public function testGenerateRollback( $rollbackEnabled, $expectedModules, $title ) { $this->markTestSkippedIfDbType( 'postgres' ); $context = RequestContext::getMain(); $user = $context->getUser(); $user->setOption( 'showrollbackconfirmation', $rollbackEnabled ); - $pageData = $this->insertPage( 'Rollback_Test_Page' ); + $this->assertEquals( 0, Title::newFromText( $title )->getArticleID() ); + $pageData = $this->insertPage( $title ); $page = WikiPage::factory( $pageData['title'] ); $updater = $page->newPageUpdater( $user ); @@ -433,8 +433,24 @@ class LinkerTest extends MediaWikiLangTestCase { $rollbackOutput = Linker::generateRollback( $page->getRevision(), $context ); $modules = $context->getOutput()->getModules(); + $currentRev = $page->getRevision(); + $oldestRev = $page->getOldestRevision(); $this->assertEquals( $expectedModules, $modules ); + $this->assertEquals( $user->getName(), $currentRev->getUserText() ); + $this->assertEquals( + static::getTestSysop()->getUser(), + $oldestRev->getUserText() + ); + + $ids = []; + $r = $oldestRev; + while ( $r ) { + $ids[] = $r->getId(); + $r = $r->getNext(); + } + $this->assertEquals( [ $oldestRev->getId(), $currentRev->getId() ], $ids ); + $this->assertContains( 'rollback 1 edit', $rollbackOutput ); } @@ -442,12 +458,13 @@ class LinkerTest extends MediaWikiLangTestCase { return [ [ true, - [ 'mediawiki.page.rollback.confirmation' ] - + [ 'mediawiki.page.rollback.confirmation' ], + 'Rollback_Test_Page' ], [ false, - [] + [], + 'Rollback_Test_Page2' ] ]; } -- 2.20.1