+ public function test_public_folder_contents_accessible_via_route()
+ {
+ $this->usingThemeFolder(function (string $themeFolderName) {
+ $publicDir = theme_path('public');
+ mkdir($publicDir, 0777, true);
+
+ $text = 'some-text ' . md5(random_bytes(5));
+ $css = "body { background-color: tomato !important; }";
+ file_put_contents("{$publicDir}/file.txt", $text);
+ file_put_contents("{$publicDir}/file.css", $css);
+ copy($this->files->testFilePath('test-image.png'), "{$publicDir}/image.png");
+
+ $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/file.txt");
+ $resp->assertStreamedContent($text);
+ $resp->assertHeader('Content-Type', 'text/plain; charset=UTF-8');
+ $resp->assertHeader('Cache-Control', 'max-age=86400, private');
+
+ $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/image.png");
+ $resp->assertHeader('Content-Type', 'image/png');
+ $resp->assertHeader('Cache-Control', 'max-age=86400, private');
+
+ $resp = $this->asAdmin()->get("/theme/{$themeFolderName}/file.css");
+ $resp->assertStreamedContent($css);
+ $resp->assertHeader('Content-Type', 'text/css; charset=UTF-8');
+ $resp->assertHeader('Cache-Control', 'max-age=86400, private');
+ });
+ }
+