SearchEmbedFormTest.php in Drupal 9
File
core/modules/search/tests/src/Functional/SearchEmbedFormTest.php
View source
<?php
namespace Drupal\Tests\search\Functional;
use Drupal\Tests\BrowserTestBase;
class SearchEmbedFormTest extends BrowserTestBase {
protected static $modules = [
'node',
'search',
'search_embedded_form',
];
protected $defaultTheme = 'stark';
protected $node;
protected $submitCount = 0;
protected function setUp() : void {
parent::setUp();
$this
->drupalCreateContentType([
'type' => 'page',
'name' => 'Basic page',
]);
$test_user = $this
->drupalCreateUser([
'access content',
'search content',
'administer nodes',
]);
$this
->drupalLogin($test_user);
$this->node = $this
->drupalCreateNode();
$this->container
->get('plugin.manager.search')
->createInstance('node_search')
->updateIndex();
$this->submitCount = \Drupal::state()
->get('search_embedded_form.submit_count');
$this
->refreshVariables();
}
public function testEmbeddedForm() {
$this
->drupalGet('search_embedded_form');
$this
->submitForm([
'name' => 'John',
], 'Send away');
$this
->assertSession()
->pageTextContains('Test form was submitted');
$count = \Drupal::state()
->get('search_embedded_form.submit_count');
$this
->assertEquals($this->submitCount + 1, $count, 'Form submission count is correct');
$this->submitCount = $count;
$this
->drupalGet('search/node', [
'query' => [
'keys' => $this->node
->label(),
],
]);
$this
->assertSession()
->pageTextContains('Your name');
$this
->submitForm([
'name' => 'John',
], 'Send away');
$this
->assertSession()
->pageTextContains('Test form was submitted');
$count = \Drupal::state()
->get('search_embedded_form.submit_count');
$this
->assertEquals($this->submitCount + 1, $count, 'Form submission count is correct');
$this->submitCount = $count;
$this
->drupalGet('search');
$this
->submitForm([
'keys' => 'foo',
], 'Search');
$this
->assertSession()
->pageTextNotContains('Test form was submitted');
$count = \Drupal::state()
->get('search_embedded_form.submit_count');
$this
->assertEquals($this->submitCount, $count, 'Form submission count is correct');
$this->submitCount = $count;
}
}