mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-11-29 00:20:51 +00:00
2cc9516cde
This is programmatic output from python3 scripts/migrate.py This will result in a Minerva skin dependent on MobileFrontend. Post merge we will rename message keys to have minerva- prefix Bug: T166748 Change-Id: Iff1f7e63e796cc5d4a6d2ab0370e0c33248d2fce
102 lines
2.7 KiB
PHP
102 lines
2.7 KiB
PHP
<?php
|
|
use MediaWiki\Minerva\SkinUserPageHelper;
|
|
|
|
/**
|
|
* @group MobileFrontend
|
|
* @coversDefaultClass MediaWiki\Minerva\SkinUserPageHelper
|
|
*/
|
|
class SkinUserPageHelperTest extends MediaWikiTestCase {
|
|
|
|
private function getContextMock( Title $title ) {
|
|
$context = $this->getMock( IContextSource::class );
|
|
|
|
$context->expects( $this->once() )
|
|
->method( 'getTitle' )
|
|
->willReturn( $title );
|
|
|
|
return $context;
|
|
}
|
|
|
|
/**
|
|
* @covers ::isUserPage
|
|
* @covers ::fetchData
|
|
* @covers ::__construct
|
|
*/
|
|
public function testTitleNotInUserNamespace() {
|
|
$title = Title::newFromText( 'Test Page', NS_MAIN );
|
|
|
|
$helper = new SkinUserPageHelper( $this->getContextMock( $title ) );
|
|
$this->assertEquals( false, $helper->isUserPage() );
|
|
}
|
|
|
|
/**
|
|
* @covers ::isUserPage
|
|
* @covers ::fetchData
|
|
*/
|
|
public function testTitleisASubpage() {
|
|
$title = Title::newFromText( 'User:TestUser/subpage', NS_USER );
|
|
|
|
$helper = new SkinUserPageHelper( $this->getContextMock( $title ) );
|
|
$this->assertEquals( false, $helper->isUserPage() );
|
|
}
|
|
|
|
/**
|
|
* @covers ::fetchData
|
|
*/
|
|
public function testTitleProcessingIsCached() {
|
|
$titleMock = $this->getMockBuilder( Title::class )
|
|
->getMock();
|
|
$titleMock->expects( $this->once() )
|
|
->method( 'inNamespace' )
|
|
->with( NS_USER )
|
|
->willReturn( true );
|
|
|
|
$titleMock->expects( $this->once() )
|
|
->method( 'isSubpage' )
|
|
->willReturn( false );
|
|
|
|
$titleMock->expects( $this->once() )
|
|
->method( 'getText' )
|
|
->willReturn( 'Test' );
|
|
|
|
$helper = new SkinUserPageHelper( $this->getContextMock( $titleMock ) );
|
|
$helper->isUserPage();
|
|
$helper->isUserPage();
|
|
$helper->getPageUser();
|
|
$helper->getPageUser();
|
|
}
|
|
|
|
/**
|
|
* @covers ::fetchData
|
|
* @covers ::getPageUser
|
|
* @covers ::isUserPage
|
|
*/
|
|
public function testGetPageUserWhenOnUserPage() {
|
|
$testUser = $this->getTestUser()->getUser();
|
|
$title = $testUser->getUserPage();
|
|
|
|
$helper = new SkinUserPageHelper( $this->getContextMock( $title ) );
|
|
$this->assertEquals( true, $helper->isUserPage() );
|
|
$this->assertEquals( $testUser->getId(), $helper->getPageUser()->getId() );
|
|
}
|
|
|
|
/**
|
|
* @covers ::fetchData
|
|
* @covers ::getPageUser
|
|
* @covers ::isUserPage
|
|
*/
|
|
public function testGetPageUserWhenOnUserPageReturnsCorrectUser() {
|
|
$testUser = $this->getTestUser()->getUser();
|
|
$testUserTitle = $testUser->getUserPage();
|
|
|
|
$secondTestUser = $this->getTestSysop()->getUser();
|
|
$secondTestUserTitle = $secondTestUser->getUserPage();
|
|
|
|
$helper = new SkinUserPageHelper( $this->getContextMock( $secondTestUserTitle ) );
|
|
$this->assertEquals( true, $helper->isUserPage() );
|
|
$this->assertNotEquals( $testUser->getId(), $helper->getPageUser()->getId() );
|
|
$this->assertNotEquals( $helper->getPageUser()->getUserPage(), $testUserTitle );
|
|
}
|
|
|
|
}
|