private function setCacheConfig( $arr = [] ) {
$defaults = [
- CACHE_NONE => [ 'class' => 'EmptyBagOStuff' ],
- CACHE_DB => [ 'class' => 'SqlBagOStuff' ],
+ CACHE_NONE => [ 'class' => EmptyBagOStuff::class ],
+ CACHE_DB => [ 'class' => SqlBagOStuff::class ],
CACHE_ANYTHING => [ 'factory' => 'ObjectCache::newAnything' ],
// Mock ACCEL with 'hash' as being installed.
// This makes tests deterministic regardless of APC.
- CACHE_ACCEL => [ 'class' => 'HashBagOStuff' ],
- 'hash' => [ 'class' => 'HashBagOStuff' ],
+ CACHE_ACCEL => [ 'class' => HashBagOStuff::class ],
+ 'hash' => [ 'class' => HashBagOStuff::class ],
];
$this->setMwGlobals( 'wgObjectCaches', $arr + $defaults );
}
}
/** @covers ObjectCache::newAnything */
- public function txestNewAnythingNoAccel() {
+ public function testNewAnythingNoAccel() {
$this->setMwGlobals( [
'wgMainCacheType' => CACHE_ACCEL
] );
$this->setCacheConfig( [
// Mock APC not being installed (T160519, T147161)
- CACHE_ACCEL => [ 'class' => 'EmptyBagOStuff' ]
+ CACHE_ACCEL => [ 'class' => EmptyBagOStuff::class ]
] );
$this->assertInstanceOf(
'Fallback to DB if available types fall back to Empty'
);
}
+
+ /** @covers ObjectCache::newAnything */
+ public function testNewAnythingNoAccelNoDb() {
+ $this->overrideMwServices(); // Ensures restore on tear down
+ MediaWiki\MediaWikiServices::disableStorageBackend();
+
+ $this->setMwGlobals( [
+ 'wgMainCacheType' => CACHE_ACCEL
+ ] );
+
+ $this->setCacheConfig( [
+ // Mock APC not being installed (T160519, T147161)
+ CACHE_ACCEL => [ 'class' => EmptyBagOStuff::class ]
+ ] );
+
+ $this->assertInstanceOf(
+ EmptyBagOStuff::class,
+ ObjectCache::newAnything( [] ),
+ 'Fallback to none if available types and DB are unavailable'
+ );
+ }
+
+ /** @covers ObjectCache::newAnything */
+ public function testNewAnythingNothingNoDb() {
+ $this->overrideMwServices();
+ MediaWiki\MediaWikiServices::disableStorageBackend();
+
+ $this->assertInstanceOf(
+ EmptyBagOStuff::class,
+ ObjectCache::newAnything( [] ),
+ 'No available types or DB. Fallback to none.'
+ );
+ }
}