entity_hierarchy-8.x-2.24/modules/entity_hierarchy_microsite/tests/src/Functional/MicrositeMenuBlockTest.php

modules/entity_hierarchy_microsite/tests/src/Functional/MicrositeMenuBlockTest.php
<?php

namespace Drupal\Tests\entity_hierarchy_microsite\Functional;

use Drupal\entity_hierarchy_microsite\Entity\Microsite;
use Drupal\Tests\entity_hierarchy_microsite\Traits\MenuRebuildTrait;

/**
 * Defines a class for testing microsite menu block.
 *
 * @group entity_hierarchy_microsite
 */
class MicrositeMenuBlockTest extends MicrositeFunctionalTestBase {

  use MenuRebuildTrait;

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $this->drupalPlaceBlock('entity_hierarchy_microsite_menu', [
      'field' => self::FIELD_NAME,
      'id' => 'microsite_menu',
      'context_mapping' => [
        'node' => '@node.node_route_context:node',
      ],
      'region' => 'content',
      'visibility' => [
        'entity_hierarchy_microsite_child' => [
          'id' => 'entity_hierarchy_microsite_child',
          'field' => self::FIELD_NAME,
          'negate' => FALSE,
          'context_mapping' => [
            'node' => '@node.node_route_context:node',
          ],
        ],
      ],
    ]);
  }

  /**
   * Tests menu block.
   */
  public function testMenuBlock() {
    $logo = $this->createImageMedia();
    $root = $this->createTestEntity(NULL, 'Root');
    $children = $this->createChildEntities($root->id());
    $microsite = Microsite::create([
      'name' => $root->label(),
      'home' => $root,
      'logo' => $logo,
      'generate_menu' => TRUE,
    ]);
    $microsite->save();
    $this->triggerMenuRebuild();
    $this->drupalGet($root->toUrl());
    $assert = $this->assertSession();
    $menu = $assert->elementExists('css', '#block-microsite-menu ul');
    $links = $menu->findAll('css', 'li a');
    $this->assertCount(5, $links);
    foreach ($children as $child) {
      $this->assertNotEmpty($menu->find('named', ['link', $child->label()]));
      $assert->linkExists($child->label());
      $xpath = $this->assertSession()->buildXPathQuery('//a[contains(@href, :href)]', [':href' => $child->toUrl()->toString()]);
      $this->assertNotEmpty($menu->find('xpath', $xpath));
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc