Example #1
1
 public function isValid(\Symfony\Component\Form\Form &$form)
 {
     $viewData = $form->getViewData();
     //pour le champ hidden allFieldsAreThere de Revision
     if (!is_object($viewData) && 'allFieldsAreThere' == $form->getName()) {
         return true;
     }
     if ($viewData instanceof Revision) {
         /** @var DataField $dataField */
         $dataField = $viewData->getDatafield();
     } elseif ($viewData instanceof DataField) {
         /** @var DataField $dataField */
         $dataField = $viewData;
     } else {
         throw new \Exception("Unforeseen type of viewData");
     }
     if ($dataField->getFieldType() !== null && $dataField->getFieldType()->getType() !== null) {
         $dataFieldTypeClassName = $dataField->getFieldType()->getType();
         /** @var DataFieldType $dataFieldType */
         $dataFieldType = new $dataFieldTypeClassName();
     }
     $isValid = true;
     if (isset($dataFieldType) && $dataFieldType->isContainer()) {
         //If datafield is container or type is null => Container => Recursive
         $formChildren = $form->all();
         foreach ($formChildren as $child) {
             if ($child instanceof \Symfony\Component\Form\Form) {
                 $tempIsValid = $this->isValid($child);
                 //Recursive
                 $isValid = $isValid && $tempIsValid;
             }
         }
         if (!$isValid) {
             $form->addError(new FormError("At least one child is not valid!"));
         }
     }
     //   		$isValid = $isValid && $dataFieldType->isValid($dataField);
     if (isset($dataFieldType) && !$dataFieldType->isValid($dataField)) {
         $isValid = false;
         $form->addError(new FormError("This Field is not valid! " . $dataField->getMessages()[0]));
     }
     return $isValid;
 }
 public function testRequestWithValidJsonShouldPopulateForm()
 {
     $request = $this->getRequest('{ "name": "test1" }');
     $this->form->handleRequest($request);
     $this->assertEquals(['name' => 'test1', 'lastname' => null], $this->form->getData());
     $this->assertEquals(['name' => 'test1', 'lastname' => null], $this->form->getNormData());
     $this->assertEquals(['name' => 'test1', 'lastname' => null], $this->form->getViewData());
 }
Example #3
0
 public function testViewDataMayBeArrayAccessIfDataClassIsNull()
 {
     $arrayAccess = $this->getMock('\\ArrayAccess');
     $config = new FormConfigBuilder('name', null, $this->dispatcher);
     $config->addViewTransformer(new FixedDataTransformer(array('' => '', 'foo' => $arrayAccess)));
     $form = new Form($config);
     $form->setData('foo');
     $this->assertSame($arrayAccess, $form->getViewData());
 }
 private function assertForm(Form $form)
 {
     static::assertTrue($form->isSynchronized());
     static::assertSame((string) $this->time, $form->getViewData());
 }