function ConfigImportUIAjaxTest::testImport
Same name in other branches
- 10 core/modules/config/tests/src/FunctionalJavascript/ConfigImportUIAjaxTest.php \Drupal\Tests\config\FunctionalJavascript\ConfigImportUIAjaxTest::testImport()
Tests an updated configuration object can be viewed more than once.
File
-
core/
modules/ config/ tests/ src/ FunctionalJavascript/ ConfigImportUIAjaxTest.php, line 31
Class
- ConfigImportUIAjaxTest
- Tests the user interface for importing configuration.
Namespace
Drupal\Tests\config\FunctionalJavascriptCode
public function testImport() : void {
$name = 'system.site';
$assert_session = $this->assertSession();
$page = $this->getSession()
->getPage();
$user = $this->drupalCreateUser([
'synchronize configuration',
]);
$this->drupalLogin($user);
$this->copyConfig($this->container
->get('config.storage'), $this->container
->get('config.storage.sync'));
// Create updated configuration object.
$new_site_name = 'Config import test ' . $this->randomString();
$sync = $this->container
->get('config.storage.sync');
// Create updated configuration object.
$config_data = $this->config('system.site')
->get();
$config_data['name'] = $new_site_name;
$sync->write('system.site', $config_data);
$this->assertTrue($sync->exists($name), $name . ' found.');
// Verify that system.site appears as ready to import.
$this->drupalGet('admin/config/development/configuration');
$this->assertSession()
->responseContains('<td>' . $name);
$this->assertSession()
->buttonExists('Import all');
// Click the dropbutton to show the differences in a modal and close it.
$page->find('css', '.dropbutton-action')
->click();
$assert_session->waitForElementVisible('css', '.ui-dialog');
$assert_session->assertVisibleInViewport('css', '.ui-dialog .ui-dialog-content');
$page->pressButton('Close');
$assert_session->assertNoElementAfterWait('css', '.ui-dialog');
// Do this again to make sure no JavaScript errors occur on revisits.
$page->find('css', '.dropbutton-action')
->click();
$assert_session->waitForElementVisible('css', '.ui-dialog');
$assert_session->assertVisibleInViewport('css', '.ui-dialog .ui-dialog-content');
$page->pressButton('Close');
$assert_session->assertNoElementAfterWait('css', '.ui-dialog');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.