1818use Symfony \Component \Form \Extension \Validator \Constraints \Form ;
1919use Symfony \Component \Form \Extension \Validator \Constraints \FormValidator ;
2020use Symfony \Component \Form \SubmitButtonBuilder ;
21+ use Symfony \Component \Validator \Constraints \GroupSequence ;
2122use Symfony \Component \Validator \Constraints \NotNull ;
2223use Symfony \Component \Validator \Constraints \NotBlank ;
2324use Symfony \Component \Validator \Tests \Constraints \AbstractConstraintValidatorTest ;
@@ -70,8 +71,7 @@ public function testValidate()
7071 ->setData ($ object )
7172 ->getForm ();
7273
73- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
74- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
74+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
7575
7676 $ this ->validator ->validate ($ form , new Form ());
7777
@@ -93,12 +93,11 @@ public function testValidateConstraints()
9393 ->getForm ();
9494
9595 // First default constraints
96- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
97- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
96+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
9897
9998 // Then custom constraints
100- $ this ->expectValidateValueAt (2 , 'data ' , $ object , $ constraint1 , 'group1 ' );
101- $ this ->expectValidateValueAt (3 , 'data ' , $ object , $ constraint2 , 'group2 ' );
99+ $ this ->expectValidateValueAt (1 , 'data ' , $ object , $ constraint1 , 'group1 ' );
100+ $ this ->expectValidateValueAt (2 , 'data ' , $ object , $ constraint2 , 'group2 ' );
102101
103102 $ this ->validator ->validate ($ form , new Form ());
104103
@@ -132,7 +131,7 @@ public function testMissingConstraintIndex()
132131 $ form = new FormBuilder ('name ' , '\stdClass ' , $ this ->dispatcher , $ this ->factory );
133132 $ form = $ form ->setData ($ object )->getForm ();
134133
135- $ this ->expectValidateAt (0 , 'data ' , $ object , 'Default ' );
134+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'Default ' ) );
136135
137136 $ this ->validator ->validate ($ form , new Form ());
138137
@@ -344,15 +343,29 @@ function () { throw new TransformationFailedException(); }
344343 }
345344
346345 public function testHandleCallbackValidationGroups ()
346+ {
347+ $ object = $ this ->getMockBuilder ('\stdClass ' )->getMock ();
348+ $ options = array ('validation_groups ' => new GroupSequence (array ('group1 ' , 'group2 ' )));
349+ $ form = $ this ->getBuilder ('name ' , '\stdClass ' , $ options )
350+ ->setData ($ object )
351+ ->getForm ();
352+
353+ $ this ->expectValidateAt (0 , 'data ' , $ object , new GroupSequence (array ('group1 ' , 'group2 ' )));
354+
355+ $ this ->validator ->validate ($ form , new Form ());
356+
357+ $ this ->assertNoViolation ();
358+ }
359+
360+ public function testHandleGroupSequenceValidationGroups ()
347361 {
348362 $ object = $ this ->getMockBuilder ('\stdClass ' )->getMock ();
349363 $ options = array ('validation_groups ' => array ($ this , 'getValidationGroups ' ));
350364 $ form = $ this ->getBuilder ('name ' , '\stdClass ' , $ options )
351365 ->setData ($ object )
352366 ->getForm ();
353367
354- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
355- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
368+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
356369
357370 $ this ->validator ->validate ($ form , new Form ());
358371
@@ -367,7 +380,7 @@ public function testDontExecuteFunctionNames()
367380 ->setData ($ object )
368381 ->getForm ();
369382
370- $ this ->expectValidateAt (0 , 'data ' , $ object , 'header ' );
383+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'header ' ) );
371384
372385 $ this ->validator ->validate ($ form , new Form ());
373386
@@ -384,8 +397,7 @@ public function testHandleClosureValidationGroups()
384397 ->setData ($ object )
385398 ->getForm ();
386399
387- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
388- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
400+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
389401
390402 $ this ->validator ->validate ($ form , new Form ());
391403
@@ -411,7 +423,7 @@ public function testUseValidationGroupOfClickedButton()
411423
412424 $ parent ->submit (array ('name ' => $ object , 'submit ' => '' ));
413425
414- $ this ->expectValidateAt (0 , 'data ' , $ object , 'button_group ' );
426+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'button_group ' ) );
415427
416428 $ this ->validator ->validate ($ form , new Form ());
417429
@@ -437,7 +449,7 @@ public function testDontUseValidationGroupOfUnclickedButton()
437449
438450 $ form ->setData ($ object );
439451
440- $ this ->expectValidateAt (0 , 'data ' , $ object , 'form_group ' );
452+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'form_group ' ) );
441453
442454 $ this ->validator ->validate ($ form , new Form ());
443455
@@ -461,7 +473,7 @@ public function testUseInheritedValidationGroup()
461473
462474 $ form ->setData ($ object );
463475
464- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group ' );
476+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'group ' ) );
465477
466478 $ this ->validator ->validate ($ form , new Form ());
467479
@@ -485,8 +497,7 @@ public function testUseInheritedCallbackValidationGroup()
485497
486498 $ form ->setData ($ object );
487499
488- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
489- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
500+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
490501
491502 $ this ->validator ->validate ($ form , new Form ());
492503
@@ -512,8 +523,7 @@ public function testUseInheritedClosureValidationGroup()
512523
513524 $ form ->setData ($ object );
514525
515- $ this ->expectValidateAt (0 , 'data ' , $ object , 'group1 ' );
516- $ this ->expectValidateAt (1 , 'data ' , $ object , 'group2 ' );
526+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ('group1 ' , 'group2 ' ));
517527
518528 $ this ->validator ->validate ($ form , new Form ());
519529
@@ -527,7 +537,7 @@ public function testAppendPropertyPath()
527537 ->setData ($ object )
528538 ->getForm ();
529539
530- $ this ->expectValidateAt (0 , 'data ' , $ object , 'Default ' );
540+ $ this ->expectValidateAt (0 , 'data ' , $ object , array ( 'Default ' ) );
531541
532542 $ this ->validator ->validate ($ form , new Form ());
533543
0 commit comments