From 0096266009223b569172a978a9083e80efd31754 Mon Sep 17 00:00:00 2001 From: Daniel Wehner Date: Fri, 26 Jun 2015 15:47:25 +0200 Subject: [PATCH] Add a way to reset the singleton --- .../HttpFoundation/File/MimeType/MimeTypeGuesser.php | 7 +++++++ .../Component/HttpFoundation/Tests/File/FileTest.php | 12 ++++++++++++ .../Tests/File/Fixtures/other-file.example | 0 3 files changed, 19 insertions(+) create mode 100644 src/Symfony/Component/HttpFoundation/Tests/File/Fixtures/other-file.example diff --git a/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php b/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php index 81b2b02bd4..4ae6487bad 100644 --- a/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php +++ b/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php @@ -67,6 +67,13 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface return self::$instance; } + /** + * Resets the singleton instance. + */ + public static function reset() { + self::$instance = null; + } + /** * Registers all natively provided mime type guessers. */ diff --git a/src/Symfony/Component/HttpFoundation/Tests/File/FileTest.php b/src/Symfony/Component/HttpFoundation/Tests/File/FileTest.php index 1f89c391d5..f325d003c6 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/File/FileTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/File/FileTest.php @@ -45,6 +45,18 @@ class FileTest extends \PHPUnit_Framework_TestCase $this->assertEquals('gif', $file->guessExtension()); } + public function testGuessExtensionWithReset() { + $file = new File(__DIR__.'/Fixtures/other-file.example'); + $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif'); + MimeTypeGuesser::getInstance()->register($guesser); + + $this->assertEquals('gif', $file->guessExtension()); + + MimeTypeGuesser::reset(); + + $this->assertNull($file->guessExtension()); + } + public function testConstructWhenFileNotExists() { $this->setExpectedException('Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException'); diff --git a/src/Symfony/Component/HttpFoundation/Tests/File/Fixtures/other-file.example b/src/Symfony/Component/HttpFoundation/Tests/File/Fixtures/other-file.example new file mode 100644 index 0000000000..e69de29bb2