entity_print-8.x-2.2/tests/src/Kernel/PrintLinkTest.php

tests/src/Kernel/PrintLinkTest.php
<?php

namespace Drupal\Tests\entity_print\Kernel;

use Drupal\Core\Plugin\Context\Context;
use Drupal\Core\Plugin\Context\ContextDefinition;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\block\Traits\BlockCreationTrait;

/**
 * Test the print links block.
 *
 * @coversDefaultClass \Drupal\entity_print\Plugin\Block\PrintLinks
 * @group entity_print
 */
class PrintLinkTest extends KernelTestBase {

  use BlockCreationTrait;

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = ['system', 'block', 'entity_print'];

  /**
   * Test placing the block so we pick-up any schema errors.
   */
  public function testPlaceBlock() {
    $this->placeBlock('print_links');
    $this->assertTrue(TRUE);
  }

  /**
   * Test build links.
   *
   * @covers ::build
   */
  public function testBuildLinks() {
    // Ensure only the PDF link is enabled by default.
    $build = $this->getBlock()->build();
    $this->assertSame('pdf', $build['pdf']['#export_type']);
    $this->assertFalse(isset($build['epub']));
    $this->assertFalse(isset($build['word_docx']));

    $build = $this->getBlock(['epub_enabled' => TRUE])->build();
    $this->assertSame('pdf', $build['pdf']['#export_type']);
    $this->assertSame('epub', $build['epub']['#export_type']);
    $this->assertFalse(isset($build['word_docx']));
  }

  /**
   * Gets a block plugin for testing.
   *
   * @param array $config
   *   The block configuration.
   *
   * @return \Drupal\entity_print\Plugin\Block\PrintLinks
   *   The loaded block.
   */
  protected function getBlock(array $config = []) {
    $manager = $this->container->get('plugin.manager.block');
    $entity = $this->createMock('Drupal\Core\Entity\EntityInterface');
    $context = new Context(ContextDefinition::create(), $entity);

    /** @var \Drupal\entity_print\Plugin\Block\PrintLinks $block */
    $block = $manager->createInstance('print_links', $config);
    $block->setContext('entity', $context);

    return $block;
  }

}

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

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