MediaWiki REL1_32
SpecialPageTest.php
Go to the documentation of this file.
1<?php
2
11
12 protected function setUp() {
13 parent::setUp();
14
15 $this->setContentLang( 'en' );
16 $this->setMwGlobals( [
17 'wgScript' => '/index.php',
18 ] );
19 }
20
24 public function testGetTitleFor( $expectedName, $name ) {
25 $title = SpecialPage::getTitleFor( $name );
26 $expected = Title::makeTitle( NS_SPECIAL, $expectedName );
27 $this->assertEquals( $expected, $title );
28 }
29
30 public function getTitleForProvider() {
31 return [
32 [ 'UserLogin', 'Userlogin' ]
33 ];
34 }
35
39 public function testInvalidGetTitleFor() {
40 $title = SpecialPage::getTitleFor( 'cat' );
41 $expected = Title::makeTitle( NS_SPECIAL, 'Cat' );
42 $this->assertEquals( $expected, $title );
43 }
44
49 public function testGetTitleForWithWarning( $expected, $name ) {
50 $title = SpecialPage::getTitleFor( $name );
51 $this->assertEquals( $expected, $title );
52 }
53
55 return [
56 [ Title::makeTitle( NS_SPECIAL, 'UserLogin' ), 'UserLogin' ]
57 ];
58 }
59
63 public function testRequireLoginAnon( $expected, $reason, $title ) {
64 $specialPage = new SpecialPage( 'Watchlist', 'viewmywatchlist' );
65
66 $user = User::newFromId( 0 );
67 $specialPage->getContext()->setUser( $user );
68 $specialPage->getContext()->setLanguage( Language::factory( 'en' ) );
69
70 $this->setExpectedException( UserNotLoggedIn::class, $expected );
71
72 // $specialPage->requireLogin( [ $reason [, $title ] ] )
73 call_user_func_array(
74 [ $specialPage, 'requireLogin' ],
75 array_filter( [ $reason, $title ] )
76 );
77 }
78
79 public function requireLoginAnonProvider() {
80 $lang = 'en';
81
82 $expected1 = wfMessage( 'exception-nologin-text' )->inLanguage( $lang )->text();
83 $expected2 = wfMessage( 'about' )->inLanguage( $lang )->text();
84
85 return [
86 [ $expected1, null, null ],
87 [ $expected2, 'about', null ],
88 [ $expected2, 'about', 'about' ],
89 ];
90 }
91
92 public function testRequireLoginNotAnon() {
93 $specialPage = new SpecialPage( 'Watchlist', 'viewmywatchlist' );
94
95 $user = User::newFromName( "UTSysop" );
96 $specialPage->getContext()->setUser( $user );
97
98 $specialPage->requireLogin();
99
100 // no exception thrown, logged in use can access special page
101 $this->assertTrue( true );
102 }
103
104}
setMwGlobals( $pairs, $value=null)
Sets a global, maintaining a stashed version of the previous global to be restored in tearDown.
testInvalidGetTitleFor()
PHPUnit_Framework_Error_Notice.
testGetTitleForWithWarning( $expected, $name)
PHPUnit_Framework_Error_Notice getTitleForWithWarningProvider.
testGetTitleFor( $expectedName, $name)
getTitleForProvider
testRequireLoginAnon( $expected, $reason, $title)
requireLoginAnonProvider
Parent class for all special pages.
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition User.php:592
static newFromId( $id)
Static factory method for creation from a given user ID.
Definition User.php:615
either a unescaped string or a HtmlArmor object after in associative array form externallinks including delete and has completed for all link tables whether this was an auto creation use $formDescriptor instead default is conds Array Extra conditions for the No matching items in log is displayed if loglist is empty msgKey Array If you want a nice box with a set this to the key of the message First element is the message additional optional elements are parameters for the key that are processed with wfMessage() -> params() ->parseAsBlock() - offset Set to overwrite offset parameter in $wgRequest set to '' to unset offset - wrap String Wrap the message in html(usually something like "&lt;div ...>$1&lt;/div>"). - flags Integer display flags(NO_ACTION_LINK, NO_EXTRA_USER_LINKS) 'LogException':Called before an exception(or PHP error) is logged. This is meant for integration with external error aggregation services
const NS_SPECIAL
Definition Defines.php:53
if(!isset( $args[0])) $lang