function ConfigImportUITest::testEnumViaConfigImporter

Same name and namespace in other branches
  1. 11.x core/modules/config/tests/src/Functional/ConfigImportUITest.php \Drupal\Tests\config\Functional\ConfigImportUITest::testEnumViaConfigImporter()

Tests importing an enum.

File

core/modules/config/tests/src/Functional/ConfigImportUITest.php, line 563

Class

ConfigImportUITest
Tests the user interface for importing configuration.

Namespace

Drupal\Tests\config\Functional

Code

public function testEnumViaConfigImporter() : void {
  $config_name = 'config_enum_test.settings';
  $assert_session = $this->assertSession();
  $sync = \Drupal::service('config.storage.sync');
  $config_data = $this->config($config_name)
    ->get();
  $config_data['foo'] = EnumValue::No;
  $sync->write($config_name, $config_data);
  $core_extension = $this->config('core.extension')
    ->get();
  $core_extension['module']['config_enum_test'] = 0;
  $core_extension['module'] = \Drupal::service(ModuleWeight::class)->sort($core_extension['module']);
  $sync->write('core.extension', $core_extension);
  $this->drupalGet('admin/config/development/configuration/sync/diff/' . $config_name);
  $assert_session->responseNotContains(' ');
  $assert_session->titleEquals("View changes of {$config_name} | Drupal");
  $assert_session->elementsCount('xpath', '//table[contains(@class, "diff")]', 1);
  $assert_session->pageTextContains("foo: !php/enum Drupal\\config_enum_test\\EnumValue::No");
  $this->drupalGet('admin/config/development/configuration');
  $assert_session->responseContains('<td>config_enum_test.settings');
  $assert_session->pageTextNotContains('The staged configuration is identical to the active configuration.');
  $this->submitForm([], 'Import all');
  $assert_session->responseNotContains('<td>config_enum_test.settings');
  $assert_session->pageTextContains('The staged configuration is identical to the active configuration.');
  // Ensure the value returned from config is an enum.
  $this->assertSame(EnumValue::No, $this->config('config_enum_test.settings')
    ->get('foo'));
}

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