@@ -470,6 +470,60 @@ public function testCanCreateFormFromConcreteClassAndSpecifyCustomValidatorByNam
470
470
$ this ->assertTrue ($ found );
471
471
}
472
472
473
+ public function testCanCreateFormFromConcreteClassAndSpecifyCustomValidatorByNameAndSetinputFilterFactoryInConstructor ()
474
+ {
475
+ $ validatorManager = new \Zend \Validator \ValidatorPluginManager ($ this ->services );
476
+ $ validatorManager ->setInvokableClass ('baz ' , 'Zend\Validator\Digits ' );
477
+
478
+ $ defaultValidatorChain = new \Zend \Validator \ValidatorChain ();
479
+ $ defaultValidatorChain ->setPluginManager ($ validatorManager );
480
+
481
+ $ inputFilterFactory = new \Zend \InputFilter \Factory ();
482
+ $ inputFilterFactory ->setDefaultValidatorChain ($ defaultValidatorChain );
483
+
484
+ $ factory = new FormFactory (null , $ inputFilterFactory );
485
+
486
+ $ form = $ factory ->createForm ([
487
+ 'name ' => 'foo ' ,
488
+ 'factory ' => $ factory ,
489
+ 'input_filter ' => [
490
+ 'bar ' => [
491
+ 'name ' => 'bar ' ,
492
+ 'required ' => true ,
493
+ 'validators ' => [
494
+ [
495
+ 'name ' => 'baz ' ,
496
+ ],
497
+ ],
498
+ ],
499
+ ],
500
+ ]);
501
+
502
+ $ this ->assertInstanceOf ('Zend\Form\FormInterface ' , $ form );
503
+
504
+ $ inputFilter = $ form ->getInputFilter ();
505
+ $ this ->assertInstanceOf ('Zend\InputFilter\InputFilterInterface ' , $ inputFilter );
506
+
507
+ $ input = $ inputFilter ->get ('bar ' );
508
+ $ this ->assertInstanceOf ('Zend\InputFilter\Input ' , $ input );
509
+
510
+ $ validatorChain = $ input ->getValidatorChain ();
511
+ $ this ->assertInstanceOf ('Zend\Validator\ValidatorChain ' , $ validatorChain );
512
+
513
+ $ validatorArray = $ validatorChain ->getValidators ();
514
+ $ found = false ;
515
+ foreach ($ validatorArray as $ validator ) {
516
+ $ validatorInstance = $ validator ['instance ' ];
517
+ $ this ->assertInstanceOf ('Zend\Validator\ValidatorInterface ' , $ validatorInstance );
518
+
519
+ if ($ validatorInstance instanceof \Zend \Validator \Digits) {
520
+ $ found = true ;
521
+ break ;
522
+ }
523
+ }
524
+ $ this ->assertTrue ($ found );
525
+ }
526
+
473
527
public function testCanCreateFormWithHydratorAndInputFilterAndElementsAndFieldsets ()
474
528
{
475
529
$ form = $ this ->factory ->createForm ([
0 commit comments