Skip to content
Snippets Groups Projects
Commit a42540b8 authored by Tim Diels's avatar Tim Diels Committed by Ken Rickard
Browse files

Issue #3226519 by SylvainM, davps, tim-diels, agentrickard, dqd: Navigation...

Issue #3226519 by SylvainM, davps, tim-diels, agentrickard, dqd: Navigation block with active class on ul
parent ba2444d2
Branches d11-testing
No related tags found
1 merge request!75Add code from MR towards 1.x
Pipeline #260656 passed with warnings
......@@ -148,6 +148,10 @@ class DomainNavBlock extends DomainBlockBase {
];
}
else {
if ($domain->isActive()) {
$url->mergeOptions(['attributes' => ['class' => 'active']]);
}
$items[] = ['#markup' => Link::fromTextAndUrl($label, $url)->toString()];
}
}
......
......@@ -3,6 +3,7 @@
namespace Drupal\Tests\domain\Functional;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Url;
/**
* Tests the domain navigation block.
......@@ -58,7 +59,7 @@ class DomainNavBlockTest extends DomainTestBase {
// Load the homepage.
$this->drupalGet('<front>');
// Confirm domain links.
foreach ($domains as $id => $domain) {
foreach ($domains as $domain) {
$this->findLink($domain->label());
}
......@@ -68,10 +69,10 @@ class DomainNavBlockTest extends DomainTestBase {
->set('settings.link_label', 'hostname')
->save();
// Load the the login page.
// Load the login page.
$this->drupalGet('user/login');
// Confirm domain links.
foreach ($domains as $id => $domain) {
foreach ($domains as $domain) {
$this->findLink($domain->getHostname());
// @phpstan-ignore-next-line
$this->assertSession()->responseContains($domain->buildUrl(base_path() . 'user/login'));
......@@ -84,10 +85,10 @@ class DomainNavBlockTest extends DomainTestBase {
->set('settings.link_label', 'url')
->save();
// Load the the login page.
// Load the login page.
$this->drupalGet('user/login');
// Confirm domain links.
foreach ($domains as $id => $domain) {
foreach ($domains as $domain) {
$this->findLink($domain->getPath());
$this->assertSession()->responseContains($domain->getPath());
}
......@@ -122,4 +123,30 @@ class DomainNavBlockTest extends DomainTestBase {
}
}
/**
* Test links class in domain navigation block.
*/
public function testActiveDomainLinkClass() {
$this->domainCreateTestDomains(3);
$domains = $this->getDomains();
$block = $this->drupalPlaceBlock('domain_nav_block');
user_role_grant_permissions(AccountInterface::ANONYMOUS_ROLE, ['use domain nav block']);
foreach ($domains as $request_domain) {
$this->drupalGet(Url::fromRoute('<front>'), ['base_url' => trim($request_domain->getPath(), '/')]);
$page = $this->getSession()->getPage();
$expected_classes = [$request_domain->id() => 'active'];
$actual_classes = [];
foreach ($domains as $id => $domain) {
$link = $page->findById('block-' . $block->id())->findLink($domain->label());
$actual_classes[$id] = $link->getAttribute('class');
}
$this->assertEquals($expected_classes, array_filter($actual_classes));
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment