google_tag-8.x-1.x-dev/tests/src/Kernel/Form/TagContainerFormTest.php
tests/src/Kernel/Form/TagContainerFormTest.php
<?php declare(strict_types=1); namespace Drupal\Tests\google_tag\Kernel\Form; use Drupal\Core\Url; use Drupal\Tests\google_tag\Kernel\GoogleTagTestCase; use Drupal\Tests\user\Traits\UserCreationTrait; use Symfony\Component\HttpFoundation\Request; /** * @coversDefaultClass \Drupal\google_tag\Form\TagContainerForm * @group google_tag */ final class TagContainerFormTest extends GoogleTagTestCase { use UserCreationTrait; /** * Tests the form. */ public function testForm(): void { $user = $this->createUser(['administer google_tag_container']); $this->container->get('current_user')->setAccount($user); $uri = Url::fromRoute('entity.google_tag_container.single_form')->toString(); $response = $this->doRequest(Request::create($uri)); self::assertEquals(200, $response->getStatusCode()); $form_data = [ 'accounts' => [ ['value' => 'GT-XXXXXX', 'weight' => 0], ['value' => 'UA-XXXXXX', 'weight' => 1], ['value' => 'GTM-XX3XXX', 'weight' => 1], ], 'status' => TRUE, 'form_build_id' => (string) $this->cssSelect('input[name="form_build_id"]')[0]->attributes()->value[0], 'form_token' => (string) $this->cssSelect('input[name="form_token"]')[0]->attributes()->value[0], 'form_id' => (string) $this->cssSelect('input[name="form_id"]')[0]->attributes()->value[0], 'op' => (string) $this->cssSelect('#edit-submit')[0]->attributes()->value[0], ]; $request = Request::create($uri, 'POST', $form_data); $response = $this->doRequest($request); self::assertEquals(303, $response->getStatusCode()); $request = Request::create($response->headers->get('Location')); $this->doRequest($request); self::assertStringContainsString( 'The configuration options have been saved.', $this->getRawContent() ); $config = $this->config('google_tag.settings'); self::assertNotEmpty($config->get('default_google_tag_entity')); $google_tag_id = $config->get('default_google_tag_entity'); /** @var \Drupal\google_tag\Entity\TagContainer $google_tag */ $google_tag = $this->container->get('entity_type.manager')->getStorage('google_tag_container')->load($google_tag_id); self::assertEmpty($google_tag->get('conditions')); self::assertTrue($google_tag->status()); } }