WMDE-leszek has uploaded a new change for review. https://gerrit.wikimedia.org/r/315504
Change subject: [DNM] Test showing regression fixed by Ib23a348034acc8f8d072d96b36dafb9717c1c421 ...................................................................... [DNM] Test showing regression fixed by Ib23a348034acc8f8d072d96b36dafb9717c1c421 Test should fail on master Change-Id: I55819c01b24238937afaa70dcd33e21cdbf1fbd0 --- M client/tests/phpunit/includes/Specials/SpecialEntityUsageTest.php 1 file changed, 75 insertions(+), 27 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/04/315504/2 diff --git a/client/tests/phpunit/includes/Specials/SpecialEntityUsageTest.php b/client/tests/phpunit/includes/Specials/SpecialEntityUsageTest.php index e3daa05..20d7457 100644 --- a/client/tests/phpunit/includes/Specials/SpecialEntityUsageTest.php +++ b/client/tests/phpunit/includes/Specials/SpecialEntityUsageTest.php @@ -6,7 +6,9 @@ use RequestContext; use SpecialPageFactory; use SpecialPageTestBase; +use Title; use Wikibase\Client\Specials\SpecialEntityUsage; +use WikiPage; /** * @covers Wikibase\Client\Specials\SpecialEntityUsage @@ -21,50 +23,96 @@ */ class SpecialEntityUsageTest extends SpecialPageTestBase { - public function reallyDoQueryMock() { - $rows = [ - (object)[ - 'value' => 11, - 'namespace' => 0, - 'title' => 'Tehran', - 'aspects' => 'S|O|L.fa', - 'eu_page_id' => 11, - 'eu_entity_id' => 'Q3', + protected function setUp() { + $this->tablesUsed = array_unique( + array_merge( $this->tablesUsed, [ 'page', 'wbc_entity_usage' ] ) + ); + parent::setUp(); + } + + private function setupEntityUsageFixtures() { + $db = wfGetDB( DB_MASTER ); + $pages = [ + [ + 'page_title' => 'Vienna', + 'page_namespace' => 0, + 'page_id' => 11, + ], + [ + 'page_title' => 'Berlin', + 'page_namespace' => 0, + 'page_id' => 22, ], ]; - - return new FakeResultWrapper( $rows ); + $entityUsage = [ + [ + 'eu_page_id' => 11, + 'eu_entity_id' => 'Q3', + 'eu_aspect' => 'S' + ], + [ + 'eu_page_id' => 11, + 'eu_entity_id' => 'Q3', + 'eu_aspect' => 'O' + ], + [ + 'eu_page_id' => 22, + 'eu_entity_id' => 'Q3', + 'eu_aspect' => 'L.de' + ], + ]; + foreach ( $pages as $pageData ) { + $page = WikiPage::factory( Title::makeTitle( $pageData['page_namespace'], $pageData['page_title'] ) ); + $page->insertOn( $db, $pageData['page_id'] ); + } + foreach ( $entityUsage as $item ) { + $db->insert( + 'wbc_entity_usage', + $item + ); + } } /** * @return SpecialEntityUsage */ protected function newSpecialPage() { - $specialPage = $this->getMockBuilder( SpecialEntityUsage::class ) - ->setMethods( [ 'reallyDoQuery' ] ) - ->getMock(); - - $specialPage->expects( $this->any() ) - ->method( 'reallyDoQuery' ) - ->will( $this->returnValue( $this->reallyDoQueryMock() ) ); - - return $specialPage; + return new SpecialEntityUsage(); } public function testExecuteWithValidParam() { - list( $result, ) = $this->executeSpecialPage( 'Q3' ); - $aspects = [ + if ( wfGetDB( DB_SLAVE )->getType() === 'mysql' ) { + $this->markTestSkipped( 'MySQL does not allow selfjoins on temporary tables' ); + } + + $this->setupEntityUsageFixtures(); + + $aspectsVienna = [ wfMessage( 'wikibase-pageinfo-entity-usage-S' )->parse(), wfMessage( 'wikibase-pageinfo-entity-usage-O' )->parse(), - wfMessage( 'wikibase-pageinfo-entity-usage-L', 'fa' )->parse(), ]; - $aspectList = RequestContext::getMain()->getLanguage()->commaList( $aspects ); + $aspectsBerlin = [ + wfMessage( 'wikibase-pageinfo-entity-usage-L', 'de' )->parse(), + ]; + $aspectsAll = array_merge( $aspectsVienna, $aspectsBerlin ); + $lang = RequestContext::getMain()->getLanguage(); + $aspectListVienna = $lang->commaList( $aspectsVienna ); + $aspectListBerlin = $lang->commaList( $aspectsBerlin ); + $aspectListAll = $lang->commaList( $aspectsAll ); - $this->assertContains( 'Tehran', $result ); - $this->assertNotContains( '<p class="error"', $result ); $expected = SpecialPageFactory::getLocalNameFor( 'EntityUsage', 'Q3' ); + + list( $result, ) = $this->executeSpecialPage( 'Q3' ); + + $this->assertNotContains( '<p class="error"', $result ); $this->assertContains( $expected, $result ); - $this->assertContains( $aspectList, $result ); + + $this->assertContains( 'Vienna', $result ); + $this->assertContains( 'Berlin', $result ); + $this->assertContains( $aspectListVienna, $result ); + $this->assertContains( $aspectListBerlin, $result ); + + $this->assertNotContains( $aspectListAll, $result ); } public function testExecuteWithInvalidParam() { -- To view, visit https://gerrit.wikimedia.org/r/315504 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I55819c01b24238937afaa70dcd33e21cdbf1fbd0 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: WMDE-leszek <leszek.mani...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits