Files
frankenphp/caddy/module_test.go
Alexander Stecher a19fcdb38d fix: forwards php_server root to try_files (#1729)
* Adds 'root' to try_files.

* Formatting.

* Fixes test with wrong assumption.

* Adds more test cases.

* Prevents conflicts with other tests.
2025-07-16 11:58:36 +02:00

53 lines
1.7 KiB
Go

package caddy_test
import (
"net/http"
"os"
"strconv"
"testing"
"github.com/caddyserver/caddy/v2/caddytest"
)
func TestRootBehavesTheSameOutsideAndInsidePhpServer(t *testing.T) {
tester := caddytest.NewTester(t)
testPortNum, _ := strconv.Atoi(testPort)
testPortTwo := strconv.Itoa(testPortNum + 1)
expectedFileResponse, _ := os.ReadFile("../testdata/files/static.txt")
hostWithRootOutside := "http://localhost:" + testPort
hostWithRootInside := "http://localhost:" + testPortTwo
tester.InitServer(`
{
skip_install_trust
admin localhost:2999
}
`+hostWithRootOutside+` {
root ../testdata
php_server
}
`+hostWithRootInside+` {
php_server {
root ../testdata
}
}
`, "caddyfile")
// serve a static file
tester.AssertGetResponse(hostWithRootOutside+"/files/static.txt", http.StatusOK, string(expectedFileResponse))
tester.AssertGetResponse(hostWithRootInside+"/files/static.txt", http.StatusOK, string(expectedFileResponse))
// serve a php file
tester.AssertGetResponse(hostWithRootOutside+"/hello.php", http.StatusOK, "Hello from PHP")
tester.AssertGetResponse(hostWithRootInside+"/hello.php", http.StatusOK, "Hello from PHP")
// fallback to index.php
tester.AssertGetResponse(hostWithRootOutside+"/some-path", http.StatusOK, "I am by birth a Genevese (i not set)")
tester.AssertGetResponse(hostWithRootInside+"/some-path", http.StatusOK, "I am by birth a Genevese (i not set)")
// fallback to directory index ('dirIndex' in module.go)
tester.AssertGetResponse(hostWithRootOutside+"/dirindex/", http.StatusOK, "Hello from directory index.php")
tester.AssertGetResponse(hostWithRootInside+"/dirindex/", http.StatusOK, "Hello from directory index.php")
}