3 namespace Drupal\Tests\language\Functional;
5 use Drupal\Tests\SchemaCheckTestTrait;
6 use Drupal\Tests\BrowserTestBase;
9 * Ensures the language config schema is correct.
13 class LanguageConfigSchemaTest extends BrowserTestBase {
15 use SchemaCheckTestTrait;
22 public static $modules = ['language', 'menu_link_content'];
25 * A user with administrative permissions.
27 * @var \Drupal\user\UserInterface
34 protected function setUp() {
38 $this->adminUser = $this->drupalCreateUser(['administer languages']);
39 $this->drupalLogin($this->adminUser);
43 * Tests whether the language config schema is valid.
45 public function testValidLanguageConfigSchema() {
46 // Make sure no language configuration available by default.
47 $config_data = $this->config('language.settings')->get();
48 $this->assertTrue(empty($config_data));
50 $settings_path = 'admin/config/regional/content-language';
52 // Enable translation for menu link.
53 $edit['entity_types[menu_link_content]'] = TRUE;
54 $edit['settings[menu_link_content][menu_link_content][settings][language][language_alterable]'] = TRUE;
56 // Enable translation for user.
57 $edit['entity_types[user]'] = TRUE;
58 $edit['settings[user][user][settings][language][language_alterable]'] = TRUE;
59 $edit['settings[user][user][settings][language][langcode]'] = 'en';
61 $this->drupalPostForm($settings_path, $edit, t('Save configuration'));
63 $config_data = $this->config('language.content_settings.menu_link_content.menu_link_content');
64 // Make sure configuration saved correctly.
65 $this->assertTrue($config_data->get('language_alterable'));
67 $this->assertConfigSchema(\Drupal::service('config.typed'), $config_data->getName(), $config_data->get());