c14bdfb3e5958d22522eb30eea127075a54fd0a3
[yaffs-website] / web / core / tests / Drupal / Tests / Component / Bridge / ZfExtensionManagerSfContainerTest.php
1 <?php
2
3 namespace Drupal\Tests\Component\Bridge;
4
5 use Drupal\Component\Bridge\ZfExtensionManagerSfContainer;
6 use Drupal\Tests\UnitTestCase;
7 use Symfony\Component\DependencyInjection\ContainerBuilder;
8
9 /**
10  * @coversDefaultClass \Drupal\Component\Bridge\ZfExtensionManagerSfContainer
11  * @group Bridge
12  */
13 class ZfExtensionManagerSfContainerTest extends UnitTestCase {
14
15   /**
16    * @covers ::setContainer
17    * @covers ::get
18    */
19   public function testGet() {
20     $service = new \stdClass();
21     $service->value = 'myvalue';
22     $container = new ContainerBuilder();
23     $container->set('foo', $service);
24     $bridge = new ZfExtensionManagerSfContainer();
25     $bridge->setContainer($container);
26     $this->assertEquals($service, $bridge->get('foo'));
27   }
28
29   /**
30    * @covers ::setContainer
31    * @covers ::has
32    */
33   public function testHas() {
34     $service = new \stdClass();
35     $service->value = 'myvalue';
36     $container = new ContainerBuilder();
37     $container->set('foo', $service);
38     $bridge = new ZfExtensionManagerSfContainer();
39     $bridge->setContainer($container);
40     $this->assertTrue($bridge->has('foo'));
41     $this->assertFalse($bridge->has('bar'));
42   }
43
44   /**
45    * @covers ::__construct
46    * @covers ::has
47    * @covers ::get
48    */
49   public function testPrefix() {
50     $service = new \stdClass();
51     $service->value = 'myvalue';
52     $container = new ContainerBuilder();
53     $container->set('foo.bar', $service);
54     $bridge = new ZfExtensionManagerSfContainer('foo.');
55     $bridge->setContainer($container);
56     $this->assertTrue($bridge->has('bar'));
57     $this->assertFalse($bridge->has('baz'));
58     $this->assertEquals($service, $bridge->get('bar'));
59   }
60
61   /**
62    * @covers ::canonicalizeName
63    * @dataProvider canonicalizeNameProvider
64    */
65   public function testCanonicalizeName($name, $canonical_name) {
66     $service = new \stdClass();
67     $service->value = 'myvalue';
68     $container = new ContainerBuilder();
69     $container->set($canonical_name, $service);
70     $bridge = new ZfExtensionManagerSfContainer();
71     $bridge->setContainer($container);
72     $this->assertTrue($bridge->has($name));
73     $this->assertEquals($service, $bridge->get($name));
74   }
75
76   /**
77    * Data provider for testReverseProxyEnabled.
78    *
79    * Replacements:
80    *   array('-' => '', '_' => '', ' ' => '', '\\' => '', '/' => '')
81    */
82   public function canonicalizeNameProvider() {
83     return [
84       [
85         'foobar',
86         'foobar',
87       ],
88       [
89         'foo-bar',
90         'foobar',
91       ],
92       [
93         'foo_bar',
94         'foobar',
95       ],
96       [
97         'foo bar',
98         'foobar',
99       ],
100       [
101         'foo\\bar',
102         'foobar',
103       ],
104       [
105         'foo/bar',
106         'foobar',
107       ],
108       // There is also a strtolower in canonicalizeName.
109       [
110         'Foo/bAr',
111         'foobar',
112       ],
113       [
114         'foo/-_\\ bar',
115         'foobar',
116       ],
117     ];
118   }
119
120 }