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

test(tags pages): configure breadcrumb verification

parent 3fb00a03
No related branches found
No related tags found
No related merge requests found
......@@ -22,48 +22,97 @@
namespace App\Tests\Functional\Tag;
use App\DataFixtures\AppTagFixtures;
use App\Tests\Functional\TestHelperBreadcrumbTrait;
use App\Tests\Functional\TestHelperTrait;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\HttpFoundation\Response;
/**
* @group gogogo
*/
class FunctionalTestPublicPageTagsTest extends WebTestCase
{
use TestHelperTrait;
use TestHelperBreadcrumbTrait;
public function testAllTagsPageIsDisplayed(): void
{
$locale = 'en';
$tagsTotal = AppTagFixtures::TAG_COUNT;
$client = static::createClient();
$crawler = $client->request('GET', "/en/tags/");
$crawler = $client->request('GET', "/$locale/tags/");
$this->assertRouteSame('app_tags_display_all');
$this->assertResponseStatusCodeSame(Response::HTTP_OK); // HTTP status code = 200
$this->assertSelectorTextSame('h1', 'Tags');
$this->assertPageTitleSame('Tags - Comptoir du Libre TEST');
$this->assertSelectorTextSame('#tags_count', "$tagsTotal tags");
$this->assertSelectorCount(5, 'a.tag_link');
// HTML content checks breadcrumb
$this->checkAttribute(
crawler: $crawler,
cssFilter: '#tag_base-de-donnees a.tag_link',
attributesExpected: [
'_name' => 'a',
'_text' => 'Base de données',
'href' => "/en/tag/3/base-de-donnees/"
'href' => "/$locale/tag/3/base-de-donnees/"
]
);
// HTML content checks breadcrumb
$breadcrumbLinks = [
"/$locale/tags/" => "Tags",
];
$this->checkHasValidBreadcrumb($crawler, $breadcrumbLinks, "$locale");
}
public function testAllTagsPageIsDisplayedForFrenchLocale(): void
{
$locale = 'fr';
$tagsTotal = AppTagFixtures::TAG_COUNT;
$client = static::createClient();
$crawler = $client->request('GET', "/$locale/tags/");
$this->assertRouteSame('app_tags_display_all');
$this->assertResponseStatusCodeSame(Response::HTTP_OK); // HTTP status code = 200
$this->assertSelectorTextSame('h1', 'Étiquettes');
$this->assertPageTitleSame('Étiquettes - Comptoir du Libre TEST');
// HTML content checks breadcrumb
$breadcrumbLinks = [
"/$locale/tags/" => "Étiquettes",
];
$this->checkHasValidBreadcrumb($crawler, $breadcrumbLinks, "$locale");
}
public function testOneTagPageIsDisplayed(): void
{
$locale = 'en';
$client = static::createClient();
$crawler = $client->request('GET', "/en/tag/3/base-de-donnees/");
$crawler = $client->request('GET', "/$locale/tag/3/base-de-donnees/");
$this->assertRouteSame('app_tags_display_one_tag');
$this->assertResponseStatusCodeSame(Response::HTTP_OK); // HTTP status code = 200
$this->assertSelectorTextSame('h1', 'Tag: Base de données');
$this->assertPageTitleSame('Tag: Base de données - Comptoir du Libre TEST');
// HTML content checks breadcrumb
$breadcrumbLinks = [
"/$locale/tags/" => "Tags",
"/$locale/tag/3/base-de-donnees/" => "Base de données",
];
$this->checkHasValidBreadcrumb($crawler, $breadcrumbLinks, "$locale");
}
public function testOneTagPageIsDisplayedForFrenchLocale(): void
{
$locale = 'fr';
$client = static::createClient();
$crawler = $client->request('GET', "/$locale/tag/3/base-de-donnees/");
$this->assertRouteSame('app_tags_display_one_tag');
$this->assertResponseStatusCodeSame(Response::HTTP_OK); // HTTP status code = 200
$this->assertSelectorTextSame('h1', 'Étiquette : Base de données');
$this->assertPageTitleSame('Étiquette : Base de données - Comptoir du Libre TEST');
// HTML content checks breadcrumb
$breadcrumbLinks = [
"/$locale/tags/" => "Étiquettes",
"/$locale/tag/3/base-de-donnees/" => "Base de données",
];
$this->checkHasValidBreadcrumb($crawler, $breadcrumbLinks, "$locale");
}
public function testOneTagPageWithBadSlugIsRedirectToValidUrl(): void
......
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