You are here

function BookTest::testBookTokens in Token 8

File

tests/src/Kernel/BookTest.php, line 35

Class

BookTest
Test the book tokens.

Namespace

Drupal\Tests\token\Kernel

Code

function testBookTokens() {
  $book = Node::create([
    'type' => 'book',
    'title' => 'Book Main Page',
    'book' => [
      'bid' => 'new',
    ],
  ]);
  $book
    ->save();
  $page1 = Node::create([
    'type' => 'book',
    'title' => '1st Page',
    'book' => [
      'bid' => $book
        ->id(),
      'pid' => $book
        ->id(),
    ],
  ]);
  $page1
    ->save();
  $page2 = Node::create([
    'type' => 'book',
    'title' => '2nd Page',
    'book' => [
      'bid' => $book
        ->id(),
      'pid' => $page1
        ->id(),
    ],
  ]);
  $page2
    ->save();
  $book_title = $book
    ->getTitle();
  $tokens = [
    'nid' => $book
      ->id(),
    'title' => $book_title,
    'book:title' => $book_title,
    'book:root' => $book_title,
    'book:root:nid' => $book
      ->id(),
    'book:root:title' => $book_title,
    'book:root:url' => Url::fromRoute('entity.node.canonical', [
      'node' => $book
        ->id(),
    ], [
      'absolute' => TRUE,
    ])
      ->toString(),
    'book:root:content-type' => 'Book page',
    'book:parent' => null,
    'book:parents' => null,
  ];
  $this
    ->assertTokens('node', [
    'node' => $book,
  ], $tokens);
  $tokens = [
    'nid' => $page1
      ->id(),
    'title' => $page1
      ->getTitle(),
    'book:title' => $book_title,
    'book:root' => $book_title,
    'book:root:nid' => $book
      ->id(),
    'book:root:title' => $book_title,
    'book:root:url' => Url::fromRoute('entity.node.canonical', [
      'node' => $book
        ->id(),
    ], [
      'absolute' => TRUE,
    ])
      ->toString(),
    'book:root:content-type' => 'Book page',
    'book:parent:nid' => $book
      ->id(),
    'book:parent:title' => $book_title,
    'book:parent:url' => Url::fromRoute('entity.node.canonical', [
      'node' => $book
        ->id(),
    ], [
      'absolute' => TRUE,
    ])
      ->toString(),
    'book:parents:count' => 1,
    'book:parents:join:/' => $book_title,
  ];
  $this
    ->assertTokens('node', [
    'node' => $page1,
  ], $tokens);
  $tokens = [
    'nid' => $page2
      ->id(),
    'title' => $page2
      ->getTitle(),
    'book:title' => $book_title,
    'book:root' => $book_title,
    'book:root:nid' => $book
      ->id(),
    'book:root:title' => $book_title,
    'book:root:url' => Url::fromRoute('entity.node.canonical', [
      'node' => $book
        ->id(),
    ], [
      'absolute' => TRUE,
    ])
      ->toString(),
    'book:root:content-type' => 'Book page',
    'book:parent:nid' => $page1
      ->id(),
    'book:parent:title' => $page1
      ->getTitle(),
    'book:parent:url' => Url::fromRoute('entity.node.canonical', [
      'node' => $page1
        ->id(),
    ], [
      'absolute' => TRUE,
    ])
      ->toString(),
    'book:parents:count' => 2,
    'book:parents:join:/' => $book_title . '/' . $page1
      ->getTitle(),
  ];
  $this
    ->assertTokens('node', [
    'node' => $page2,
  ], $tokens);
}