comparison core/modules/contextual/tests/src/Kernel/ContextualUnitTest.php @ 0:4c8ae668cc8c

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