Merge "Revert "Don't construct SpecialPages twice""

This commit is contained in:
jenkins-bot 2016-11-10 06:00:17 +00:00 committed by Gerrit Code Review
commit 1dd2e07276
2 changed files with 10 additions and 15 deletions

View file

@ -188,7 +188,6 @@ class SpecialPageFactory {
private static $list;
private static $aliases;
private static $pageObjectCache = [];
/**
* Reset the internal list of special pages. Useful when changing $wgSpecialPages after
@ -197,7 +196,6 @@ class SpecialPageFactory {
public static function resetList() {
self::$list = null;
self::$aliases = null;
self::$pageObjectCache = [];
}
/**
@ -379,10 +377,6 @@ class SpecialPageFactory {
public static function getPage( $name ) {
list( $realName, /*...*/ ) = self::resolveAlias( $name );
if ( isset( self::$pageObjectCache[$realName] ) ) {
return self::$pageObjectCache[$realName];
}
$specialPageList = self::getPageList();
if ( isset( $specialPageList[$realName] ) ) {
@ -410,7 +404,6 @@ class SpecialPageFactory {
$page = null;
}
self::$pageObjectCache[$realName] = $page;
if ( $page instanceof SpecialPage ) {
return $page;
} else {

View file

@ -57,17 +57,19 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
$specialPageTestHelper = new SpecialPageTestHelper();
return [
'class name' => [ 'SpecialAllPages' ],
'class name' => [ 'SpecialAllPages', false ],
'closure' => [ function () {
return new SpecialAllPages();
} ],
'function' => [ [ $this, 'newSpecialAllPages' ] ],
'callback string' => [ 'SpecialPageTestHelper::newSpecialAllPages' ],
}, false ],
'function' => [ [ $this, 'newSpecialAllPages' ], false ],
'callback string' => [ 'SpecialPageTestHelper::newSpecialAllPages', false ],
'callback with object' => [
[ $specialPageTestHelper, 'newSpecialAllPages' ]
[ $specialPageTestHelper, 'newSpecialAllPages' ],
false
],
'callback array' => [
[ 'SpecialPageTestHelper', 'newSpecialAllPages' ]
[ 'SpecialPageTestHelper', 'newSpecialAllPages' ],
false
]
];
}
@ -76,7 +78,7 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
* @covers SpecialPageFactory::getPage
* @dataProvider specialPageProvider
*/
public function testGetPage( $spec ) {
public function testGetPage( $spec, $shouldReuseInstance ) {
$this->mergeMwGlobalArrayValue( 'wgSpecialPages', [ 'testdummy' => $spec ] );
SpecialPageFactory::resetList();
@ -84,7 +86,7 @@ class SpecialPageFactoryTest extends MediaWikiTestCase {
$this->assertInstanceOf( 'SpecialPage', $page );
$page2 = SpecialPageFactory::getPage( 'testdummy' );
$this->assertEquals( true, $page2 === $page, "Should re-use instance:" );
$this->assertEquals( $shouldReuseInstance, $page2 === $page, "Should re-use instance:" );
}
/**