diff options
Diffstat (limited to 'tests/phpunit/skins')
-rw-r--r-- | tests/phpunit/skins/SideBarTest.php | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/tests/phpunit/skins/SideBarTest.php b/tests/phpunit/skins/SideBarTest.php deleted file mode 100644 index 9cb630fb..00000000 --- a/tests/phpunit/skins/SideBarTest.php +++ /dev/null @@ -1,223 +0,0 @@ -<?php - -/** - * @group Skin - */ -class SideBarTest extends MediaWikiLangTestCase { - - /** - * A skin template, reinitialized before each test - * @var SkinTemplate - */ - private $skin; - /** Local cache for sidebar messages */ - private $messages; - - /** Build $this->messages array */ - private function initMessagesHref() { - # List of default messages for the sidebar. The sidebar doesn't care at - # all whether they are full URLs, interwiki links or local titles. - $URL_messages = array( - 'mainpage', - 'portal-url', - 'currentevents-url', - 'recentchanges-url', - 'randompage-url', - 'helppage', - ); - - # We're assuming that isValidURI works as advertised: it's also - # tested separately, in tests/phpunit/includes/HttpTest.php. - foreach ( $URL_messages as $m ) { - $titleName = MessageCache::singleton()->get( $m ); - if ( Http::isValidURI( $titleName ) ) { - $this->messages[$m]['href'] = $titleName; - } else { - $title = Title::newFromText( $titleName ); - $this->messages[$m]['href'] = $title->getLocalURL(); - } - } - } - - protected function setUp() { - parent::setUp(); - $this->initMessagesHref(); - $this->skin = new SkinTemplate(); - $this->skin->getContext()->setLanguage( Language::factory( 'en' ) ); - } - - /** - * Internal helper to test the sidebar - * @param $expected - * @param $text - * @param $message (Default: '') - * @todo this assert method to should be converted to a test using a dataprovider.. - */ - private function assertSideBar( $expected, $text, $message = '' ) { - $bar = array(); - $this->skin->addToSidebarPlain( $bar, $text ); - $this->assertEquals( $expected, $bar, $message ); - } - - /** - * @covers SkinTemplate::addToSidebarPlain - */ - public function testSidebarWithOnlyTwoTitles() { - $this->assertSideBar( - array( - 'Title1' => array(), - 'Title2' => array(), - ), - '* Title1 -* Title2 -' - ); - } - - /** - * @covers SkinTemplate::addToSidebarPlain - */ - public function testExpandMessages() { - $this->setMwGlobals( array( - 'wgNoFollowDomainExceptions' => array( 'mediawiki.org' ), - ) ); - $this->assertSidebar( - array( 'Title' => array( - array( - 'text' => 'Help', - 'href' => $this->messages['helppage']['href'], - 'id' => 'n-help', - 'active' => null - ) - ) ), - '* Title -** helppage|help -' - ); - } - - /** - * @covers SkinTemplate::addToSidebarPlain - */ - public function testExternalUrlsRequireADescription() { - $this->setMwGlobals( array( - 'wgNoFollowLinks' => true, - 'wgNoFollowDomainExceptions' => array(), - 'wgNoFollowNsExceptions' => array(), - ) ); - $this->assertSidebar( - array( 'Title' => array( - # ** http://www.mediawiki.org/| Home - array( - 'text' => 'Home', - 'href' => 'http://www.mediawiki.org/', - 'id' => 'n-Home', - 'active' => null, - 'rel' => 'nofollow', - ), - # ** http://valid.no.desc.org/ - # ... skipped since it is missing a pipe with a description - ) ), - '* Title -** http://www.mediawiki.org/| Home -** http://valid.no.desc.org/ -' - ); - } - - /** - * bug 33321 - Make sure there's a | after transforming. - * @group Database - * @covers SkinTemplate::addToSidebarPlain - */ - public function testTrickyPipe() { - $this->assertSidebar( - array( 'Title' => array( - # The first 2 are skipped - # Doesn't really test the url properly - # because it will vary with $wgArticlePath et al. - # ** Baz|Fred - array( - 'text' => 'Fred', - 'href' => Title::newFromText( 'Baz' )->getLocalURL(), - 'id' => 'n-Fred', - 'active' => null, - ), - array( - 'text' => 'title-to-display', - 'href' => Title::newFromText( 'page-to-go-to' )->getLocalURL(), - 'id' => 'n-title-to-display', - 'active' => null, - ), - ) ), - '* Title -** {{PAGENAME|Foo}} -** Bar -** Baz|Fred -** {{PLURAL:1|page-to-go-to{{int:pipe-separator/en}}title-to-display|branch not taken}} -' - ); - } - - - #### Attributes for external links ########################## - private function getAttribs() { - # Sidebar text we will use everytime - $text = '* Title -** http://www.mediawiki.org/| Home'; - - $bar = array(); - $this->skin->addToSideBarPlain( $bar, $text ); - - return $bar['Title'][0]; - } - - /** - * Simple test to verify our helper assertAttribs() is functional - */ - public function testTestAttributesAssertionHelper() { - $this->setMwGlobals( array( - 'wgNoFollowLinks' => true, - 'wgNoFollowDomainExceptions' => array(), - 'wgNoFollowNsExceptions' => array(), - 'wgExternalLinkTarget' => false, - ) ); - $attribs = $this->getAttribs(); - - $this->assertArrayHasKey( 'rel', $attribs ); - $this->assertEquals( 'nofollow', $attribs['rel'] ); - - $this->assertArrayNotHasKey( 'target', $attribs ); - } - - /** - * Test $wgNoFollowLinks in sidebar - */ - public function testRespectWgnofollowlinks() { - $this->setMwGlobals( 'wgNoFollowLinks', false ); - - $attribs = $this->getAttribs(); - $this->assertArrayNotHasKey( 'rel', $attribs, - 'External URL in sidebar do not have rel=nofollow when $wgNoFollowLinks = false' - ); - } - - /** - * Test $wgExternaLinkTarget in sidebar - * @dataProvider dataRespectExternallinktarget - */ - public function testRespectExternallinktarget( $externalLinkTarget ) { - $this->setMwGlobals( 'wgExternalLinkTarget', $externalLinkTarget ); - - $attribs = $this->getAttribs(); - $this->assertArrayHasKey( 'target', $attribs ); - $this->assertEquals( $attribs['target'], $externalLinkTarget ); - } - - public static function dataRespectExternallinktarget() { - return array( - array( '_blank' ), - array( '_self' ), - ); - } -} |