Ejemplo n.º 1
0
 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));
 }