Chris@0: value = 'myvalue'; Chris@0: $container = new ContainerBuilder(); Chris@0: $container->set('foo', $service); Chris@0: $bridge = new ZfExtensionManagerSfContainer(); Chris@0: $bridge->setContainer($container); Chris@0: $this->assertEquals($service, $bridge->get('foo')); Chris@17: $bridge->setStandalone(StandaloneExtensionManager::class); Chris@17: $this->assertInstanceOf(Entry::class, $bridge->get('Atom\Entry')); Chris@17: // Ensure that the container is checked first. Chris@17: $container->set('atomentry', $service); Chris@17: $this->assertEquals($service, $bridge->get('Atom\Entry')); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::setContainer Chris@17: * @covers ::setStandalone Chris@0: * @covers ::has Chris@0: */ Chris@0: public function testHas() { Chris@0: $service = new \stdClass(); Chris@0: $service->value = 'myvalue'; Chris@0: $container = new ContainerBuilder(); Chris@0: $container->set('foo', $service); Chris@0: $bridge = new ZfExtensionManagerSfContainer(); Chris@0: $bridge->setContainer($container); Chris@0: $this->assertTrue($bridge->has('foo')); Chris@0: $this->assertFalse($bridge->has('bar')); Chris@17: $this->assertFalse($bridge->has('Atom\Entry')); Chris@17: $bridge->setStandalone(StandaloneExtensionManager::class); Chris@17: $this->assertTrue($bridge->has('Atom\Entry')); Chris@17: } Chris@17: Chris@17: /** Chris@17: * @covers ::setStandalone Chris@17: */ Chris@17: public function testSetStandaloneException() { Chris@17: if (method_exists($this, 'expectException')) { Chris@17: $this->expectException(\RuntimeException::class); Chris@17: $this->expectExceptionMessage('Drupal\Tests\Component\Bridge\ZfExtensionManagerSfContainerTest must implement Zend\Feed\Reader\ExtensionManagerInterface or Zend\Feed\Writer\ExtensionManagerInterface'); Chris@17: } Chris@17: else { Chris@17: $this->setExpectedException(\RuntimeException::class, 'Drupal\Tests\Component\Bridge\ZfExtensionManagerSfContainerTest must implement Zend\Feed\Reader\ExtensionManagerInterface or Zend\Feed\Writer\ExtensionManagerInterface'); Chris@17: } Chris@17: $bridge = new ZfExtensionManagerSfContainer(); Chris@17: $bridge->setStandalone(static::class); Chris@17: } Chris@17: Chris@17: /** Chris@17: * @covers ::get Chris@17: */ Chris@17: public function testGetContainerException() { Chris@17: if (method_exists($this, 'expectException')) { Chris@17: $this->expectException(ServiceNotFoundException::class); Chris@17: $this->expectExceptionMessage('You have requested a non-existent service "test.foo".'); Chris@17: } Chris@17: else { Chris@17: $this->setExpectedException(ServiceNotFoundException::class, 'You have requested a non-existent service "test.foo".'); Chris@17: } Chris@17: $container = new ContainerBuilder(); Chris@17: $bridge = new ZfExtensionManagerSfContainer('test.'); Chris@17: $bridge->setContainer($container); Chris@17: $bridge->setStandalone(StandaloneExtensionManager::class); Chris@17: $bridge->get('foo'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::__construct Chris@0: * @covers ::has Chris@0: * @covers ::get Chris@0: */ Chris@0: public function testPrefix() { Chris@0: $service = new \stdClass(); Chris@0: $service->value = 'myvalue'; Chris@0: $container = new ContainerBuilder(); Chris@0: $container->set('foo.bar', $service); Chris@0: $bridge = new ZfExtensionManagerSfContainer('foo.'); Chris@0: $bridge->setContainer($container); Chris@0: $this->assertTrue($bridge->has('bar')); Chris@0: $this->assertFalse($bridge->has('baz')); Chris@0: $this->assertEquals($service, $bridge->get('bar')); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::canonicalizeName Chris@0: * @dataProvider canonicalizeNameProvider Chris@0: */ Chris@0: public function testCanonicalizeName($name, $canonical_name) { Chris@0: $service = new \stdClass(); Chris@0: $service->value = 'myvalue'; Chris@0: $container = new ContainerBuilder(); Chris@0: $container->set($canonical_name, $service); Chris@0: $bridge = new ZfExtensionManagerSfContainer(); Chris@0: $bridge->setContainer($container); Chris@0: $this->assertTrue($bridge->has($name)); Chris@0: $this->assertEquals($service, $bridge->get($name)); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Data provider for testReverseProxyEnabled. Chris@0: * Chris@0: * Replacements: Chris@0: * array('-' => '', '_' => '', ' ' => '', '\\' => '', '/' => '') Chris@0: */ Chris@0: public function canonicalizeNameProvider() { Chris@0: return [ Chris@0: [ Chris@0: 'foobar', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo-bar', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo_bar', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo bar', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo\\bar', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo/bar', Chris@0: 'foobar', Chris@0: ], Chris@0: // There is also a strtolower in canonicalizeName. Chris@0: [ Chris@0: 'Foo/bAr', Chris@0: 'foobar', Chris@0: ], Chris@0: [ Chris@0: 'foo/-_\\ bar', Chris@0: 'foobar', Chris@0: ], Chris@0: ]; Chris@0: } Chris@0: Chris@0: }