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(); search_update_totals(); // Set up a dummy initial count of times the form has been submitted. $this->submitCount = \Drupal::state()->get('search_embedded_form.submit_count'); $this->refreshVariables(); } /** * Tests that the embedded form appears and can be submitted. */ public function testEmbeddedForm() { // First verify we can submit the form from the module's page. $this->drupalPostForm('search_embedded_form', ['name' => 'John'], t('Send away')); $this->assertText(t('Test form was submitted'), 'Form message appears'); $count = \Drupal::state()->get('search_embedded_form.submit_count'); $this->assertEqual($this->submitCount + 1, $count, 'Form submission count is correct'); $this->submitCount = $count; // Now verify that we can see and submit the form from the search results. $this->drupalGet('search/node', ['query' => ['keys' => $this->node->label()]]); $this->assertText(t('Your name'), 'Form is visible'); $this->drupalPostForm(NULL, ['name' => 'John'], t('Send away')); $this->assertText(t('Test form was submitted'), 'Form message appears'); $count = \Drupal::state()->get('search_embedded_form.submit_count'); $this->assertEqual($this->submitCount + 1, $count, 'Form submission count is correct'); $this->submitCount = $count; // Now verify that if we submit the search form, it doesn't count as // our form being submitted. $this->drupalPostForm('search', ['keys' => 'foo'], t('Search')); $this->assertNoText(t('Test form was submitted'), 'Form message does not appear'); $count = \Drupal::state()->get('search_embedded_form.submit_count'); $this->assertEqual($this->submitCount, $count, 'Form submission count is correct'); $this->submitCount = $count; } }