X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2FLinkerTest.php;h=fe325075d56d3b6563018dca4b2c1352d2a96a96;hp=d3523c3a5494eb217326c5a12b57b7f4d5c141c4;hb=04d1aa3033f40a38d721f7f0e88b5bac440d2869;hpb=447574ceb746c2f4026a8bf77632bdc4604314bb diff --git a/tests/phpunit/includes/LinkerTest.php b/tests/phpunit/includes/LinkerTest.php index d3523c3a54..fe325075d5 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 @@ -15,11 +14,11 @@ class LinkerTest extends MediaWikiLangTestCase { ] ); // We'd also test the warning, but injecting a mock logger into a static method is tricky. - if ( $userName === '' ) { + if ( !$userName ) { Wikimedia\suppressWarnings(); } $actual = Linker::userLink( $userId, $userName, $altUserName ); - if ( $userName === '' ) { + if ( !$userName ) { Wikimedia\restoreWarnings(); } @@ -38,6 +37,9 @@ class LinkerTest extends MediaWikiLangTestCase { 'Empty username, userid 0' => [ '(no username available)', 0, '' ], 'Empty username, userid > 0' => [ '(no username available)', 73, '' ], + 'false instead of username' => [ '(no username available)', 73, false ], + 'null instead of username' => [ '(no username available)', 0, null ], + # ## ANONYMOUS USER ######################################## [ '→‎: // Edit via via', + ': // Edit via via', // Regression test for T222857 "/* */ // Edit via via", ], @@ -321,6 +323,36 @@ class LinkerTest extends MediaWikiLangTestCase { "/* autocomment */", null ], + [ + '', + "/* */", + false, true + ], + [ + '', + "/* */", + null + ], + [ + '[[', + "/* [[ */", + false, true + ], + [ + '[[', + "/* [[ */", + null + ], + [ + "foo →‎[[#_\t_]]", + "foo /* [[#_\t_]] */", + false, true + ], + [ + "foo #_\t_", + "foo /* [[#_\t_]] */", + null + ], [ '→‎autocomment', "/* autocomment */", @@ -414,14 +446,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 +466,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 +491,13 @@ class LinkerTest extends MediaWikiLangTestCase { return [ [ true, - [ 'mediawiki.page.rollback.confirmation' ] - + [ 'mediawiki.page.rollback.confirmation' ], + 'Rollback_Test_Page' ], [ false, - [] + [], + 'Rollback_Test_Page2' ] ]; }