annotate core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
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 }