From 1c200d76820860c3902a78c69e52d490c2f6f692 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Fri, 31 Mar 2017 17:58:43 -0700 Subject: [PATCH] resourceloader: Complete code coverage for MessageBlobStore Change-Id: I6269843ed51c67bf2d300eb58a613122ffdae740 --- includes/cache/MessageBlobStore.php | 2 + .../resourceloader/MessageBlobStoreTest.php | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/includes/cache/MessageBlobStore.php b/includes/cache/MessageBlobStore.php index 5d48c03dfc..14baeeb22b 100644 --- a/includes/cache/MessageBlobStore.php +++ b/includes/cache/MessageBlobStore.php @@ -238,6 +238,7 @@ class MessageBlobStore implements LoggerAwareInterface { } $json = FormatJson::encode( (object)$messages ); + // @codeCoverageIgnoreStart if ( $json === false ) { $this->logger->warning( 'Failed to encode message blob for {module} ({lang})', [ 'module' => $module->getName(), @@ -245,6 +246,7 @@ class MessageBlobStore implements LoggerAwareInterface { ] ); $json = '{}'; } + // codeCoverageIgnoreEnd return $json; } } diff --git a/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php b/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php index bf80845976..29e18633b4 100644 --- a/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php +++ b/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php @@ -44,6 +44,46 @@ class MessageBlobStoreTest extends PHPUnit_Framework_TestCase { return $module; } + /** @covers MessageBlobStore::setLogger */ + public function testSetLogger() { + $blobStore = $this->makeBlobStore(); + $this->assertSame( null, $blobStore->setLogger( new Psr\Log\NullLogger() ) ); + } + + /** @covers MessageBlobStore::getResourceLoader */ + public function testGetResourceLoader() { + // Call protected method + $blobStore = TestingAccessWrapper::newFromObject( $this->makeBlobStore() ); + $this->assertInstanceOf( + ResourceLoader::class, + $blobStore->getResourceLoader() + ); + } + + /** @covers MessageBlobStore::fetchMessage */ + public function testFetchMessage() { + $module = $this->makeModule( [ 'mainpage' ] ); + $rl = new ResourceLoader(); + $rl->register( $module->getName(), $module ); + + $blobStore = $this->makeBlobStore( null, $rl ); + $blob = $blobStore->getBlob( $module, 'en' ); + + $this->assertEquals( '{"mainpage":"Main Page"}', $blob, 'Generated blob' ); + } + + /** @covers MessageBlobStore::fetchMessage */ + public function testFetchMessageFail() { + $module = $this->makeModule( [ 'i-dont-exist' ] ); + $rl = new ResourceLoader(); + $rl->register( $module->getName(), $module ); + + $blobStore = $this->makeBlobStore( null, $rl ); + $blob = $blobStore->getBlob( $module, 'en' ); + + $this->assertEquals( '{"i-dont-exist":"\u29fci-dont-exist\u29fd"}', $blob, 'Generated blob' ); + } + public function testGetBlob() { $module = $this->makeModule( [ 'foo' ] ); $rl = new ResourceLoader(); -- 2.20.1