X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fchanges%2FEnhancedChangesListTest.php;h=420fe7493e7c6f102cfa06c5eb010e3d4acd8553;hb=4be80912c8a2217344bddde64824f93d19d094db;hp=1290c641dfba3425dcded676964ca0dcc308d4c5;hpb=43e8cd0579b8c6c67add6f12af9ded460c47e6e2;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/changes/EnhancedChangesListTest.php b/tests/phpunit/includes/changes/EnhancedChangesListTest.php index 1290c641df..420fe7493e 100644 --- a/tests/phpunit/includes/changes/EnhancedChangesListTest.php +++ b/tests/phpunit/includes/changes/EnhancedChangesListTest.php @@ -74,6 +74,47 @@ class EnhancedChangesListTest extends MediaWikiLangTestCase { $this->assertEquals( '', $html ); } + public function testRecentChangesPrefix() { + $mockContext = $this->getMockBuilder( RequestContext::class ) + ->setMethods( [ 'getTitle' ] ) + ->getMock(); + $mockContext->method( 'getTitle' ) + ->will( $this->returnValue( Title::newFromText( 'Expected Context Title' ) ) ); + + // One group of two lines + $enhancedChangesList = $this->newEnhancedChangesList(); + $enhancedChangesList->setContext( $mockContext ); + $enhancedChangesList->setChangeLinePrefixer( function ( $rc, $changesList ) { + // Make sure RecentChange and ChangesList objects are the same + $this->assertEquals( 'Expected Context Title', $changesList->getContext()->getTitle() ); + $this->assertTrue( $rc->getTitle() == 'Cat' || $rc->getTitle() == 'Dog' ); + return 'Hello world prefix'; + } ); + $enhancedChangesList->beginRecentChangesList(); + + $recentChange = $this->getEditChange( '20131103092153' ); + $enhancedChangesList->recentChangesLine( $recentChange ); + $recentChange = $this->getEditChange( '20131103092154' ); + $enhancedChangesList->recentChangesLine( $recentChange ); + + $html = $enhancedChangesList->endRecentChangesList(); + + $this->assertRegExp( '/Hello world prefix/', $html ); + + // Two separate lines + $enhancedChangesList->beginRecentChangesList(); + + $recentChange = $this->getEditChange( '20131103092153' ); + $enhancedChangesList->recentChangesLine( $recentChange ); + $recentChange = $this->getEditChange( '20131103092154', 'Dog' ); + $enhancedChangesList->recentChangesLine( $recentChange ); + + $html = $enhancedChangesList->endRecentChangesList(); + + preg_match_all( '/Hello world prefix/', $html, $matches ); + $this->assertCount( 2, $matches[0] ); + } + public function testCategorizationLineFormatting() { $html = $this->createCategorizationLine( $this->getCategorizationChange( '20150629191735', 0, 0 ) @@ -112,12 +153,16 @@ class EnhancedChangesListTest extends MediaWikiLangTestCase { preg_match_all( '/td class="mw-enhanced-rc-nested"/', $html, $matches ); $this->assertCount( 2, $matches[0] ); + preg_match_all( '/data-target-page="Cat"/', $html, $matches ); + $this->assertCount( 2, $matches[0] ); + $recentChange3 = $this->getLogChange(); $enhancedChangesList->recentChangesLine( $recentChange3, false ); $html = $enhancedChangesList->endRecentChangesList(); $this->assertContains( 'data-mw-logaction="foo/bar"', $html ); $this->assertContains( 'data-mw-logid="25"', $html ); + $this->assertContains( 'data-target-page="Title"', $html ); } /** @@ -133,10 +178,10 @@ class EnhancedChangesListTest extends MediaWikiLangTestCase { /** * @return RecentChange */ - private function getEditChange( $timestamp ) { + private function getEditChange( $timestamp, $pageTitle = 'Cat' ) { $user = $this->getMutableTestUser()->getUser(); $recentChange = $this->testRecentChangesHelper->makeEditRecentChange( - $user, 'Cat', 0, 5, 191, $timestamp, 0, 0 + $user, $pageTitle, 0, 5, 191, $timestamp, 0, 0 ); return $recentChange;