@@ -221,4 +221,43 @@ public function testPrototypeSetNotRequired()
221221 $ this ->assertFalse ($ form ->createView ()->vars ['required ' ], 'collection is not required ' );
222222 $ this ->assertFalse ($ form ->createView ()->vars ['prototype ' ]->vars ['required ' ], '"prototype" should not be required ' );
223223 }
224+
225+ public function testPrototypeSetNotRequiredIfParentNotRequired ()
226+ {
227+ $ child = $ this ->factory ->create ('collection ' , array (), array (
228+ 'type ' => 'file ' ,
229+ 'allow_add ' => true ,
230+ 'prototype ' => true ,
231+ 'prototype_name ' => '__test__ ' ,
232+ ));
233+
234+ $ parent = $ this ->factory ->create ('form ' , array (), array (
235+ 'required ' => false ,
236+ ));
237+
238+ $ child ->setParent ($ parent );
239+ $ this ->assertFalse ($ parent ->createView ()->vars ['required ' ], 'Parent is not required ' );
240+ $ this ->assertFalse ($ child ->createView ()->vars ['required ' ], 'Child is not required ' );
241+ $ this ->assertFalse ($ child ->createView ()->vars ['prototype ' ]->vars ['required ' ], '"Prototype" should not be required ' );
242+ }
243+
244+ public function testPrototypeSetNotRequiredIfParentNotRequiredAndChildRequired ()
245+ {
246+ $ child = $ this ->factory ->create ('collection ' , array (), array (
247+ 'type ' => 'file ' ,
248+ 'allow_add ' => true ,
249+ 'prototype ' => true ,
250+ 'prototype_name ' => '__test__ ' ,
251+ 'required ' => true
252+ ));
253+
254+ $ parent = $ this ->factory ->create ('form ' , array (), array (
255+ 'required ' => false ,
256+ ));
257+
258+ $ child ->setParent ($ parent );
259+ $ this ->assertFalse ($ parent ->createView ()->vars ['required ' ], 'Parent is not required ' );
260+ $ this ->assertFalse ($ child ->createView ()->vars ['required ' ], 'Child is not required ' );
261+ $ this ->assertFalse ($ child ->createView ()->vars ['prototype ' ]->vars ['required ' ], '"Prototype" should not be required ' );
262+ }
224263}
0 commit comments