Skip to content
Snippets Groups Projects
Commit bd3dcc31 authored by Fabrice Gangler's avatar Fabrice Gangler :art:
Browse files

test(organisation): allow URL wihtout slug or with not valid slug

- One organization page without slug redirect to valid url
- One organization page with bad slug redirect to valid url
parent 9e312f0f
No related branches found
No related tags found
No related merge requests found
......@@ -66,6 +66,29 @@ public function displayOneOrganizationPageAllowToChangeLocaleInUrl(
}
#[Route(
path: [
'en' => '/{_locale}/organization/{id}/',
'fr' => '/{_locale}/organisation/{id}/',
],
name: 'app_anonymous_organization_display_one_organization_without_slug',
methods: ['GET', 'HEAD']
)]
public function oneOrganizatioUrlWithoutSlugRedirectToValidUrl(
string $_locale,
Organization $organization,
): RedirectResponse {
$newUrl = $this->generateUrl('app_anonymous_organization_display_one_organization', [
'_locale' => $_locale,
'id' => $organization->getId(),
'slug' => $organization->getSlug(),
]);
return new RedirectResponse(
url: $newUrl,
status: Response::HTTP_PERMANENTLY_REDIRECT // 308 Permanent Redirect
);
}
#[Route(
path: [
'en' => '/{_locale}/organization/{id}/{slug}/',
......
......@@ -27,6 +27,7 @@
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
/**
* @group allow_mutation_testing_by_infection
* @group gogogo
*/
class FunctionalTestOrganizationPagesTest extends WebTestCase
......@@ -94,4 +95,48 @@ public function testOneOrganizationPageAllowToChangeLocaleInUrl(): void
expectedNewRoute: 'app_anonymous_organization_display_one_organization',
);
}
public function testOneOrganizationPageWithoutSlugRedirectToValidUrl(): void
{
$organizationId = AppOrganizationFixtures::ORGANIZATIONS[3]['id'];
$organizationSlug = AppOrganizationFixtures::ORGANIZATIONS[$organizationId]['slug'];
$client = static::createClient();
$this->checkRedirectionToNewUrl(
client: $client,
currentUrl: "/en/organization/$organizationId/",
expectedNewUrl: "/en/organization/$organizationId/$organizationSlug/",
expectedCurrentRoute: 'app_anonymous_organization_display_one_organization_without_slug',
expectedNewRoute: 'app_anonymous_organization_display_one_organization',
);
$this->checkRedirectionToNewUrl(
client: $client,
currentUrl: "/fr/organisation/$organizationId/",
expectedNewUrl: "/fr/organisation/$organizationId/$organizationSlug/",
expectedCurrentRoute: 'app_anonymous_organization_display_one_organization_without_slug',
expectedNewRoute: 'app_anonymous_organization_display_one_organization',
);
}
public function testOneOrganizationPageWithBadSlugRedirectToValidUrl(): void
{
$organizationId = AppOrganizationFixtures::ORGANIZATIONS[3]['id'];
$organizationSlug = AppOrganizationFixtures::ORGANIZATIONS[$organizationId]['slug'];
$client = static::createClient();
$this->checkRedirectionToNewUrl(
client: $client,
currentUrl: "/en/organization/$organizationId/not-valid-slug/",
expectedNewUrl: "/en/organization/$organizationId/$organizationSlug/",
expectedCurrentRoute: 'app_anonymous_organization_display_one_organization',
expectedNewRoute: 'app_anonymous_organization_display_one_organization',
);
$this->checkRedirectionToNewUrl(
client: $client,
currentUrl: "/fr/organisation/$organizationId/not-valid-slug/",
expectedNewUrl: "/fr/organisation/$organizationId/$organizationSlug/",
expectedCurrentRoute: 'app_anonymous_organization_display_one_organization',
expectedNewRoute: 'app_anonymous_organization_display_one_organization',
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment