3 namespace Drupal\Tests\token\Kernel;
5 use Drupal\node\Entity\Node;
6 use Drupal\node\Entity\NodeType;
10 * Test the node and content type tokens.
14 class NodeTest extends KernelTestBase {
21 public static $modules = ['node', 'field', 'text'];
26 protected function setUp() {
29 $this->installEntitySchema('user');
30 $this->installEntitySchema('node');
32 $node_type = NodeType::create([
34 'name' => 'Basic page',
35 'description' => "Use <em>basic pages</em> for your static content, such as an 'About us' page.",
38 $node_type = NodeType::create([
41 'description' => "Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.",
46 function testNodeTokens() {
47 $page = Node::create([
49 'title' => 'Source Title',
50 'revision_log' => $this->randomMachineName(),
51 'path' => ['alias' => '/content/source-node']
55 'log' => $page->revision_log->value,
56 'url:path' => '/content/source-node',
57 'url:absolute' => Url::fromRoute('entity.node.canonical', ['node' => $page->id()], ['absolute' => TRUE])->toString(),
58 'url:relative' => Url::fromRoute('entity.node.canonical', ['node' => $page->id()], ['absolute' => FALSE])->toString(),
59 'url:unaliased:path' => "/node/{$page->id()}",
60 'content-type' => 'Basic page',
61 'content-type:name' => 'Basic page',
62 'content-type:machine-name' => 'page',
63 'content-type:description' => "Use <em>basic pages</em> for your static content, such as an 'About us' page.",
64 'content-type:node-count' => 1,
65 'content-type:edit-url' => Url::fromRoute('entity.node_type.edit_form', ['node_type' => 'page'], ['absolute' => TRUE])->toString(),
66 'source:title' => 'Source Title',
69 'type-name' => 'Basic page',
70 'url:alias' => '/content/source-node',
72 $this->assertTokens('node', ['node' => $page], $tokens);
74 $article = Node::create([
76 'title' => 'Source Title',
81 'url:path' => "/node/{$article->id()}",
82 'url:absolute' => Url::fromRoute('entity.node.canonical', ['node' => $article->id()], ['absolute' => TRUE])->toString(),
83 'url:relative' => Url::fromRoute('entity.node.canonical', ['node' => $article->id()], ['absolute' => FALSE])->toString(),
84 'url:unaliased:path' => "/node/{$article->id()}",
85 'content-type' => 'Article',
86 'content-type:name' => 'Article',
87 'content-type:machine-name' => 'article',
88 'content-type:description' => "Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.",
89 'content-type:node-count' => 1,
90 'content-type:edit-url' => Url::fromRoute('entity.node_type.edit_form', ['node_type' => 'article'], ['absolute' => TRUE])->toString(),
91 'source:title' => 'Source Title',
94 'type-name' => 'Article',
95 'url:alias' => "/node/{$article->id()}",
97 $this->assertTokens('node', ['node' => $article], $tokens);