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