@@ -1146,6 +1146,78 @@ public function testRequiredUnless()
11461146 $ this ->assertSame ('The last field is required unless first is in taylor, sven. ' , $ v ->messages ()->first ('last ' ));
11471147 }
11481148
1149+ public function testProhibitedIf ()
1150+ {
1151+ $ trans = $ this ->getIlluminateArrayTranslator ();
1152+ $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'prohibited_if:first,taylor ' ]);
1153+ $ this ->assertTrue ($ v ->fails ());
1154+
1155+ $ trans = $ this ->getIlluminateArrayTranslator ();
1156+ $ v = new Validator ($ trans , ['first ' => 'taylor ' ], ['last ' => 'prohibited_if:first,taylor ' ]);
1157+ $ this ->assertTrue ($ v ->passes ());
1158+
1159+ $ trans = $ this ->getIlluminateArrayTranslator ();
1160+ $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'prohibited_if:first,taylor,jess ' ]);
1161+ $ this ->assertTrue ($ v ->fails ());
1162+
1163+ $ trans = $ this ->getIlluminateArrayTranslator ();
1164+ $ v = new Validator ($ trans , ['first ' => 'taylor ' ], ['last ' => 'prohibited_if:first,taylor,jess ' ]);
1165+ $ this ->assertTrue ($ v ->passes ());
1166+
1167+ $ trans = $ this ->getIlluminateArrayTranslator ();
1168+ $ v = new Validator ($ trans , ['foo ' => true , 'bar ' => 'baz ' ], ['bar ' => 'prohibited_if:foo,false ' ]);
1169+ $ this ->assertTrue ($ v ->passes ());
1170+
1171+ $ trans = $ this ->getIlluminateArrayTranslator ();
1172+ $ v = new Validator ($ trans , ['foo ' => true , 'bar ' => 'baz ' ], ['bar ' => 'prohibited_if:foo,true ' ]);
1173+ $ this ->assertTrue ($ v ->fails ());
1174+
1175+ // error message when passed multiple values (prohibited_if:foo,bar,baz)
1176+ $ trans = $ this ->getIlluminateArrayTranslator ();
1177+ $ trans ->addLines (['validation.prohibited_if ' => 'The :attribute field is prohibited when :other is :value. ' ], 'en ' );
1178+ $ v = new Validator ($ trans , ['first ' => 'jess ' , 'last ' => 'archer ' ], ['last ' => 'prohibited_if:first,taylor,jess ' ]);
1179+ $ this ->assertFalse ($ v ->passes ());
1180+ $ this ->assertSame ('The last field is prohibited when first is jess. ' , $ v ->messages ()->first ('last ' ));
1181+ }
1182+
1183+ public function testProhibitedUnless ()
1184+ {
1185+ $ trans = $ this ->getIlluminateArrayTranslator ();
1186+ $ v = new Validator ($ trans , ['first ' => 'jess ' , 'last ' => 'archer ' ], ['last ' => 'prohibited_unless:first,taylor ' ]);
1187+ $ this ->assertTrue ($ v ->fails ());
1188+
1189+ $ trans = $ this ->getIlluminateArrayTranslator ();
1190+ $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'prohibited_unless:first,taylor ' ]);
1191+ $ this ->assertTrue ($ v ->passes ());
1192+
1193+ $ trans = $ this ->getIlluminateArrayTranslator ();
1194+ $ v = new Validator ($ trans , ['first ' => 'jess ' ], ['last ' => 'prohibited_unless:first,taylor ' ]);
1195+ $ this ->assertTrue ($ v ->passes ());
1196+
1197+ $ trans = $ this ->getIlluminateArrayTranslator ();
1198+ $ v = new Validator ($ trans , ['first ' => 'taylor ' , 'last ' => 'otwell ' ], ['last ' => 'prohibited_unless:first,taylor,jess ' ]);
1199+ $ this ->assertTrue ($ v ->passes ());
1200+
1201+ $ trans = $ this ->getIlluminateArrayTranslator ();
1202+ $ v = new Validator ($ trans , ['first ' => 'jess ' , 'last ' => 'archer ' ], ['last ' => 'prohibited_unless:first,taylor,jess ' ]);
1203+ $ this ->assertTrue ($ v ->passes ());
1204+
1205+ $ trans = $ this ->getIlluminateArrayTranslator ();
1206+ $ v = new Validator ($ trans , ['foo ' => false , 'bar ' => 'baz ' ], ['bar ' => 'prohibited_unless:foo,false ' ]);
1207+ $ this ->assertTrue ($ v ->passes ());
1208+
1209+ $ trans = $ this ->getIlluminateArrayTranslator ();
1210+ $ v = new Validator ($ trans , ['foo ' => false , 'bar ' => 'baz ' ], ['bar ' => 'prohibited_unless:foo,true ' ]);
1211+ $ this ->assertTrue ($ v ->fails ());
1212+
1213+ // error message when passed multiple values (prohibited_unless:foo,bar,baz)
1214+ $ trans = $ this ->getIlluminateArrayTranslator ();
1215+ $ trans ->addLines (['validation.prohibited_unless ' => 'The :attribute field is prohibited unless :other is in :values. ' ], 'en ' );
1216+ $ v = new Validator ($ trans , ['first ' => 'tim ' , 'last ' => 'macdonald ' ], ['last ' => 'prohibitedUnless:first,taylor,jess ' ]);
1217+ $ this ->assertFalse ($ v ->passes ());
1218+ $ this ->assertSame ('The last field is prohibited unless first is in taylor, jess. ' , $ v ->messages ()->first ('last ' ));
1219+ }
1220+
11491221 public function testFailedFileUploads ()
11501222 {
11511223 $ trans = $ this ->getIlluminateArrayTranslator ();
0 commit comments