function ConfigExportTest::testAjaxOnExportPage

Same name and namespace in other branches
  1. 9 core/modules/config/tests/src/FunctionalJavascript/ConfigExportTest.php \Drupal\Tests\config\FunctionalJavascript\ConfigExportTest::testAjaxOnExportPage()
  2. 10 core/modules/config/tests/src/FunctionalJavascript/ConfigExportTest.php \Drupal\Tests\config\FunctionalJavascript\ConfigExportTest::testAjaxOnExportPage()

Tests Ajax form functionality on the config export page.

File

core/modules/config/tests/src/FunctionalJavascript/ConfigExportTest.php, line 65

Class

ConfigExportTest
Tests the config export form.

Namespace

Drupal\Tests\config\FunctionalJavascript

Code

public function testAjaxOnExportPage() : void {
  $this->drupalLogin($this->drupalCreateUser([
    'export configuration',
    'administer blocks',
  ]));
  $page = $this->getSession()
    ->getPage();
  // Check that the export is empty on load.
  $this->drupalGet('admin/config/development/configuration/single/export');
  $this->assertTrue($this->assertSession()
    ->optionExists('edit-config-name', '- Select -')
    ->isSelected());
  $this->assertSession()
    ->fieldValueEquals('export', '');
  // Check that the export is filled when selecting a config name.
  $page->selectFieldOption('config_name', 'system.site');
  $this->assertSession()
    ->assertWaitOnAjaxRequest();
  $this->assertSession()
    ->fieldValueNotEquals('export', '');
  // Check that the export is empty when selecting "- Select -" option in
  // the config name.
  $page->selectFieldOption('config_name', '- Select -');
  $this->assertSession()
    ->assertWaitOnAjaxRequest();
  $this->assertSession()
    ->fieldValueEquals('export', '');
  // Check that the export is emptied again when selecting a config type.
  $page->selectFieldOption('config_type', 'Action');
  $this->assertSession()
    ->assertWaitOnAjaxRequest();
  $this->assertSession()
    ->fieldValueEquals('export', '');
  // Check that the 'Configuration name' list is sorted alphabetically by ID,
  // which always begins with our prefix, and not the label, which is
  // randomized.
  $page->selectFieldOption('config_type', 'Block');
  $this->assertSession()
    ->assertWaitOnAjaxRequest();
  $options = $page->findField('config_name')
    ->findAll('css', 'option');
  foreach ([
    1,
    2,
    3,
    4,
  ] as $num) {
    $block_name = $this->blockNamePrefix . $num;
    $this->assertStringStartsWith($block_name, $options[$num]->getText());
    $this->assertEquals($block_name, $options[$num]->getValue());
  }
}

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