Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\language\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\entity_test\Entity\EntityTest;
|
Chris@0
|
6 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests the language select widget.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group language
|
Chris@0
|
12 */
|
Chris@0
|
13 class LanguageSelectWidgetTest extends KernelTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * {@inheritdoc}
|
Chris@0
|
17 */
|
Chris@0
|
18 protected static $modules = [
|
Chris@0
|
19 'entity_test',
|
Chris@0
|
20 'language',
|
Chris@0
|
21 'user',
|
Chris@0
|
22 'system',
|
Chris@0
|
23 ];
|
Chris@0
|
24
|
Chris@0
|
25 /**
|
Chris@0
|
26 * The entity form display.
|
Chris@0
|
27 *
|
Chris@0
|
28 * @var \Drupal\Core\Entity\Entity\EntityFormDisplay
|
Chris@0
|
29 */
|
Chris@0
|
30 protected $entityFormDisplay;
|
Chris@0
|
31
|
Chris@0
|
32 /**
|
Chris@0
|
33 * {@inheritdoc}
|
Chris@0
|
34 */
|
Chris@0
|
35 protected function setUp() {
|
Chris@0
|
36 parent::setUp();
|
Chris@0
|
37
|
Chris@0
|
38 $this->installEntitySchema('entity_test');
|
Chris@0
|
39 $this->installEntitySchema('user');
|
Chris@0
|
40
|
Chris@0
|
41 $storage = $this->container->get('entity_type.manager')->getStorage('entity_form_display');
|
Chris@0
|
42 $this->entityFormDisplay = $storage->create([
|
Chris@0
|
43 'targetEntityType' => 'entity_test',
|
Chris@0
|
44 'bundle' => 'entity_test',
|
Chris@0
|
45 'mode' => 'default',
|
Chris@0
|
46 'status' => TRUE,
|
Chris@0
|
47 ]);
|
Chris@0
|
48 }
|
Chris@0
|
49
|
Chris@0
|
50 /**
|
Chris@0
|
51 * Tests the widget with the locked languages.
|
Chris@0
|
52 */
|
Chris@0
|
53 public function testWithIncludedLockedLanguage() {
|
Chris@0
|
54 $this->entityFormDisplay->setComponent('langcode', [
|
Chris@0
|
55 'type' => 'language_select',
|
Chris@0
|
56 ])->save();
|
Chris@0
|
57 $entity = EntityTest::create(['name' => $this->randomString()]);
|
Chris@0
|
58 $form = $this->container->get('entity.form_builder')->getForm($entity);
|
Chris@0
|
59 $options = array_keys($form['langcode']['widget'][0]['value']['#options']);
|
Chris@0
|
60 $this->assertSame(['en', 'und', 'zxx'], $options);
|
Chris@0
|
61 }
|
Chris@0
|
62
|
Chris@0
|
63 /**
|
Chris@0
|
64 * Test the widget without the locked languages.
|
Chris@0
|
65 */
|
Chris@0
|
66 public function testWithoutIncludedLockedLanguage() {
|
Chris@0
|
67 $this->entityFormDisplay->setComponent('langcode', [
|
Chris@0
|
68 'type' => 'language_select',
|
Chris@0
|
69 'settings' => ['include_locked' => FALSE],
|
Chris@0
|
70 ])->save();
|
Chris@0
|
71 $entity = EntityTest::create(['name' => $this->randomString()]);
|
Chris@0
|
72 $form = $this->container->get('entity.form_builder')->getForm($entity);
|
Chris@0
|
73 $options = array_keys($form['langcode']['widget'][0]['value']['#options']);
|
Chris@0
|
74 $this->assertSame(['en'], $options);
|
Chris@0
|
75 }
|
Chris@0
|
76
|
Chris@0
|
77 }
|