@@ -246,6 +246,79 @@ public function testTemplateDefaultParameterIsNotAvailableInLayout()
246
246
$ this ->assertContains ($ expected , $ result , sprintf ('Received %s ' , $ result ));
247
247
}
248
248
249
+ public function testLayoutTemplateDefaultParameterIsAvailableInLayout ()
250
+ {
251
+ $ renderer = new ZendViewRenderer (null , 'zendview-layout-variable ' );
252
+ $ renderer ->addPath (__DIR__ . '/TestAsset ' );
253
+ $ title = uniqid ('ZendViewTitle ' , true );
254
+ $ name = uniqid ('ZendViewName ' , true );
255
+ $ renderer ->addDefaultParam ('zendview-layout-variable ' , 'title ' , $ title );
256
+ $ result = $ renderer ->render ('zendview ' , ['name ' => $ name ]);
257
+ $ this ->assertContains ($ title , $ result );
258
+ $ this ->assertContains ($ name , $ result );
259
+
260
+ $ content = file_get_contents (__DIR__ . '/TestAsset/zendview.phtml ' );
261
+ $ content = str_replace ('<?php echo $name ?> ' , $ name , $ content );
262
+ $ layout = file_get_contents (__DIR__ . '/TestAsset/zendview-layout-variable.phtml ' );
263
+ $ layout = str_replace ('<?= $this->title ?> ' , $ title , $ layout );
264
+ $ layout = str_replace ('<?= $this->content ?> ' . PHP_EOL , $ content , $ layout );
265
+ $ this ->assertContains ($ layout , $ result );
266
+
267
+ $ expected = sprintf ('<title>Layout Page: %s</title> ' , $ title );
268
+ $ this ->assertContains ($ expected , $ result , sprintf ('Received %s ' , $ result ));
269
+ }
270
+
271
+ public function testVariableInProvidedLayoutViewModelOverridesTemplateDefaultParameter ()
272
+ {
273
+ $ renderer = new ZendViewRenderer (null );
274
+ $ renderer ->addPath (__DIR__ . '/TestAsset ' );
275
+ $ titleToBeOverriden = uniqid ('ZendViewTitleToBeOverriden ' , true );
276
+ $ title = uniqid ('ZendViewTitle ' , true );
277
+ $ name = uniqid ('ZendViewName ' , true );
278
+ $ renderer ->addDefaultParam ('zendview-layout-variable ' , 'title ' , $ titleToBeOverriden );
279
+
280
+ $ layout = new ViewModel (['title ' => $ title ]);
281
+ $ layout ->setTemplate ('zendview-layout-variable ' );
282
+ $ result = $ renderer ->render ('zendview ' , ['name ' => $ name , 'layout ' => $ layout ]);
283
+ $ this ->assertContains ($ title , $ result );
284
+ $ this ->assertContains ($ name , $ result );
285
+
286
+ $ content = file_get_contents (__DIR__ . '/TestAsset/zendview.phtml ' );
287
+ $ content = str_replace ('<?php echo $name ?> ' , $ name , $ content );
288
+ $ layout = file_get_contents (__DIR__ . '/TestAsset/zendview-layout-variable.phtml ' );
289
+ $ layout = str_replace ('<?= $this->title ?> ' , $ title , $ layout );
290
+ $ layout = str_replace ('<?= $this->content ?> ' . PHP_EOL , $ content , $ layout );
291
+ $ this ->assertContains ($ layout , $ result );
292
+
293
+ $ expected = sprintf ('<title>Layout Page: %s</title> ' , $ title );
294
+ $ this ->assertContains ($ expected , $ result , sprintf ('Received %s ' , $ result ));
295
+ }
296
+
297
+ public function testTemplateDefaultParameterIsAvailableInLayoutProvidedWithViewModel ()
298
+ {
299
+ $ renderer = new ZendViewRenderer (null );
300
+ $ renderer ->addPath (__DIR__ . '/TestAsset ' );
301
+ $ title = uniqid ('ZendViewTitle ' , true );
302
+ $ name = uniqid ('ZendViewName ' , true );
303
+ $ renderer ->addDefaultParam ('zendview-layout-variable ' , 'title ' , $ title );
304
+
305
+ $ layout = new ViewModel ();
306
+ $ layout ->setTemplate ('zendview-layout-variable ' );
307
+ $ result = $ renderer ->render ('zendview ' , ['name ' => $ name , 'layout ' => $ layout ]);
308
+ $ this ->assertContains ($ title , $ result );
309
+ $ this ->assertContains ($ name , $ result );
310
+
311
+ $ content = file_get_contents (__DIR__ . '/TestAsset/zendview.phtml ' );
312
+ $ content = str_replace ('<?php echo $name ?> ' , $ name , $ content );
313
+ $ layout = file_get_contents (__DIR__ . '/TestAsset/zendview-layout-variable.phtml ' );
314
+ $ layout = str_replace ('<?= $this->title ?> ' , $ title , $ layout );
315
+ $ layout = str_replace ('<?= $this->content ?> ' . PHP_EOL , $ content , $ layout );
316
+ $ this ->assertContains ($ layout , $ result );
317
+
318
+ $ expected = sprintf ('<title>Layout Page: %s</title> ' , $ title );
319
+ $ this ->assertContains ($ expected , $ result , sprintf ('Received %s ' , $ result ));
320
+ }
321
+
249
322
/**
250
323
* @group layout
251
324
*/
0 commit comments