function ConditionFormTest::testConfigForm

Same name in other branches
  1. 8.9.x core/modules/system/tests/src/Functional/Condition/ConditionFormTest.php \Drupal\Tests\system\Functional\Condition\ConditionFormTest::testConfigForm()
  2. 10 core/modules/system/tests/src/Functional/Condition/ConditionFormTest.php \Drupal\Tests\system\Functional\Condition\ConditionFormTest::testConfigForm()
  3. 11.x core/modules/system/tests/src/Functional/Condition/ConditionFormTest.php \Drupal\Tests\system\Functional\Condition\ConditionFormTest::testConfigForm()

Submit the condition_node_type_test_form to test condition forms.

File

core/modules/system/tests/src/Functional/Condition/ConditionFormTest.php, line 29

Class

ConditionFormTest
Tests that condition plugins basic form handling is working.

Namespace

Drupal\Tests\system\Functional\Condition

Code

public function testConfigForm() {
    $this->drupalCreateContentType([
        'type' => 'page',
        'name' => 'Page',
    ]);
    $this->drupalCreateContentType([
        'type' => 'article',
        'name' => 'Article',
    ]);
    $article = Node::create([
        'type' => 'article',
        'title' => $this->randomMachineName(),
    ]);
    $article->save();
    $this->drupalGet('condition_test');
    $this->assertSession()
        ->fieldExists('entity_bundle[bundles][article]');
    $this->assertSession()
        ->fieldExists('entity_bundle[bundles][page]');
    $this->submitForm([
        'entity_bundle[bundles][page]' => 'page',
        'entity_bundle[bundles][article]' => 'article',
    ], 'Submit');
    // @see \Drupal\condition_test\FormController::submitForm()
    $this->assertSession()
        ->pageTextContains('Bundle: page');
    $this->assertSession()
        ->pageTextContains('Bundle: article');
    $this->assertSession()
        ->pageTextContains('Executed successfully.');
    $this->assertSession()
        ->pageTextContains('The current theme is stark');
    
    /** @var \Drupal\Core\Extension\ThemeInstallerInterface $theme_installer */
    $theme_installer = $this->container
        ->get('theme_installer');
    $theme_installer->install([
        'olivero',
    ]);
    $this->drupalGet('condition_test');
    $this->submitForm([
        'current_theme[theme]' => 'olivero',
        'current_theme[negate]' => TRUE,
    ], 'Submit');
    $this->assertSession()
        ->pageTextContains('The current theme is not olivero');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.