TransformedConfigExportImportUITest.php in Drupal 10
File
core/modules/config/tests/src/Functional/TransformedConfigExportImportUITest.php
View source
<?php
namespace Drupal\Tests\config\Functional;
use Drupal\Tests\BrowserTestBase;
class TransformedConfigExportImportUITest extends BrowserTestBase {
protected static $modules = [
'config',
'config_transformer_test',
];
protected $defaultTheme = 'stark';
protected function setUp() : void {
parent::setUp();
$permissions = [
'export configuration',
'import configuration',
'synchronize configuration',
];
$this
->drupalLogin($this
->drupalCreateUser($permissions));
$this
->copyConfig($this->container
->get('config.storage'), $this->container
->get('config.storage.sync'));
}
public function testTransformedExportImport() {
$this
->drupalGet('admin/config/development/configuration');
$this
->assertSession()
->pageTextNotContains('Warning message');
$this
->assertSession()
->pageTextNotContains('There are no configuration changes to import.');
$this
->drupalGet('admin/config/development/configuration/sync/diff/system.site');
$this
->assertSession()
->pageTextContains('name: Drupal');
$this
->assertSession()
->pageTextContains("name: 'Drupal Arrr'");
$originalSlogan = $this
->config('system.site')
->get('slogan');
$this
->assertEmpty($originalSlogan);
$newSlogan = $this
->randomMachineName(16);
$this
->assertNotEquals($originalSlogan, $newSlogan);
$this
->config('system.site')
->set('slogan', $newSlogan)
->save();
$this
->assertEquals($newSlogan, $this
->config('system.site')
->get('slogan'));
$this
->drupalGet('admin/config/development/configuration/sync/diff/system.site');
$this
->assertSession()
->pageTextContains("slogan: ''");
$this
->assertSession()
->pageTextContains("slogan: {$newSlogan}");
$this
->drupalGet('admin/config/development/configuration/full/export');
$this
->submitForm([], 'Export');
$tarball = $this
->getSession()
->getPage()
->getContent();
$filename = 'temporary://' . $this
->randomMachineName();
file_put_contents($filename, $tarball);
$this
->drupalGet('admin/config/development/configuration/full/import');
$this
->submitForm([
'files[import_tarball]' => $filename,
], 'Upload');
$this
->drupalGet('admin/config/development/configuration/sync/diff/system.site');
$this
->assertSession()
->pageTextContains("name: 'Drupal Arrr'");
$this
->assertSession()
->pageTextContains("slogan: '{$originalSlogan} Arrr'");
$this
->assertEquals('Drupal', $this
->config('system.site')
->get('name'));
$this
->assertEquals($newSlogan, $this
->config('system.site')
->get('slogan'));
$this
->drupalGet('admin/config/development/configuration');
$this
->submitForm([], 'Import all');
$this
->assertEquals('Drupal Arrr', $this
->config('system.site')
->get('name'));
$this
->assertEquals($originalSlogan . " Arrr", $this
->config('system.site')
->get('slogan'));
$this
->drupalGet('admin/config/development/configuration/sync/diff/system.site');
$this
->assertSession()
->pageTextContains("name: 'Drupal Arrr Arrr'");
}
}