Cleanup code and extra files

This commit is contained in:
DariusIII
2026-08-13 14:24:02 +02:00
parent aedfcf8737
commit 9af6ba1df5
7 changed files with 60 additions and 169 deletions
@@ -5,7 +5,9 @@ declare(strict_types=1);
namespace Tests\Feature;
use Illuminate\Auth\GenericUser;
use Illuminate\Auth\Middleware\EnsureEmailIsVerified;
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Cache;
use PDO;
use Tests\TestCase;
@@ -101,6 +103,13 @@ class AuthRedirectMiddlewareTest extends TestCase
->assertRedirect('/');
}
public function test_is_verified_alias_uses_laravels_email_verification_middleware(): void
{
$middlewareAliases = app(Router::class)->getMiddleware();
$this->assertSame(EnsureEmailIsVerified::class, $middlewareAliases['isVerified'] ?? null);
}
private function setEnvironmentValue(string $key, ?string $value): void
{
if ($value === null) {
+49
View File
@@ -4,8 +4,12 @@ namespace Tests\Unit;
use App\Http\Controllers\BasePageController;
use App\Http\Controllers\SearchController;
use Illuminate\Container\Container;
use Illuminate\Contracts\Routing\UrlGenerator as UrlGeneratorContract;
use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull;
use Illuminate\Http\Request;
use Illuminate\Routing\RouteCollection;
use Illuminate\Routing\UrlGenerator;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
use Symfony\Component\HttpFoundation\Response;
@@ -71,6 +75,46 @@ class UserViewRequestInputTest extends TestCase
$this->assertSame([-1], $method->invoke($controller, Request::create('/search', 'GET', ['searchadvcat' => ''])));
}
public function test_local_return_url_accepts_local_targets_and_rejects_external_urls(): void
{
$originalContainer = Container::getInstance();
$container = new Container;
$container->instance(
UrlGeneratorContract::class,
new UrlGenerator(new RouteCollection, Request::create('https://nntmux.test')),
);
Container::setInstance($container);
try {
$controller = $this->controller();
$this->assertSame(
'https://nntmux.test/mymovies',
$controller->returnUrl(Request::create('https://nntmux.test/mymovies'), '/mymovies'),
);
$this->assertSame(
'https://nntmux.test/browse',
$controller->returnUrl(Request::create('https://nntmux.test/mymovies', 'GET', ['from' => '/browse']), '/mymovies'),
);
$this->assertSame(
'https://nntmux.test/browse?view=covers',
$controller->returnUrl(
Request::create('https://nntmux.test/mymovies', 'GET', ['from' => 'https://nntmux.test/browse?view=covers']),
'/mymovies',
),
);
$this->assertSame(
'https://nntmux.test/mymovies',
$controller->returnUrl(
Request::create('https://nntmux.test/mymovies', 'GET', ['from' => 'https://external.example/browse']),
'/mymovies',
),
);
} finally {
Container::setInstance($originalContainer);
}
}
private function controller(): object
{
return new class extends BasePageController
@@ -112,6 +156,11 @@ class UserViewRequestInputTest extends TestCase
{
return $this->paginationOffset($page, $perPage);
}
public function returnUrl(Request $request, string $fallback): string
{
return $this->localReturnUrl($request, $fallback);
}
};
}
}