diff --git a/tests/Foundation/FoundationApplicationBuilderTest.php b/tests/Foundation/FoundationApplicationBuilderTest.php index fa69d0692ead..7d73be6d8fc6 100644 --- a/tests/Foundation/FoundationApplicationBuilderTest.php +++ b/tests/Foundation/FoundationApplicationBuilderTest.php @@ -14,6 +14,8 @@ protected function tearDown(): void unset($_ENV['APP_BASE_PATH']); + unset($_ENV['LARAVEL_STORAGE_PATH'], $_SERVER['LARAVEL_STORAGE_PATH']); + parent::tearDown(); } @@ -41,4 +43,48 @@ public function testBaseDirectoryWithComposer() $this->assertSame(dirname(__DIR__, 2), $app->basePath()); } + + public function testStoragePathWithGlobalEnvVariable() + { + $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; + + $app = Application::configure()->create(); + + $this->assertSame(__DIR__.'/env-storage', $app->storagePath()); + } + + public function testStoragePathWithGlobalServerVariable() + { + $_SERVER['LARAVEL_STORAGE_PATH'] = __DIR__.'/server-storage'; + + $app = Application::configure()->create(); + + $this->assertSame(__DIR__.'/server-storage', $app->storagePath()); + } + + public function testStoragePathPrefersEnvVariable() + { + $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; + $_SERVER['LARAVEL_STORAGE_PATH'] = __DIR__.'/server-storage'; + + $app = Application::configure()->create(); + + $this->assertSame(__DIR__.'/env-storage', $app->storagePath()); + } + + public function testStoragePathBasedOnBasePath() + { + $app = Application::configure()->create(); + $this->assertSame($app->basePath().DIRECTORY_SEPARATOR.'storage', $app->storagePath()); + } + + public function testStoragePathCanBeCustomized() + { + $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; + + $app = Application::configure()->create(); + $app->useStoragePath(__DIR__.'/custom-storage'); + + $this->assertSame(__DIR__.'/custom-storage', $app->storagePath()); + } }