fix Config::get_self_url() invoked from plugin context, better deal with multiple trailing slashes in URL, update phpunit image path
This commit is contained in:
@@ -490,13 +490,9 @@ class Config {
|
|||||||
$proto = self::is_server_https() ? 'https' : 'http';
|
$proto = self::is_server_https() ? 'https' : 'http';
|
||||||
|
|
||||||
$self_url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
|
$self_url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
|
||||||
$self_url_path = preg_replace("/(\/api\/{1,})?(\w+\.php)?(\?.*$)?$/", "", $self_url_path);
|
$self_url_path = preg_replace("/(\/api\/{1,}|\/plugins(.local)?\/.{1,}\/{1,})?(\w+\.php)?(\?.*$)?$/", "", $self_url_path);
|
||||||
|
|
||||||
if (substr($self_url_path, -1) === "/") {
|
return rtrim($self_url_path, "/");
|
||||||
return substr($self_url_path, 0, -1);
|
|
||||||
} else {
|
|
||||||
return $self_url_path;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* sanity check stuff */
|
/* sanity check stuff */
|
||||||
|
|||||||
@@ -104,6 +104,18 @@ final class SelfUrlPathTest extends TestCase {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_self_url_i(): void {
|
||||||
|
$_SERVER = [];
|
||||||
|
|
||||||
|
$_SERVER["HTTP_HOST"] = "example.com";
|
||||||
|
$_SERVER["REQUEST_URI"] = "/tt-rss////plugins.local/example///api/long path/test.php";
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'http://example.com/tt-rss',
|
||||||
|
Config::get_self_url(true)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public function test_get_self_dir(): void {
|
public function test_get_self_dir(): void {
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
dirname(__DIR__), # we're in (app)/tests/
|
dirname(__DIR__), # we're in (app)/tests/
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
docker run --rm -v $(pwd):/app \
|
docker run --rm -v $(pwd):/app \
|
||||||
--workdir /app registry.fakecake.org/infra/php8.3-alpine:3.19 \
|
--workdir /app registry.fakecake.org/infra/php-fpm8.3-alpine3.19:latest \
|
||||||
php83 -d memory_limit=-1 ./vendor/bin/phpunit --exclude integration
|
php83 -d memory_limit=-1 ./vendor/bin/phpunit --exclude integration
|
||||||
|
|||||||
Reference in New Issue
Block a user