Skip to content
This repository was archived by the owner on Jan 21, 2020. It is now read-only.

Commit d0253ea

Browse files
committed
Test that provided layout without parameter will not override parameter in default layout
if a parameter $name is provided via addDefaultParam and then a $providedLayout is provided without specifying the $name parameter add the test to ensure that default parameter will not be overritten by the $providedLayout.
1 parent 63a9a74 commit d0253ea

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

test/ZendViewRendererTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,32 @@ public function testTemplateDefaultParameterIsAvailableInProvidedLayout()
294294
$this->assertContains($expected, $result, sprintf('Received %s', $result));
295295
}
296296

297+
public function testTemplateDefaultParameterWhenNotProvidedInLayoutViewModel()
298+
{
299+
$renderer = new ZendViewRenderer(null);
300+
$renderer->addPath(__DIR__ . '/TestAsset');
301+
$titleNotToBeOverriden = uniqid('ZendViewTitleNotToBeOverriden', true);
302+
$title = uniqid('ZendViewTitle', true);
303+
$name = uniqid('ZendViewName', true);
304+
$renderer->addDefaultParam('zendview-layout-variable', 'title', $titleNotToBeOverriden);
305+
306+
$layout = new ViewModel();
307+
$layout->setTemplate('zendview-layout-variable');
308+
$result = $renderer->render('zendview', ['name' => $name, 'layout' => $layout]);
309+
$this->assertContains($titleNotToBeOverriden, $result);
310+
$this->assertContains($name, $result);
311+
312+
$content = file_get_contents(__DIR__ . '/TestAsset/zendview.phtml');
313+
$content = str_replace('<?php echo $name ?>', $name, $content);
314+
$layout = file_get_contents(__DIR__ . '/TestAsset/zendview-layout-variable.phtml');
315+
$layout = str_replace('<?= $this->title ?>', $titleNotToBeOverriden, $layout);
316+
$layout = str_replace('<?= $this->content ?>' . PHP_EOL, $content, $layout);
317+
$this->assertContains($layout, $result);
318+
319+
$expected = sprintf('<title>Layout Page: %s</title>', $titleNotToBeOverriden);
320+
$this->assertContains($expected, $result, sprintf('Received %s', $result));
321+
}
322+
297323
/**
298324
* @group layout
299325
*/

0 commit comments

Comments
 (0)