google_tag-8.x-1.x-dev/tests/src/Kernel/Form/SettingsFormTest.php
tests/src/Kernel/Form/SettingsFormTest.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\SettingsForm
* @group google_tag
*/
final class SettingsFormTest 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('google_tag.settings_form')->toString();
$this->doRequest(Request::create($uri));
$form_data = [
'use_collection' => '1',
'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('input[name="op"]')[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);
$config = $this->config('google_tag.settings');
self::assertTrue($config->get('use_collection'));
}
}
