@@ -5509,55 +5509,101 @@ public function testValidateExclude()
55095509 $ trans = $ this ->getIlluminateArrayTranslator ();
55105510 $ v = new Validator ($ trans , [], ['name ' => 'exclude|required ' ]);
55115511 $ this ->assertTrue ($ v ->passes ());
5512+ $ this ->assertSame ([], $ v ->validated ());
55125513
55135514 $ v = new Validator ($ trans , ['name ' => '' ], ['name ' => 'exclude|required ' ]);
55145515 $ this ->assertTrue ($ v ->passes ());
5516+ $ this ->assertSame ([], $ v ->validated ());
55155517
55165518 $ v = new Validator ($ trans , ['name ' => 'foo ' ], ['name ' => 'exclude|integer ' ]);
55175519 $ this ->assertTrue ($ v ->passes ());
5520+ $ this ->assertSame ([], $ v ->validated ());
55185521
55195522 $ file = new SplFileInfo ('' );
55205523 $ v = new Validator ($ trans , ['name ' => $ file ], ['name ' => 'exclude|required ' ]);
55215524 $ this ->assertTrue ($ v ->passes ());
5525+ $ this ->assertSame ([], $ v ->validated ());
55225526
55235527 $ file = new SplFileInfo (__FILE__ );
55245528 $ v = new Validator ($ trans , ['name ' => $ file ], ['name ' => 'exclude|required ' ]);
55255529 $ this ->assertTrue ($ v ->passes ());
5530+ $ this ->assertSame ([], $ v ->validated ());
55265531
55275532 $ file = new SplFileInfo (__FILE__ );
55285533 $ file2 = new SplFileInfo (__FILE__ );
55295534 $ v = new Validator ($ trans , ['files ' => [$ file , $ file2 ]], ['files.0 ' => 'exclude|required ' , 'files.1 ' => 'exclude|required ' ]);
55305535 $ this ->assertTrue ($ v ->passes ());
5536+ $ this ->assertSame ([], $ v ->validated ());
55315537
55325538 $ v = new Validator ($ trans , ['files ' => [$ file , $ file2 ]], ['files ' => 'exclude|required ' ]);
55335539 $ this ->assertTrue ($ v ->passes ());
5540+ $ this ->assertSame ([], $ v ->validated ());
5541+ }
5542+
5543+ public function testExcludeBeforeADependentRule ()
5544+ {
5545+ $ validator = new Validator (
5546+ $ this ->getIlluminateArrayTranslator (),
5547+ [
5548+ 'profile_id ' => null ,
5549+ 'type ' => 'denied ' ,
5550+ ],
5551+ [
5552+ 'type ' => ['required ' , 'string ' , 'exclude ' ],
5553+ 'profile_id ' => ['nullable ' , 'required_if:type,profile ' , 'integer ' ],
5554+ ],
5555+ );
5556+
5557+ $ this ->assertTrue ($ validator ->passes ());
5558+ $ this ->assertSame (['profile_id ' => null ], $ validator ->validated ());
5559+
5560+ $ validator = new Validator (
5561+ $ this ->getIlluminateArrayTranslator (),
5562+ [
5563+ 'profile_id ' => null ,
5564+ 'type ' => 'profile ' ,
5565+ ],
5566+ [
5567+ 'type ' => ['required ' , 'string ' , 'exclude ' ],
5568+ 'profile_id ' => ['nullable ' , 'required_if:type,profile ' , 'integer ' ],
5569+ ],
5570+ );
5571+
5572+ $ this ->assertFalse ($ validator ->passes ());
5573+ $ this ->assertSame (['profile_id ' => ['validation.required_if ' ]], $ validator ->getMessageBag ()->getMessages ());
55345574 }
55355575
55365576 public function testValidateExcludeIf ()
55375577 {
55385578 $ trans = $ this ->getIlluminateArrayTranslator ();
55395579 $ v = new Validator ($ trans , ['first ' => 'taylor ' ], ['last ' => 'exclude_if:first,biz|required ' ]);
55405580 $ this ->assertTrue ($ v ->fails ());
5581+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
55415582
55425583 $ trans = $ this ->getIlluminateArrayTranslator ();
55435584 $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'exclude_if:first,taylor|integer ' ]);
55445585 $ this ->assertTrue ($ v ->passes ());
5586+ $ this ->assertSame ([], $ v ->validated ());
55455587
55465588 $ trans = $ this ->getIlluminateArrayTranslator ();
55475589 $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'exclude_if:first,taylor,dayle|integer ' ]);
55485590 $ this ->assertTrue ($ v ->passes ());
5591+ $ this ->assertSame ([], $ v ->validated ());
55495592
55505593 $ trans = $ this ->getIlluminateArrayTranslator ();
55515594 $ v = new Validator ($ trans , ['first ' => 'dayle ' , 'last ' => 'rees ' ], ['last ' => 'exclude_if:first,taylor,dayle|integer ' ]);
55525595 $ this ->assertTrue ($ v ->passes ());
5596+ $ this ->assertSame ([], $ v ->validated ());
55535597
55545598 $ trans = $ this ->getIlluminateArrayTranslator ();
55555599 $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'exclude_if:foo,true|required ' ]);
55565600 $ this ->assertTrue ($ v ->passes ());
5601+ $ this ->assertSame ([], $ v ->validated ());
55575602
55585603 $ trans = $ this ->getIlluminateArrayTranslator ();
55595604 $ v = new Validator ($ trans , ['foo ' => true ], ['bar ' => 'exclude_if:foo,false|required ' ]);
55605605 $ this ->assertTrue ($ v ->fails ());
5606+ $ this ->assertSame (['bar ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
55615607
55625608 // error message when passed multiple values (exclude_if:foo,bar,baz)
55635609 $ trans = $ this ->getIlluminateArrayTranslator ();
@@ -5572,22 +5618,27 @@ public function testValidateExcludeUnless()
55725618 $ trans = $ this ->getIlluminateArrayTranslator ();
55735619 $ v = new Validator ($ trans , ['first ' => 'sven ' ], ['last ' => 'exclude_unless:first,taylor|required ' ]);
55745620 $ this ->assertTrue ($ v ->passes ());
5621+ $ this ->assertSame ([], $ v ->validated ());
55755622
55765623 $ trans = $ this ->getIlluminateArrayTranslator ();
55775624 $ v = new Validator ($ trans , ['first ' => 'taylor ' ], ['last ' => 'exclude_unless:first,taylor|required ' ]);
55785625 $ this ->assertTrue ($ v ->fails ());
5626+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
55795627
55805628 $ trans = $ this ->getIlluminateArrayTranslator ();
55815629 $ v = new Validator ($ trans , ['first ' => 'sven ' , 'last ' => 'wittevrongel ' ], ['last ' => 'exclude_unless:first,taylor|integer ' ]);
55825630 $ this ->assertTrue ($ v ->passes ());
5631+ $ this ->assertSame ([], $ v ->validated ());
55835632
55845633 $ trans = $ this ->getIlluminateArrayTranslator ();
55855634 $ v = new Validator ($ trans , ['first ' => 'taylor ' ], ['last ' => 'exclude_unless:first,taylor,sven|required ' ]);
55865635 $ this ->assertTrue ($ v ->fails ());
5636+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
55875637
55885638 $ trans = $ this ->getIlluminateArrayTranslator ();
55895639 $ v = new Validator ($ trans , ['first ' => 'sven ' ], ['last ' => 'exclude_unless:first,taylor,sven|required ' ]);
55905640 $ this ->assertTrue ($ v ->fails ());
5641+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
55915642
55925643 // error message when passed multiple values (exclude_unless:foo,bar,baz)
55935644 $ trans = $ this ->getIlluminateArrayTranslator ();
@@ -5602,80 +5653,99 @@ public function testValidateExcludeWith()
56025653 $ trans = $ this ->getIlluminateArrayTranslator ();
56035654 $ v = new Validator ($ trans , [], ['last ' => 'exclude_with:first|required ' ]);
56045655 $ this ->assertFalse ($ v ->passes ());
5656+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
56055657
56065658 $ v = new Validator ($ trans , ['last ' => '' ], ['last ' => 'exclude_with:first|required ' ]);
56075659 $ this ->assertFalse ($ v ->passes ());
5660+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
56085661
56095662 $ v = new Validator ($ trans , ['first ' => 'biz ' ], ['last ' => 'exclude_with:first|required ' ]);
56105663 $ this ->assertTrue ($ v ->passes ());
5664+ $ this ->assertSame ([], $ v ->validated ());
56115665
56125666 $ v = new Validator ($ trans , ['first ' => 'Taylor ' , 'last ' => 'Otwell ' ], ['last ' => 'exclude_with:first|required ' ]);
56135667 $ this ->assertTrue ($ v ->passes ());
5668+ $ this ->assertSame ([], $ v ->validated ());
56145669
56155670 $ file = new SplFileInfo (__FILE__ );
56165671 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => '' ], ['foo ' => 'exclude_with:file|required ' ]);
56175672 $ this ->assertTrue ($ v ->passes ());
5673+ $ this ->assertSame ([], $ v ->validated ());
56185674
56195675 $ file = new SplFileInfo (__FILE__ );
56205676 $ foo = new SplFileInfo (__FILE__ );
56215677 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_with:file|required ' ]);
56225678 $ this ->assertTrue ($ v ->passes ());
5679+ $ this ->assertSame ([], $ v ->validated ());
56235680
56245681 $ file = new SplFileInfo (__FILE__ );
56255682 $ foo = new SplFileInfo ('' );
56265683 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_with:file|required ' ]);
56275684 $ this ->assertTrue ($ v ->passes ());
5685+ $ this ->assertSame ([], $ v ->validated ());
56285686 }
56295687
56305688 public function testValidateExcludeWithout ()
56315689 {
56325690 $ trans = $ this ->getIlluminateArrayTranslator ();
56335691 $ v = new Validator ($ trans , ['first ' => '' ], ['last ' => 'exclude_without:first|required ' ]);
56345692 $ this ->assertTrue ($ v ->passes ());
5693+ $ this ->assertSame ([], $ v ->validated ());
56355694
56365695 $ v = new Validator ($ trans , ['first ' => '' , 'last ' => '' ], ['last ' => 'exclude_without:first|required ' ]);
56375696 $ this ->assertTrue ($ v ->passes ());
5697+ $ this ->assertSame ([], $ v ->validated ());
56385698
56395699 $ v = new Validator ($ trans , ['first ' => 'bar ' ], ['last ' => 'exclude_without:first|required ' ]);
56405700 $ this ->assertFalse ($ v ->passes ());
5701+ $ this ->assertSame (['last ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
56415702
56425703 $ v = new Validator ($ trans , [], ['last ' => 'exclude_without:first|required ' ]);
56435704 $ this ->assertTrue ($ v ->passes ());
5705+ $ this ->assertSame ([], $ v ->validated ());
56445706
56455707 $ v = new Validator ($ trans , ['first ' => 'Taylor ' , 'last ' => 'Otwell ' ], ['last ' => 'exclude_without:first|required ' ]);
56465708 $ this ->assertTrue ($ v ->passes ());
5709+ $ this ->assertSame (['last ' => 'Otwell ' ], $ v ->validated ());
56475710
56485711 $ v = new Validator ($ trans , ['last ' => 'Otwell ' ], ['last ' => 'exclude_without:first ' ]);
56495712 $ this ->assertTrue ($ v ->passes ());
5713+ $ this ->assertSame ([], $ v ->validated ());
56505714
56515715 $ file = new SplFileInfo (__FILE__ );
56525716 $ v = new Validator ($ trans , ['file ' => $ file ], ['foo ' => 'exclude_without:file|required ' ]);
56535717 $ this ->assertFalse ($ v ->passes ());
5718+ $ this ->assertSame ([], $ v ->validated ());
56545719
56555720 $ file = new SplFileInfo (__FILE__ );
56565721 $ foo = new SplFileInfo ('' );
56575722 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_without:file|required ' ]);
56585723 $ this ->assertFalse ($ v ->passes ());
5724+ $ this ->assertSame (['foo ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
56595725
56605726 $ file = new SplFileInfo (__FILE__ );
56615727 $ foo = new SplFileInfo (__FILE__ );
56625728 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_without:file|required ' ]);
56635729 $ this ->assertTrue ($ v ->passes ());
5730+ $ this ->assertArrayHasKey ('foo ' , $ v ->validated ());
56645731
56655732 $ file = new SplFileInfo ('' );
56665733 $ foo = new SplFileInfo (__FILE__ );
56675734 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_without:file|required ' ]);
56685735 $ this ->assertTrue ($ v ->passes ());
5736+ $ this ->assertSame ([], $ v ->validated ());
56695737
56705738 $ file = new SplFileInfo (__FILE__ );
56715739 $ foo = new SplFileInfo ('' );
56725740 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_without:file|required ' ]);
56735741 $ this ->assertTrue ($ v ->fails ());
5742+ $ this ->assertSame (['foo ' => ['validation.required ' ]], $ v ->messages ()->toArray ());
56745743
56755744 $ file = new SplFileInfo ('' );
56765745 $ foo = new SplFileInfo ('' );
56775746 $ v = new Validator ($ trans , ['file ' => $ file , 'foo ' => $ foo ], ['foo ' => 'exclude_without:file ' ]);
56785747 $ this ->assertTrue ($ v ->passes ());
5748+ $ this ->assertSame ([], $ v ->validated ());
56795749 }
56805750
56815751 protected function getTranslator ()
0 commit comments