示例#1
0
 protected function setUp()
 {
     $this->controller = $controller = $this->getMock("Thelia\\Controller\\BaseController", ["getParser", "render", "renderRaw"]);
     /**
      * Reset static :: $formDefinition on controllers
      */
     $this->definitionReflection = $reflection = (new \ReflectionObject($this->controller))->getProperty('formDefinition');
     $reflection->setAccessible(true);
     $this->formDefinition = $reflection->getValue();
     $reflection->setValue(null);
     /**
      * Add the test type to the factory and
      * the form to the container
      */
     $factory = new FormFactoryBuilder();
     $factory->addExtension(new CoreExtension());
     $factory->addType(new TestType());
     /**
      * Construct the container
      */
     $container = new Container();
     $container->set("thelia.form_factory_builder", $factory);
     $container->set("thelia.translator", new Translator($container));
     $container->setParameter("thelia.parser.forms", array("test_form" => "Thelia\\Tests\\Resources\\Form\\TestForm"));
     $request = new Request();
     $request->setSession(new Session(new MockArraySessionStorage()));
     $container->set("request", $request);
     $container->set("thelia.forms.validator_builder", new ValidatorBuilder());
     $container->set("event_dispatcher", new EventDispatcher());
     $this->controller->setContainer($container);
 }
 protected function setUp()
 {
     /**
      * Add the test type to the factory and
      * the form to the container
      */
     $factory = new FormFactoryBuilder();
     $factory->addExtension(new CoreExtension());
     $factory->addType(new TestType());
     /**
      * Construct the container
      */
     $container = new Container();
     $container->set("thelia.form_factory_builder", $factory);
     $container->set("thelia.translator", new Translator($container));
     $container->setParameter("thelia.parser.forms", $definition = array("test_form" => "Thelia\\Tests\\Resources\\Form\\TestForm"));
     $request = new Request();
     $requestStack = new RequestStack();
     $requestStack->push($request);
     $request->setSession(new Session(new MockArraySessionStorage()));
     $container->set("request", $request);
     $container->set("request_stack", $requestStack);
     $container->set("thelia.forms.validator_builder", new ValidatorBuilder());
     $container->set("event_dispatcher", new EventDispatcher());
     $this->factory = new TheliaFormFactory($requestStack, $container, $definition);
 }
 public function testAddType()
 {
     $factoryBuilder = new FormFactoryBuilder();
     $factoryBuilder->addType($this->type);
     $factory = $factoryBuilder->getFormFactory();
     $registry = $this->registry->getValue($factory);
     $extensions = $registry->getExtensions();
     $this->assertCount(1, $extensions);
     $this->assertTrue($extensions[0]->hasType(get_class($this->type)));
     $this->assertNull($extensions[0]->getTypeGuesser());
 }
 /**
  * @dataProvider dataTestParseWithoutEntity
  */
 public function testParseWithoutEntity($typeName, $expected)
 {
     $resolvedTypeFactory = new ResolvedFormTypeFactory();
     $formFactoryBuilder = new FormFactoryBuilder();
     $formFactoryBuilder->setResolvedTypeFactory($resolvedTypeFactory);
     $formFactoryBuilder->addExtension(new CoreExtension());
     $formFactoryBuilder->addTypeExtension(new DescriptionFormTypeExtension());
     $formFactoryBuilder->addType(new DependencyType(array('bar')));
     $formFactory = $formFactoryBuilder->getFormFactory();
     $formTypeParser = new FormTypeParser($formFactory, $entityToChoice = false);
     set_error_handler(array('Nelmio\\ApiDocBundle\\Tests\\WebTestCase', 'handleDeprecation'));
     trigger_error('test', E_USER_DEPRECATED);
     $output = $formTypeParser->parse($typeName);
     restore_error_handler();
     $this->assertEquals($expected, $output);
 }
示例#5
0
 public function testFormErrorsWithNonFormComponents()
 {
     if (!class_exists('Symfony\\Component\\Form\\Extension\\Core\\Type\\SubmitType')) {
         $this->markTestSkipped('Not using Symfony Form >= 2.3 with submit type');
     }
     $dispatcher = $this->getMock('Symfony\\Component\\EventDispatcher\\EventDispatcherInterface');
     $factoryBuilder = new FormFactoryBuilder();
     $factoryBuilder->addType(new \Symfony\Component\Form\Extension\Core\Type\SubmitType());
     $factoryBuilder->addType(new \Symfony\Component\Form\Extension\Core\Type\ButtonType());
     $factory = $factoryBuilder->getFormFactory();
     $formConfigBuilder = new \Symfony\Component\Form\FormConfigBuilder('foo', null, $dispatcher);
     $formConfigBuilder->setFormFactory($factory);
     $formConfigBuilder->setCompound(true);
     $formConfigBuilder->setDataMapper($this->getMock('Symfony\\Component\\Form\\DataMapperInterface'));
     $fooConfig = $formConfigBuilder->getFormConfig();
     $form = new Form($fooConfig);
     $form->add('save', 'submit');
     try {
         $this->serialize($form);
     } catch (\Exception $e) {
         $this->assertTrue(false, 'Serialization should not throw an exception');
     }
 }
 public function testFormErrorsWithNonFormComponents()
 {
     if (!class_exists(SubmitType::class)) {
         $this->markTestSkipped('Not using Symfony Form >= 2.3 with submit type');
     }
     $dispatcher = $this->createMock(EventDispatcherInterface::class);
     $factoryBuilder = new FormFactoryBuilder();
     $factoryBuilder->addType(new SubmitType());
     $factoryBuilder->addType(new ButtonType());
     $factory = $factoryBuilder->getFormFactory();
     $formConfigBuilder = new FormConfigBuilder('foo', null, $dispatcher);
     $formConfigBuilder->setFormFactory($factory);
     $formConfigBuilder->setCompound(true);
     $formConfigBuilder->setDataMapper($this->createMock(DataMapperInterface::class));
     $fooConfig = $formConfigBuilder->getFormConfig();
     $form = new Form($fooConfig);
     $form->add('save', method_exists(AbstractType::class, 'getBlockPrefix') ? SubmitType::class : 'submit');
     $this->serialize($form);
     $this->assertTrue(true);
     // Exception not thrown
 }