blog-3.0.1/tests/src/Functional/BreadcrumbTest.php

tests/src/Functional/BreadcrumbTest.php
<?php

namespace Drupal\Tests\blog\Functional;

use Drupal\Core\Url;
use Drupal\Tests\block\Traits\BlockCreationTrait;

/**
 * Breadcrumb test for blog module.
 *
 * @group blog
 */
class BreadcrumbTest extends BlogTestBase {
  use BlockCreationTrait;

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'block',
    'blog',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    // Add breadcrumb block.
    $this->placeBlock('system_breadcrumb_block', ['region' => 'content', 'id' => 'breadcrumb']);
  }

  /**
   * Blog node type breadcrumb test.
   */
  public function testBlogNodeBreadcrumb() : void {
    $blog_nid = array_rand($this->blogNodes1);
    $blog_owner = $this->blogNodes1[$blog_nid]->getOwner();
    $this->drupalGet('node/' . $blog_nid);
    $links = $this->getSession()
      ->getPage()
      ->findAll('css', '#block-breadcrumb li a');
    $this::assertEquals(count($links), 3, 'Breadcrumb element number is correctly.');
    [$home, $blogs, $personal_blog] = $links;
    $this::assertTrue(($home->getAttribute('href') === base_path() && $home->getHtml() === 'Home'), 'Home link correctly.');
    $expected_url = Url::fromRoute('view.blog.blog_all')->toString();
    $this::assertTrue(($blogs->getAttribute('href') === $expected_url && $blogs->getHtml() === 'Blogs'), 'Blogs link correctly.');
    $blog_name = $this->container->get('blog.lister')->userBlogTitle($blog_owner);
    $expected_url = Url::fromRoute('view.blog.blog_user_all', ['arg_0' => $blog_owner->id()])->toString();
    $this::assertTrue(($personal_blog->getAttribute('href') === $expected_url && $personal_blog->getHtml() === (string) $blog_name), 'Personal blog link correctly.');
  }

  /**
   * Other node type breadcrumb test.
   */
  public function testOtherNodeBreadcrumb() : void {
    $article_nid = array_rand($this->articleNodes1);
    $article_owner = $this->articleNodes1[$article_nid]->getOwner();
    $blog_name = (string) $this->container->get('blog.lister')->userBlogTitle($article_owner);
    $this->drupalGet('node/' . $article_nid);
    $links = $this->getSession()
      ->getPage()
      ->findAll('css', '#block-breadcrumb li a');
    $link = array_pop($links);
    $this::assertFalse($link->getHtml() === $blog_name, 'Other node type breadcrumb is correct.');
  }

}

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

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