page_manager-8.x-4.0-beta6/tests/src/Kernel/PageVariantPageEntityTest.php

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

namespace Drupal\Tests\page_manager\Kernel;

use Drupal\KernelTests\KernelTestBase;
use Drupal\page_manager\Entity\Page;
use Drupal\page_manager\Entity\PageVariant;

/**
 * Tests storing an page entity on a page variant.
 *
 * @group PageManager
 */
class PageVariantPageEntityTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = ['page_manager'];

  /**
   * Tests that a page gets cached on the page variant.
   */
  public function testPageGetsCached() {
    /** @var \Drupal\page_manager\PageInterface $page */
    $page = Page::create(['id' => 'test_page', 'path' => '/test_page_path']);
    $page->save();

    /** @var \Drupal\page_manager\PageVariantInterface $page_variant */
    $page_variant = PageVariant::create([
      'id' => 'test_page_variant',
      'page' => 'test_page',
    ]);

    // Get the page from the variant.
    $page_first = $page_variant->getPage();
    $this->assertNotEmpty($page_first);
    $page_second = $page_variant->getPage();
    $this->assertEquals(spl_object_hash($page_first), spl_object_hash($page_second));
  }

  /**
   * Tests that a an unsaved page can be set against a page variant.
   */
  public function testUnsavedPage() {
    /** @var \Drupal\page_manager\PageInterface $page */
    $page = Page::create(['id' => 'test_page']);

    /** @var \Drupal\page_manager\PageVariantInterface $page_variant */
    $page_variant = PageVariant::create([
      'id' => 'test_page_variant',
      'page' => 'test_page',
    ]);
    $page_variant->setPageEntity($page);

    // Get the page from the variant.
    $page_result = $page_variant->getPage();
    $this->assertEquals($page, $page_result);
  }

  /**
   * Tests that a page gets cached on the page variant.
   */
  public function testChangePageId() {
    /** @var \Drupal\page_manager\PageVariantInterface $page_variant */
    $page_variant = PageVariant::create(['id' => 'test_page_variant']);

    // Check the page gets set correctly.
    /** @var \Drupal\page_manager\PageInterface $page */
    $page1 = Page::create(['id' => 'test_page_1']);
    $page_variant->setPageEntity($page1);
    $this->assertEquals('test_page_1', $page_variant->get('page'));

    // Check the page gets changed correctly.
    /** @var \Drupal\page_manager\PageInterface $page */
    $page2 = Page::create(['id' => 'test_page_2']);
    $page_variant->setPageEntity($page2);
    $this->assertEquals('test_page_2', $page_variant->get('page'));
  }

}

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

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