public function testReset() { $foo = $this->getMock('JMS\\TranslationBundle\\Translation\\ExtractorInterface'); $logger = new NullLogger(); $extractor = new FileExtractor(new \Twig_Environment(), $logger, array()); $extractor->setExcludedNames(array('foo', 'bar')); $extractor->setExcludedDirs(array('baz')); $manager = $this->getManager($extractor, array('foo' => $foo)); $manager->setEnabledExtractors(array('foo' => true)); $manager->setDirectories(array('/')); $managerReflection = new \ReflectionClass($manager); $extractorReflection = new \ReflectionClass($extractor); $enabledExtractorsProperty = $managerReflection->getProperty('enabledExtractors'); $enabledExtractorsProperty->setAccessible(true); $directoriesProperty = $managerReflection->getProperty('directories'); $directoriesProperty->setAccessible(true); $excludedNamesProperty = $extractorReflection->getProperty('excludedNames'); $excludedNamesProperty->setAccessible(true); $excludedDirsProperty = $extractorReflection->getProperty('excludedDirs'); $excludedDirsProperty->setAccessible(true); $this->assertEquals(array('foo' => true), $enabledExtractorsProperty->getValue($manager)); $this->assertEquals(array('/'), $directoriesProperty->getValue($manager)); $this->assertEquals(array('foo', 'bar'), $excludedNamesProperty->getValue($extractor)); $this->assertEquals(array('baz'), $excludedDirsProperty->getValue($extractor)); $manager->reset(); $this->assertEquals(array(), $enabledExtractorsProperty->getValue($manager)); $this->assertEquals(array(), $directoriesProperty->getValue($manager)); $this->assertEquals(array(), $excludedNamesProperty->getValue($extractor)); $this->assertEquals(array(), $excludedDirsProperty->getValue($extractor)); }
private function extract($directory) { $twig = new \Twig_Environment(); $twig->addExtension(new SymfonyTranslationExtension($translator = new IdentityTranslator(new MessageSelector()))); $twig->addExtension(new TranslationExtension($translator)); $docParser = new DocParser(); $docParser->setImports(array('desc' => 'JMS\\TranslationBundle\\Annotation\\Desc', 'meaning' => 'JMS\\TranslationBundle\\Annotation\\Meaning', 'ignore' => 'JMS\\TranslationBundle\\Annotation\\Ignore')); $docParser->setIgnoreNotImportedAnnotations(true); $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())); $extractor = new FileExtractor($twig, new NullLogger(), array(new DefaultPhpFileExtractor($docParser), new TranslationContainerExtractor(), new TwigFileExtractor($twig), new ValidationExtractor($factory), new FormExtractor($docParser))); $extractor->setDirectory($directory); return $extractor->extract(); }
private function extract($directory) { $twig = new \Twig_Environment(); $twig->addExtension(new SymfonyTranslationExtension($translator = new IdentityTranslator(new MessageSelector()))); $twig->addExtension(new TranslationExtension($translator)); $loader = new \Twig_Loader_Filesystem(realpath(__DIR__ . "/Fixture/SimpleTest/Resources/views/")); $twig->setLoader($loader); $docParser = new DocParser(); $docParser->setImports(array('desc' => 'JMS\\TranslationBundle\\Annotation\\Desc', 'meaning' => 'JMS\\TranslationBundle\\Annotation\\Meaning', 'ignore' => 'JMS\\TranslationBundle\\Annotation\\Ignore')); $docParser->setIgnoreNotImportedAnnotations(true); //use correct factory class depending on whether using Symfony 2 or 3 if (class_exists('Symfony\\Component\\Validator\\Mapping\\Factory\\LazyLoadingMetadataFactory')) { $metadataFactoryClass = 'Symfony\\Component\\Validator\\Mapping\\Factory\\LazyLoadingMetadataFactory'; } else { $metadataFactoryClass = 'Symfony\\Component\\Validator\\Mapping\\ClassMetadataFactory'; } $factory = new $metadataFactoryClass(new AnnotationLoader(new AnnotationReader())); $extractor = new FileExtractor($twig, new NullLogger(), array(new DefaultPhpFileExtractor($docParser), new TranslationContainerExtractor(), new TwigFileExtractor($twig), new ValidationExtractor($factory), new FormExtractor($docParser))); $extractor->setDirectory($directory); return $extractor->extract(); }