public function testGenerateViewHelpers() { $config = (new Module())->getConfig(); $helperPluginManager = new HelperPluginManager(); $helperPluginManager->setServiceLocator(new ServiceManager()); $filterManager = new FilterPluginManager(); $basePath = $helperPluginManager->get('basePath'); $basePath->setBasePath('/assets'); $basePathFilter = new BasePathFilter($basePath); $filterManager->setService('basePath', $basePathFilter); $cacheBusterFilter = new CacheBusterFilter(__DIR__ . '/_files'); $filterManager->setService('cacheBuster', $cacheBusterFilter); $generator = new ViewHelperGenerator($filterManager, $helperPluginManager, $config['con-layout']['view_helpers']); $renderer = new PhpRenderer(); $renderer->setHelperPluginManager($helperPluginManager); /* @var $headLink HeadLink */ $headLink = $helperPluginManager->get('headLink'); $headLinkProxy = new HeadLinkProxy($headLink); $helperPluginManager->setService(get_class($headLinkProxy), $headLinkProxy); /* @var $headScript HeadScript */ $headScript = $helperPluginManager->get('headScript'); $headScriptProxy = new HeadScriptProxy($headScript); $helperPluginManager->setService(get_class($headScriptProxy), $headScriptProxy); /* @var $doctype Doctype */ $doctype = $helperPluginManager->get('doctype'); $doctype('HTML5'); /* @var $headTitle HeadTitle */ $headTitle = $helperPluginManager->get('headTitle'); $headTitleProxy = new HeadTitleProxy($headTitle); $helperPluginManager->setService(get_class($headTitleProxy), $headTitleProxy); /* @var $headMeta HeadMeta */ $headMeta = $helperPluginManager->get('headMeta'); $headMetaProxy = new HeadMetaProxy($headMeta); $helperPluginManager->setService(get_class($headMetaProxy), $headMetaProxy); $headMeta->setView($renderer); $generator->generate($this->getLayoutStructure()); foreach (['/assets/css/test.css', '/assets/css/main.css'] as $expected) { $this->assertContains($expected, $headLink->toString()); } foreach (['jquery.min.js', 'jquery-ui.min.js'] as $expected) { $this->assertContains($expected, $headScript->toString()); } $this->assertEquals('<!DOCTYPE html>', (string) $doctype); $headTitle->setSeparator(' | '); $expected = 'First | My Title | Another Title'; $this->assertContains($expected, $headTitle->toString()); $contains = ['charset="utf8"', 'name="description" content="My description"', 'name="keywords" content="keyword1, keyword2, keyword3"']; foreach ($contains as $expected) { $this->assertContains($expected, $headMeta->toString()); } }
/** * @depends testCreatesInputFilterInstance */ public function testUsesConfiguredValidationAndFilterManagerServicesWhenCreatingInputFilter() { $filters = new FilterPluginManager(); $filter = function ($value) { }; $filters->setService('foo', $filter); $validators = new ValidatorPluginManager(); $validator = $this->getMock('Zend\\Validator\\ValidatorInterface'); $validators->setService('foo', $validator); $this->services->setService('FilterManager', $filters); $this->services->setService('ValidatorManager', $validators); $this->services->setService('Config', array('input_filter_specs' => array('filter' => array('input' => array('name' => 'input', 'required' => true, 'filters' => array(array('name' => 'foo')), 'validators' => array(array('name' => 'foo'))))))); $inputFilter = $this->factory->createServiceWithName($this->filters, 'filter', 'filter'); $this->assertTrue($inputFilter->has('input')); $input = $inputFilter->get('input'); $filterChain = $input->getFilterChain(); $this->assertSame($filters, $filterChain->getPluginManager()); $this->assertEquals(1, count($filterChain)); $this->assertSame($filter, $filterChain->plugin('foo')); $this->assertEquals(1, count($filterChain)); $validatorChain = $input->getvalidatorChain(); $this->assertSame($validators, $validatorChain->getPluginManager()); $this->assertEquals(1, count($validatorChain)); $this->assertSame($validator, $validatorChain->plugin('foo')); $this->assertEquals(1, count($validatorChain)); }