Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / token / tests / src / Kernel / NodeTest.php
1 <?php
2
3 namespace Drupal\Tests\token\Kernel;
4
5 use Drupal\node\Entity\Node;
6 use Drupal\node\Entity\NodeType;
7 use Drupal\Core\Url;
8
9 /**
10  * Test the node and content type tokens.
11  *
12  * @group token
13  */
14 class NodeTest extends KernelTestBase {
15
16   /**
17    * Modules to enable.
18    *
19    * @var array
20    */
21   public static $modules = ['node', 'field', 'text'];
22
23   /**
24    * {@inheritdoc}
25    */
26   protected function setUp() {
27     parent::setUp();
28
29     $this->installEntitySchema('user');
30     $this->installEntitySchema('node');
31
32     $node_type = NodeType::create([
33       'type' => 'page',
34       'name' => 'Basic page',
35       'description' => "Use <em>basic pages</em> for your static content, such as an 'About us' page.",
36     ]);
37     $node_type->save();
38     $node_type = NodeType::create([
39       'type' => 'article',
40       'name' => 'Article',
41       'description' => "Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.",
42     ]);
43     $node_type->save();
44   }
45
46   function testNodeTokens() {
47     $page = Node::create([
48       'type' => 'page',
49       'title' => 'Source Title',
50       'revision_log' => $this->randomMachineName(),
51       'path' => ['alias' => '/content/source-node']
52     ]);
53     $page->save();
54     $tokens = [
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',
67       // Deprecated tokens.
68       'type' => 'page',
69       'type-name' => 'Basic page',
70       'url:alias' => '/content/source-node',
71     ];
72     $this->assertTokens('node', ['node' => $page], $tokens);
73
74     $article = Node::create([
75       'type' => 'article',
76       'title' => 'Source Title',
77     ]);
78     $article->save();
79     $tokens = [
80       'log' => '',
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',
92       // Deprecated tokens.
93       'type' => 'article',
94       'type-name' => 'Article',
95       'url:alias' => "/node/{$article->id()}",
96     ];
97     $this->assertTokens('node', ['node' => $article], $tokens);
98   }
99
100 }