From f492a981bf40d65a505cd9f5fb0df2b1deb3793e Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Sat, 10 Feb 2018 00:03:19 -0800 Subject: [PATCH] Improve ExtensionRegistry test coverage Change-Id: I7f7445952f057995a3e3215145803affa5aceede --- includes/registration/ExtensionRegistry.php | 3 ++ .../registration/ExtensionRegistryTest.php | 50 ++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/includes/registration/ExtensionRegistry.php b/includes/registration/ExtensionRegistry.php index d14a5eeeb1..1876645399 100644 --- a/includes/registration/ExtensionRegistry.php +++ b/includes/registration/ExtensionRegistry.php @@ -82,6 +82,7 @@ class ExtensionRegistry { private static $instance; /** + * @codeCoverageIgnore * @return ExtensionRegistry */ public static function getInstance() { @@ -105,9 +106,11 @@ class ExtensionRegistry { } else { throw new Exception( "$path does not exist!" ); } + // @codeCoverageIgnoreStart if ( !$mtime ) { $err = error_get_last(); throw new Exception( "Couldn't stat $path: {$err['message']}" ); + // @codeCoverageIgnoreEnd } } $this->queued[$path] = $mtime; diff --git a/tests/phpunit/includes/registration/ExtensionRegistryTest.php b/tests/phpunit/includes/registration/ExtensionRegistryTest.php index a6f69b64d9..67bc088d78 100644 --- a/tests/phpunit/includes/registration/ExtensionRegistryTest.php +++ b/tests/phpunit/includes/registration/ExtensionRegistryTest.php @@ -1,9 +1,57 @@ dataDir = __DIR__ . '/../../data/registration'; + } + + public function testQueue_invalid() { + $registry = new ExtensionRegistry(); + $path = __DIR__ . '/doesnotexist.json'; + $this->setExpectedException( + Exception::class, + "$path does not exist!" + ); + $registry->queue( $path ); + } + + public function testQueue() { + $registry = new ExtensionRegistry(); + $path = "{$this->dataDir}/good.json"; + $registry->queue( $path ); + $this->assertArrayHasKey( + $path, + $registry->getQueue() + ); + $registry->clearQueue(); + $this->assertEmpty( $registry->getQueue() ); + } + + public function testLoadFromQueue_empty() { + $registry = new ExtensionRegistry(); + $registry->loadFromQueue(); + $this->assertEmpty( $registry->getAllThings() ); + } + + public function testLoadFromQueue_late() { + $registry = new ExtensionRegistry(); + $registry->finish(); + $registry->queue( "{$this->dataDir}/good.json" ); + $this->setExpectedException( + MWException::class, + "The following paths tried to load late: {$this->dataDir}/good.json" + ); + $registry->loadFromQueue(); + } + /** - * @covers ExtensionRegistry::exportExtractedData * @dataProvider provideExportExtractedDataGlobals */ public function testExportExtractedDataGlobals( $desc, $before, $globals, $expected ) { -- 2.20.1