Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Tests\contextual\Kernel;
|
Chris@0
|
4
|
Chris@0
|
5 use Drupal\KernelTests\KernelTestBase;
|
Chris@0
|
6
|
Chris@0
|
7 /**
|
Chris@0
|
8 * Tests all edge cases of converting from #contextual_links to ids and vice
|
Chris@0
|
9 * versa.
|
Chris@0
|
10 *
|
Chris@0
|
11 * @group contextual
|
Chris@0
|
12 */
|
Chris@0
|
13 class ContextualUnitTest extends KernelTestBase {
|
Chris@0
|
14
|
Chris@0
|
15 /**
|
Chris@0
|
16 * Modules to enable.
|
Chris@0
|
17 *
|
Chris@0
|
18 * @var array
|
Chris@0
|
19 */
|
Chris@0
|
20 public static $modules = ['contextual'];
|
Chris@0
|
21
|
Chris@0
|
22 /**
|
Chris@0
|
23 * Provides testcases for testContextualLinksToId() and
|
Chris@0
|
24 */
|
Chris@0
|
25 public function _contextual_links_id_testcases() {
|
Chris@0
|
26 // Test branch conditions:
|
Chris@0
|
27 // - one group.
|
Chris@0
|
28 // - one dynamic path argument.
|
Chris@0
|
29 // - no metadata.
|
Chris@0
|
30 $tests[] = [
|
Chris@0
|
31 'links' => [
|
Chris@0
|
32 'node' => [
|
Chris@0
|
33 'route_parameters' => [
|
Chris@0
|
34 'node' => '14031991',
|
Chris@0
|
35 ],
|
Chris@0
|
36 'metadata' => ['langcode' => 'en'],
|
Chris@0
|
37 ],
|
Chris@0
|
38 ],
|
Chris@0
|
39 'id' => 'node:node=14031991:langcode=en',
|
Chris@0
|
40 ];
|
Chris@0
|
41
|
Chris@0
|
42 // Test branch conditions:
|
Chris@0
|
43 // - one group.
|
Chris@0
|
44 // - multiple dynamic path arguments.
|
Chris@0
|
45 // - no metadata.
|
Chris@0
|
46 $tests[] = [
|
Chris@0
|
47 'links' => [
|
Chris@0
|
48 'foo' => [
|
Chris@0
|
49 'route_parameters' => [
|
Chris@0
|
50 'bar',
|
Chris@0
|
51 'key' => 'baz',
|
Chris@0
|
52 'qux',
|
Chris@0
|
53 ],
|
Chris@0
|
54 'metadata' => ['langcode' => 'en'],
|
Chris@0
|
55 ],
|
Chris@0
|
56 ],
|
Chris@0
|
57 'id' => 'foo:0=bar&key=baz&1=qux:langcode=en',
|
Chris@0
|
58 ];
|
Chris@0
|
59
|
Chris@0
|
60 // Test branch conditions:
|
Chris@0
|
61 // - one group.
|
Chris@0
|
62 // - one dynamic path argument.
|
Chris@0
|
63 // - metadata.
|
Chris@0
|
64 $tests[] = [
|
Chris@0
|
65 'links' => [
|
Chris@0
|
66 'views_ui_edit' => [
|
Chris@0
|
67 'route_parameters' => [
|
Chris@17
|
68 'view' => 'frontpage',
|
Chris@0
|
69 ],
|
Chris@0
|
70 'metadata' => [
|
Chris@0
|
71 'location' => 'page',
|
Chris@0
|
72 'display' => 'page_1',
|
Chris@0
|
73 'langcode' => 'en',
|
Chris@0
|
74 ],
|
Chris@0
|
75 ],
|
Chris@0
|
76 ],
|
Chris@0
|
77 'id' => 'views_ui_edit:view=frontpage:location=page&display=page_1&langcode=en',
|
Chris@0
|
78 ];
|
Chris@0
|
79
|
Chris@0
|
80 // Test branch conditions:
|
Chris@0
|
81 // - multiple groups.
|
Chris@0
|
82 // - multiple dynamic path arguments.
|
Chris@0
|
83 $tests[] = [
|
Chris@0
|
84 'links' => [
|
Chris@0
|
85 'node' => [
|
Chris@0
|
86 'route_parameters' => [
|
Chris@0
|
87 'node' => '14031991',
|
Chris@0
|
88 ],
|
Chris@0
|
89 'metadata' => ['langcode' => 'en'],
|
Chris@0
|
90 ],
|
Chris@0
|
91 'foo' => [
|
Chris@0
|
92 'route_parameters' => [
|
Chris@0
|
93 'bar',
|
Chris@0
|
94 'key' => 'baz',
|
Chris@0
|
95 'qux',
|
Chris@0
|
96 ],
|
Chris@0
|
97 'metadata' => ['langcode' => 'en'],
|
Chris@0
|
98 ],
|
Chris@0
|
99 'edge' => [
|
Chris@0
|
100 'route_parameters' => ['20011988'],
|
Chris@0
|
101 'metadata' => ['langcode' => 'en'],
|
Chris@0
|
102 ],
|
Chris@0
|
103 ],
|
Chris@0
|
104 'id' => 'node:node=14031991:langcode=en|foo:0=bar&key=baz&1=qux:langcode=en|edge:0=20011988:langcode=en',
|
Chris@0
|
105 ];
|
Chris@0
|
106
|
Chris@0
|
107 return $tests;
|
Chris@0
|
108 }
|
Chris@0
|
109
|
Chris@0
|
110 /**
|
Chris@0
|
111 * Tests _contextual_links_to_id().
|
Chris@0
|
112 */
|
Chris@0
|
113 public function testContextualLinksToId() {
|
Chris@0
|
114 $tests = $this->_contextual_links_id_testcases();
|
Chris@0
|
115 foreach ($tests as $test) {
|
Chris@0
|
116 $this->assertIdentical(_contextual_links_to_id($test['links']), $test['id']);
|
Chris@0
|
117 }
|
Chris@0
|
118 }
|
Chris@0
|
119
|
Chris@0
|
120 /**
|
Chris@0
|
121 * Tests _contextual_id_to_links().
|
Chris@0
|
122 */
|
Chris@0
|
123 public function testContextualIdToLinks() {
|
Chris@0
|
124 $tests = $this->_contextual_links_id_testcases();
|
Chris@0
|
125 foreach ($tests as $test) {
|
Chris@0
|
126 $this->assertIdentical(_contextual_id_to_links($test['id']), $test['links']);
|
Chris@0
|
127 }
|
Chris@0
|
128 }
|
Chris@0
|
129
|
Chris@0
|
130 }
|