function CToolsWizardTest::testWizardSteps

Same name and namespace in other branches
  1. 8.x-3.x tests/src/Functional/CToolsWizardTest.php \Drupal\Tests\ctools\Functional\CToolsWizardTest::testWizardSteps()

Test wizard Multistep form.

File

tests/src/Functional/CToolsWizardTest.php, line 26

Class

CToolsWizardTest
Tests basic wizard functionality.

Namespace

Drupal\Tests\ctools\Functional

Code

public function testWizardSteps() {
  $this->drupalGet('ctools/wizard');
  $this->assertSession()
    ->pageTextContains('Form One');
  $this->dumpHeaders = TRUE;
  // Check that $operations['one']['values'] worked.
  $this->assertSession()
    ->pageTextContains('Xylophone');
  // Submit first step in the wizard.
  $edit = [
    'one' => 'test',
  ];
  $this->drupalGet('ctools/wizard');
  $this->submitForm($edit, $this->t('Next'));
  // Redirected to the second step.
  $this->assertSession()
    ->pageTextContains('Form Two');
  $this->assertSession()
    ->pageTextContains('Dynamic value submitted: Xylophone');
  // Check that $operations['two']['values'] worked.
  $this->assertSession()
    ->pageTextContains('Zebra');
  // Hit previous to make sure our form value are preserved.
  $this->submitForm([], $this->t('Previous'));
  // Check the known form values.
  $this->assertSession()
    ->fieldValueEquals('one', 'test');
  $this->assertSession()
    ->pageTextContains('Xylophone');
  // Goto next step again and finish this wizard.
  $this->submitForm([], $this->t('Next'));
  $edit = [
    'two' => 'Second test',
  ];
  $this->submitForm($edit, $this->t('Finish'));
  // Check that the wizard finished properly.
  $this->assertSession()
    ->pageTextContains('Value One: test');
  $this->assertSession()
    ->pageTextContains('Value Two: Second test');
}