use MediaWikiCoversValidator;
use PHPUnit4And6Compat;
+ const NAME = 'test.blobstore';
+
protected function setUp() {
parent::setUp();
// MediaWiki's test wrapper sets $wgMainWANCache to CACHE_NONE.
}
public function testBlobCreation() {
- $module = $this->makeModule( [ 'mainpage' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
+ $rl->register( self::NAME, [
+ 'factory' => function () {
+ return $this->makeModule( [ 'mainpage' ] );
+ }
+ ] );
$blobStore = $this->makeBlobStore( null, $rl );
- $blob = $blobStore->getBlob( $module, 'en' );
+ $blob = $blobStore->getBlob( $rl->getModule( self::NAME ), 'en' );
$this->assertEquals( '{"mainpage":"Main Page"}', $blob, 'Generated blob' );
}
public function testBlobCreation_empty() {
$module = $this->makeModule( [] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
$blobStore = $this->makeBlobStore( null, $rl );
$blob = $blobStore->getBlob( $module, 'en' );
public function testBlobCreation_unknownMessage() {
$module = $this->makeModule( [ 'i-dont-exist', 'mainpage', 'i-dont-exist2' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
$blobStore = $this->makeBlobStore( null, $rl );
// Generating a blob should continue without errors,
}
public function testMessageCachingAndPurging() {
- $module = $this->makeModule( [ 'example' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
+ // Register it so that MessageBlobStore::updateMessage can
+ // discover it from the registry as a module that uses this message.
+ $rl->register( self::NAME, [
+ 'factory' => function () {
+ return $this->makeModule( [ 'example' ] );
+ }
+ ] );
+ $module = $rl->getModule( self::NAME );
$blobStore = $this->makeBlobStore( [ 'fetchMessage' ], $rl );
// Advance this new WANObjectCache instance to a normal state,
public function testPurgeEverything() {
$module = $this->makeModule( [ 'example' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
$blobStore = $this->makeBlobStore( [ 'fetchMessage' ], $rl );
// Advance this new WANObjectCache instance to a normal state.
$blobStore->getBlob( $module, 'en' );
public function testValidateAgainstModuleRegistry() {
// Arrange version 1 of a module
$module = $this->makeModule( [ 'foo' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
$blobStore = $this->makeBlobStore( [ 'fetchMessage' ], $rl );
$blobStore->expects( $this->once() )
->method( 'fetchMessage' )
// must always match the set of message keys required by the module.
// We do not receive purges for this because no messages were changed.
$module = $this->makeModule( [ 'foo', 'bar' ] );
- $rl = new ResourceLoader();
- $rl->register( $module->getName(), $module );
+ $rl = new EmptyResourceLoader();
$blobStore = $this->makeBlobStore( [ 'fetchMessage' ], $rl );
$blobStore->expects( $this->exactly( 2 ) )
->method( 'fetchMessage' )
private function makeModule( array $messages ) {
$module = new ResourceLoaderTestModule( [ 'messages' => $messages ] );
- $module->setName( 'test.blobstore' );
+ $module->setName( self::NAME );
return $module;
}
}