Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\block\Functional;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\Tests\BrowserTestBase;
|
Chris@0
|
6
|
Chris@0
|
7 /**
|
Chris@0
|
8 * Tests the block system with admin themes.
|
Chris@0
|
9 *
|
Chris@0
|
10 * @group block
|
Chris@0
|
11 */
|
Chris@0
|
12 class BlockAdminThemeTest extends BrowserTestBase {
|
Chris@0
|
13
|
Chris@0
|
14 /**
|
Chris@0
|
15 * Modules to install.
|
Chris@0
|
16 *
|
Chris@0
|
17 * @var array
|
Chris@0
|
18 */
|
Chris@0
|
19 public static $modules = ['block', 'contextual'];
|
Chris@0
|
20
|
Chris@0
|
21 /**
|
Chris@0
|
22 * Check for the accessibility of the admin theme on the block admin page.
|
Chris@0
|
23 */
|
Chris@0
|
24 public function testAdminTheme() {
|
Chris@0
|
25 // Create administrative user.
|
Chris@0
|
26 $admin_user = $this->drupalCreateUser(['administer blocks', 'administer themes']);
|
Chris@0
|
27 $this->drupalLogin($admin_user);
|
Chris@0
|
28
|
Chris@0
|
29 // Ensure that access to block admin page is denied when theme is not
|
Chris@0
|
30 // installed.
|
Chris@0
|
31 $this->drupalGet('admin/structure/block/list/bartik');
|
Chris@0
|
32 $this->assertResponse(403);
|
Chris@0
|
33
|
Chris@0
|
34 // Install admin theme and confirm that tab is accessible.
|
Chris@0
|
35 \Drupal::service('theme_handler')->install(['bartik']);
|
Chris@0
|
36 $edit['admin_theme'] = 'bartik';
|
Chris@0
|
37 $this->drupalPostForm('admin/appearance', $edit, t('Save configuration'));
|
Chris@0
|
38 $this->drupalGet('admin/structure/block/list/bartik');
|
Chris@0
|
39 $this->assertResponse(200);
|
Chris@0
|
40 }
|
Chris@0
|
41
|
Chris@0
|
42 /**
|
Chris@0
|
43 * Ensure contextual links are disabled in Seven theme.
|
Chris@0
|
44 */
|
Chris@0
|
45 public function testSevenAdminTheme() {
|
Chris@0
|
46 // Create administrative user.
|
Chris@0
|
47 $admin_user = $this->drupalCreateUser([
|
Chris@0
|
48 'access administration pages',
|
Chris@0
|
49 'administer themes',
|
Chris@0
|
50 'access contextual links',
|
Chris@0
|
51 'view the administration theme',
|
Chris@0
|
52 ]);
|
Chris@0
|
53 $this->drupalLogin($admin_user);
|
Chris@0
|
54
|
Chris@0
|
55 // Install admin theme and confirm that tab is accessible.
|
Chris@0
|
56 \Drupal::service('theme_handler')->install(['seven']);
|
Chris@0
|
57 $edit['admin_theme'] = 'seven';
|
Chris@0
|
58 $this->drupalPostForm('admin/appearance', $edit, t('Save configuration'));
|
Chris@0
|
59
|
Chris@0
|
60 // Define our block settings.
|
Chris@0
|
61 $settings = [
|
Chris@0
|
62 'theme' => 'seven',
|
Chris@0
|
63 'region' => 'header',
|
Chris@0
|
64 ];
|
Chris@0
|
65
|
Chris@0
|
66 // Place a block.
|
Chris@0
|
67 $block = $this->drupalPlaceBlock('local_tasks_block', $settings);
|
Chris@0
|
68
|
Chris@0
|
69 // Open admin page.
|
Chris@0
|
70 $this->drupalGet('admin');
|
Chris@0
|
71
|
Chris@0
|
72 // Check if contextual link classes are unavailable.
|
Chris@0
|
73 $this->assertNoRaw('<div data-contextual-id="block:block=' . $block->id() . ':langcode=en"></div>');
|
Chris@0
|
74 $this->assertNoRaw('contextual-region');
|
Chris@0
|
75 }
|
Chris@0
|
76
|
Chris@0
|
77 }
|