Merge "Revert "Don't construct SpecialPages twice""
This commit is contained in:
commit
1dd2e07276
2 changed files with 10 additions and 15 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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:" );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue