Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\block\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\language\Entity\ConfigurableLanguage;
|
Chris@0
|
6 use Drupal\Tests\BrowserTestBase;
|
Chris@0
|
7
|
Chris@0
|
8 /**
|
Chris@0
|
9 * Tests display of menu blocks with multiple languages.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group block
|
Chris@0
|
12 */
|
Chris@0
|
13 class BlockLanguageCacheTest extends BrowserTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Modules to install.
|
Chris@0
|
17 *
|
Chris@0
|
18 * @var array
|
Chris@0
|
19 */
|
Chris@0
|
20 public static $modules = ['block', 'language', 'menu_ui'];
|
Chris@0
|
21
|
Chris@0
|
22 /**
|
Chris@0
|
23 * List of langcodes.
|
Chris@0
|
24 *
|
Chris@0
|
25 * @var array
|
Chris@0
|
26 */
|
Chris@0
|
27 protected $langcodes = [];
|
Chris@0
|
28
|
Chris@0
|
29 protected function setUp() {
|
Chris@0
|
30 parent::setUp();
|
Chris@0
|
31
|
Chris@0
|
32 // Create test languages.
|
Chris@0
|
33 $this->langcodes = [ConfigurableLanguage::load('en')];
|
Chris@0
|
34 for ($i = 1; $i < 3; ++$i) {
|
Chris@0
|
35 $language = ConfigurableLanguage::create([
|
Chris@0
|
36 'id' => 'l' . $i,
|
Chris@0
|
37 'label' => $this->randomString(),
|
Chris@0
|
38 ]);
|
Chris@0
|
39 $language->save();
|
Chris@0
|
40 $this->langcodes[$i] = $language;
|
Chris@0
|
41 }
|
Chris@0
|
42 }
|
Chris@0
|
43
|
Chris@0
|
44 /**
|
Chris@0
|
45 * Creates a block in a language, check blocks page in all languages.
|
Chris@0
|
46 */
|
Chris@0
|
47 public function testBlockLinks() {
|
Chris@0
|
48 // Create admin user to be able to access block admin.
|
Chris@0
|
49 $admin_user = $this->drupalCreateUser([
|
Chris@0
|
50 'administer blocks',
|
Chris@0
|
51 'access administration pages',
|
Chris@0
|
52 'administer menu',
|
Chris@0
|
53 ]);
|
Chris@0
|
54 $this->drupalLogin($admin_user);
|
Chris@0
|
55
|
Chris@0
|
56 // Create the block cache for all languages.
|
Chris@0
|
57 foreach ($this->langcodes as $langcode) {
|
Chris@0
|
58 $this->drupalGet('admin/structure/block', ['language' => $langcode]);
|
Chris@0
|
59 $this->clickLink('Place block');
|
Chris@0
|
60 }
|
Chris@0
|
61
|
Chris@0
|
62 // Create a menu in the default language.
|
Chris@0
|
63 $edit['label'] = $this->randomMachineName();
|
Chris@17
|
64 $edit['id'] = mb_strtolower($edit['label']);
|
Chris@0
|
65 $this->drupalPostForm('admin/structure/menu/add', $edit, t('Save'));
|
Chris@0
|
66 $this->assertText(t('Menu @label has been added.', ['@label' => $edit['label']]));
|
Chris@0
|
67
|
Chris@0
|
68 // Check that the block is listed for all languages.
|
Chris@0
|
69 foreach ($this->langcodes as $langcode) {
|
Chris@0
|
70 $this->drupalGet('admin/structure/block', ['language' => $langcode]);
|
Chris@0
|
71 $this->clickLink('Place block');
|
Chris@0
|
72 $this->assertText($edit['label']);
|
Chris@0
|
73 }
|
Chris@0
|
74 }
|
Chris@0
|
75
|
Chris@0
|
76 }
|