@@ -704,151 +704,6 @@ public function testCauseForNotAllowedExtraFieldsIsTheFormConstraint()
704704$ this ->assertSame ($ constraint ,$ context ->getViolations ()->get (0 )->getConstraint ());
705705 }
706706
707- public function testNonCompositeConstraintValidatedOnce ()
708- {
709- $ form =$ this
710- ->getBuilder ('form ' ,null , [
711- 'constraints ' => [new NotBlank (['groups ' => ['foo ' ,'bar ' ]])],
712- 'validation_groups ' => ['foo ' ,'bar ' ],
713- ])
714- ->setCompound (false )
715- ->getForm ();
716- $ form ->submit ('' );
717-
718- $ context =new ExecutionContext (Validation::createValidator (),$ form ,new IdentityTranslator ());
719- $ this ->validator ->initialize ($ context );
720- $ this ->validator ->validate ($ form ,new Form ());
721-
722- $ this ->assertCount (1 ,$ context ->getViolations ());
723- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[0 ]->getMessage ());
724- $ this ->assertSame ('data ' ,$ context ->getViolations ()[0 ]->getPropertyPath ());
725- }
726-
727- public function testCompositeConstraintValidatedInEachGroup ()
728- {
729- $ form =$ this ->getBuilder ('form ' ,null , [
730- 'constraints ' => [
731- new Collection ([
732- 'field1 ' =>new NotBlank ([
733- 'groups ' => ['field1 ' ],
734- ]),
735- 'field2 ' =>new NotBlank ([
736- 'groups ' => ['field2 ' ],
737- ]),
738- ]),
739- ],
740- 'validation_groups ' => ['field1 ' ,'field2 ' ],
741- ])
742- ->setData ([])
743- ->setCompound (true )
744- ->setDataMapper (new PropertyPathMapper ())
745- ->getForm ();
746- $ form ->add ($ this ->getForm ('field1 ' ));
747- $ form ->add ($ this ->getForm ('field2 ' ));
748- $ form ->submit ([
749- 'field1 ' =>'' ,
750- 'field2 ' =>'' ,
751- ]);
752-
753- $ context =new ExecutionContext (Validation::createValidator (),$ form ,new IdentityTranslator ());
754- $ this ->validator ->initialize ($ context );
755- $ this ->validator ->validate ($ form ,new Form ());
756-
757- $ this ->assertCount (2 ,$ context ->getViolations ());
758- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[0 ]->getMessage ());
759- $ this ->assertSame ('data[field1] ' ,$ context ->getViolations ()[0 ]->getPropertyPath ());
760- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[1 ]->getMessage ());
761- $ this ->assertSame ('data[field2] ' ,$ context ->getViolations ()[1 ]->getPropertyPath ());
762- }
763-
764- public function testCompositeConstraintValidatedInSequence ()
765- {
766- $ form =$ this ->getCompoundForm ([], [
767- 'constraints ' => [
768- new Collection ([
769- 'field1 ' =>new NotBlank ([
770- 'groups ' => ['field1 ' ],
771- ]),
772- 'field2 ' =>new NotBlank ([
773- 'groups ' => ['field2 ' ],
774- ]),
775- ]),
776- ],
777- 'validation_groups ' =>new GroupSequence (['field1 ' ,'field2 ' ]),
778- ])
779- ->add ($ this ->getForm ('field1 ' ))
780- ->add ($ this ->getForm ('field2 ' ))
781- ;
782-
783- $ form ->submit ([
784- 'field1 ' =>'' ,
785- 'field2 ' =>'' ,
786- ]);
787-
788- $ context =new ExecutionContext (Validation::createValidator (),$ form ,new IdentityTranslator ());
789- $ this ->validator ->initialize ($ context );
790- $ this ->validator ->validate ($ form ,new Form ());
791-
792- $ this ->assertCount (1 ,$ context ->getViolations ());
793- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[0 ]->getMessage ());
794- $ this ->assertSame ('data[field1] ' ,$ context ->getViolations ()[0 ]->getPropertyPath ());
795- }
796-
797- public function testCascadeValidationToChildFormsUsingPropertyPaths ()
798- {
799- $ form =$ this ->getCompoundForm ([], [
800- 'validation_groups ' => ['group1 ' ,'group2 ' ],
801- ])
802- ->add ('field1 ' ,null , [
803- 'constraints ' => [new NotBlank (['groups ' =>'group1 ' ])],
804- 'property_path ' =>'[foo] ' ,
805- ])
806- ->add ('field2 ' ,null , [
807- 'constraints ' => [new NotBlank (['groups ' =>'group2 ' ])],
808- 'property_path ' =>'[bar] ' ,
809- ])
810- ;
811-
812- $ form ->submit ([
813- 'field1 ' =>'' ,
814- 'field2 ' =>'' ,
815- ]);
816-
817- $ context =new ExecutionContext (Validation::createValidator (),$ form ,new IdentityTranslator ());
818- $ this ->validator ->initialize ($ context );
819- $ this ->validator ->validate ($ form ,new Form ());
820-
821- $ this ->assertCount (2 ,$ context ->getViolations ());
822- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[0 ]->getMessage ());
823- $ this ->assertSame ('children[field1].data ' ,$ context ->getViolations ()[0 ]->getPropertyPath ());
824- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[1 ]->getMessage ());
825- $ this ->assertSame ('children[field2].data ' ,$ context ->getViolations ()[1 ]->getPropertyPath ());
826- }
827-
828- public function testCascadeValidationToChildFormsUsingPropertyPathsValidatedInSequence ()
829- {
830- $ form =$ this ->getCompoundForm ([], [
831- 'validation_groups ' =>new GroupSequence (['group1 ' ,'group2 ' ]),
832- ])
833- ->add ('field1 ' ,null , [
834- 'constraints ' => [new NotBlank (['groups ' =>'group1 ' ])],
835- 'property_path ' =>'[foo] ' ,
836- ])
837- ;
838-
839- $ form ->submit ([
840- 'field1 ' =>'' ,
841- ]);
842-
843- $ context =new ExecutionContext (Validation::createValidator (),$ form ,new IdentityTranslator ());
844- $ this ->validator ->initialize ($ context );
845- $ this ->validator ->validate ($ form ,new Form ());
846-
847- $ this ->assertCount (1 ,$ context ->getViolations ());
848- $ this ->assertSame ('This value should not be blank. ' ,$ context ->getViolations ()[0 ]->getMessage ());
849- $ this ->assertSame ('children[field1].data ' ,$ context ->getViolations ()[0 ]->getPropertyPath ());
850- }
851-
852707protected function createValidator ()
853708 {
854709return new FormValidator ();