Version 1
[yaffs-website] / web / modules / contrib / token / tests / src / Kernel / BookTest.php
diff --git a/web/modules/contrib/token/tests/src/Kernel/BookTest.php b/web/modules/contrib/token/tests/src/Kernel/BookTest.php
new file mode 100644 (file)
index 0000000..67a13ee
--- /dev/null
@@ -0,0 +1,107 @@
+<?php
+
+namespace Drupal\Tests\token\Kernel;
+
+use Drupal\node\Entity\Node;
+use Drupal\Core\Url;
+
+/**
+ * Test the book tokens.
+ *
+ * @group token
+ */
+class BookTest extends KernelTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['user', 'field', 'filter', 'text', 'node', 'book'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    $this->installEntitySchema('user');
+    $this->installEntitySchema('node');
+    $this->installSchema('book', array('book'));
+    $this->installSchema('node', array('node_access'));
+    $this->installConfig(array('node', 'book', 'field'));
+  }
+
+  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()], array('absolute' => TRUE))->toString(),
+      'book:root:content-type' => 'Book page',
+      'book:parent' => null,
+      'book:parents' => null,
+    ];
+    $this->assertTokens('node', array('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()], array('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()], array('absolute' => TRUE))->toString(),
+      'book:parents:count' => 1,
+      'book:parents:join:/' => $book_title,
+    ];
+    $this->assertTokens('node', array('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()], array('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()], array('absolute' => TRUE))->toString(),
+      'book:parents:count' => 2,
+      'book:parents:join:/' => $book_title . '/' . $page1->getTitle(),
+    ];
+    $this->assertTokens('node', array('node' => $page2), $tokens);
+  }
+}