123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- namespace Drupal\Tests\block\Functional;
- /**
- * Tests branding block display.
- *
- * @group block
- */
- class BlockSystemBrandingTest extends BlockTestBase {
- /**
- * Modules to install.
- *
- * @var array
- */
- public static $modules = ['block', 'system'];
- /**
- * {@inheritdoc}
- */
- protected function setUp() {
- parent::setUp();
- // Set a site slogan.
- $this->config('system.site')
- ->set('slogan', 'Community plumbing')
- ->save();
- // Add the system branding block to the page.
- $this->drupalPlaceBlock('system_branding_block', ['region' => 'header', 'id' => 'site-branding']);
- }
- /**
- * Tests system branding block configuration.
- */
- public function testSystemBrandingSettings() {
- $site_logo_xpath = '//div[@id="block-site-branding"]//a[@class="site-logo"]';
- $site_name_xpath = '//div[@id="block-site-branding"]//div[@class="site-name"]';
- $site_slogan_xpath = '//div[@id="block-site-branding"]//div[@class="site-slogan"]';
- // Set default block settings.
- $this->drupalGet('');
- $site_logo_element = $this->xpath($site_logo_xpath);
- $site_name_element = $this->xpath($site_name_xpath);
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- // Test that all branding elements are displayed.
- $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.');
- $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.');
- $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.');
- $this->assertCacheTag('config:system.site');
- // Be sure the slogan is XSS-filtered.
- $this->config('system.site')
- ->set('slogan', '<script>alert("Community carpentry");</script>')
- ->save();
- $this->drupalGet('');
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- $this->assertEqual($site_slogan_element[0]->getText(), 'alert("Community carpentry");', 'The site slogan was XSS-filtered.');
- // Turn just the logo off.
- $this->config('block.block.site-branding')
- ->set('settings.use_site_logo', 0)
- ->save();
- $this->drupalGet('');
- $site_logo_element = $this->xpath($site_logo_xpath);
- $site_name_element = $this->xpath($site_name_xpath);
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- // Re-test all branding elements.
- $this->assertTrue(empty($site_logo_element), 'The branding block logo was disabled.');
- $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.');
- $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.');
- $this->assertCacheTag('config:system.site');
- // Turn just the site name off.
- $this->config('block.block.site-branding')
- ->set('settings.use_site_logo', 1)
- ->set('settings.use_site_name', 0)
- ->save();
- $this->drupalGet('');
- $site_logo_element = $this->xpath($site_logo_xpath);
- $site_name_element = $this->xpath($site_name_xpath);
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- // Re-test all branding elements.
- $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.');
- $this->assertTrue(empty($site_name_element), 'The branding block site name was disabled.');
- $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.');
- $this->assertCacheTag('config:system.site');
- // Turn just the site slogan off.
- $this->config('block.block.site-branding')
- ->set('settings.use_site_name', 1)
- ->set('settings.use_site_slogan', 0)
- ->save();
- $this->drupalGet('');
- $site_logo_element = $this->xpath($site_logo_xpath);
- $site_name_element = $this->xpath($site_name_xpath);
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- // Re-test all branding elements.
- $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.');
- $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.');
- $this->assertTrue(empty($site_slogan_element), 'The branding block slogan was disabled.');
- $this->assertCacheTag('config:system.site');
- // Turn the site name and the site slogan off.
- $this->config('block.block.site-branding')
- ->set('settings.use_site_name', 0)
- ->set('settings.use_site_slogan', 0)
- ->save();
- $this->drupalGet('');
- $site_logo_element = $this->xpath($site_logo_xpath);
- $site_name_element = $this->xpath($site_name_xpath);
- $site_slogan_element = $this->xpath($site_slogan_xpath);
- // Re-test all branding elements.
- $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.');
- $this->assertTrue(empty($site_name_element), 'The branding block site name was disabled.');
- $this->assertTrue(empty($site_slogan_element), 'The branding block slogan was disabled.');
- $this->assertCacheTag('config:system.site');
- }
- }
|