alias('parse_url'); } /** @return array */ public static function discoveryUrls(): array { return [ 'protected resource' => ['https://example.test/.well-known/oauth-protected-resource'], 'authorization server' => ['https://example.test/.well-known/oauth-authorization-server'], 'subdirectory install' => ['https://example.test/wp/.well-known/oauth-protected-resource'], ]; } /** @dataProvider discoveryUrls */ public function testDiscoveryDocumentsAreNeverRedirected(string $requested): void { self::assertFalse((new DiscoveryCanonical())->filter($requested . '/', $requested)); } public function testOtherRedirectsStayUntouched(): void { $filter = new DiscoveryCanonical(); $page = 'https://example.test/seite'; $acme = 'https://example.test/.well-known/acme-challenge/x'; self::assertSame($page . '/', $filter->filter($page . '/', $page)); self::assertSame($acme . '/', $filter->filter($acme . '/', $acme)); self::assertFalse($filter->filter(false, 'https://example.test/.well-known/oauth-authorization-server')); } }