Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\language\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Tests\SchemaCheckTestTrait;
|
Chris@0
|
6 use Drupal\Tests\BrowserTestBase;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Ensures the language config schema is correct.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group language
|
Chris@0
|
12 */
|
Chris@0
|
13 class LanguageConfigSchemaTest extends BrowserTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 use SchemaCheckTestTrait;
|
Chris@0
|
16
|
Chris@0
|
17 /**
|
Chris@0
|
18 * Modules to enable.
|
Chris@0
|
19 *
|
Chris@0
|
20 * @var array
|
Chris@0
|
21 */
|
Chris@0
|
22 public static $modules = ['language', 'menu_link_content'];
|
Chris@0
|
23
|
Chris@0
|
24 /**
|
Chris@0
|
25 * A user with administrative permissions.
|
Chris@0
|
26 *
|
Chris@0
|
27 * @var \Drupal\user\UserInterface
|
Chris@0
|
28 */
|
Chris@0
|
29 protected $adminUser;
|
Chris@0
|
30
|
Chris@0
|
31 /**
|
Chris@0
|
32 * {@inheritdoc}
|
Chris@0
|
33 */
|
Chris@0
|
34 protected function setUp() {
|
Chris@0
|
35 parent::setUp();
|
Chris@0
|
36
|
Chris@0
|
37 // Create user.
|
Chris@0
|
38 $this->adminUser = $this->drupalCreateUser(['administer languages']);
|
Chris@0
|
39 $this->drupalLogin($this->adminUser);
|
Chris@0
|
40 }
|
Chris@0
|
41
|
Chris@0
|
42 /**
|
Chris@0
|
43 * Tests whether the language config schema is valid.
|
Chris@0
|
44 */
|
Chris@0
|
45 public function testValidLanguageConfigSchema() {
|
Chris@0
|
46 // Make sure no language configuration available by default.
|
Chris@0
|
47 $config_data = $this->config('language.settings')->get();
|
Chris@0
|
48 $this->assertTrue(empty($config_data));
|
Chris@0
|
49
|
Chris@0
|
50 $settings_path = 'admin/config/regional/content-language';
|
Chris@0
|
51
|
Chris@0
|
52 // Enable translation for menu link.
|
Chris@0
|
53 $edit['entity_types[menu_link_content]'] = TRUE;
|
Chris@0
|
54 $edit['settings[menu_link_content][menu_link_content][settings][language][language_alterable]'] = TRUE;
|
Chris@0
|
55
|
Chris@0
|
56 // Enable translation for user.
|
Chris@0
|
57 $edit['entity_types[user]'] = TRUE;
|
Chris@0
|
58 $edit['settings[user][user][settings][language][language_alterable]'] = TRUE;
|
Chris@0
|
59 $edit['settings[user][user][settings][language][langcode]'] = 'en';
|
Chris@0
|
60
|
Chris@0
|
61 $this->drupalPostForm($settings_path, $edit, t('Save configuration'));
|
Chris@0
|
62
|
Chris@0
|
63 $config_data = $this->config('language.content_settings.menu_link_content.menu_link_content');
|
Chris@0
|
64 // Make sure configuration saved correctly.
|
Chris@0
|
65 $this->assertTrue($config_data->get('language_alterable'));
|
Chris@0
|
66
|
Chris@0
|
67 $this->assertConfigSchema(\Drupal::service('config.typed'), $config_data->getName(), $config_data->get());
|
Chris@0
|
68 }
|
Chris@0
|
69
|
Chris@0
|
70 }
|