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', '') ->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'); } }