Skip to content

Commit 95dd269

Browse files
authored
Merge pull request #54 from akrabat/improve-layout-test
Add test for calling fetch() in a layout template
2 parents cb289bb + ab7b3f7 commit 95dd269

6 files changed

Lines changed: 35 additions & 33 deletions

File tree

tests/PhpRendererTest.php

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,27 @@ class PhpRendererTest extends PHPUnit_Framework_TestCase
1313
{
1414

1515
public function testRenderer() {
16-
$renderer = new \Slim\Views\PhpRenderer("tests/");
16+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
1717

1818
$headers = new Headers();
1919
$body = new Body(fopen('php://temp', 'r+'));
2020
$response = new Response(200, $headers, $body);
2121

22-
$newResponse = $renderer->render($response, "testTemplate.php", array("hello" => "Hi"));
22+
$newResponse = $renderer->render($response, "template.phtml", array("hello" => "Hi"));
2323

2424
$newResponse->getBody()->rewind();
2525

2626
$this->assertEquals("Hi", $newResponse->getBody()->getContents());
2727
}
2828

2929
public function testRenderConstructor() {
30-
$renderer = new \Slim\Views\PhpRenderer("tests");
30+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files");
3131

3232
$headers = new Headers();
3333
$body = new Body(fopen('php://temp', 'r+'));
3434
$response = new Response(200, $headers, $body);
3535

36-
$newResponse = $renderer->render($response, "testTemplate.php", array("hello" => "Hi"));
36+
$newResponse = $renderer->render($response, "template.phtml", array("hello" => "Hi"));
3737

3838
$newResponse->getBody()->rewind();
3939

@@ -42,23 +42,23 @@ public function testRenderConstructor() {
4242

4343
public function testAttributeMerging() {
4444

45-
$renderer = new \Slim\Views\PhpRenderer("tests/", [
45+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/", [
4646
"hello" => "Hello"
4747
]);
4848

4949
$headers = new Headers();
5050
$body = new Body(fopen('php://temp', 'r+'));
5151
$response = new Response(200, $headers, $body);
5252

53-
$newResponse = $renderer->render($response, "testTemplate.php", [
53+
$newResponse = $renderer->render($response, "template.phtml", [
5454
"hello" => "Hi"
5555
]);
5656
$newResponse->getBody()->rewind();
5757
$this->assertEquals("Hi", $newResponse->getBody()->getContents());
5858
}
5959

6060
public function testExceptionInTemplate() {
61-
$renderer = new \Slim\Views\PhpRenderer("tests/");
61+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
6262

6363
$headers = new Headers();
6464
$body = new Body(fopen('php://temp', 'r+'));
@@ -68,12 +68,12 @@ public function testExceptionInTemplate() {
6868
$newResponse = $renderer->render($response, "testException.php");
6969
} catch (Throwable $t) { // PHP 7+
7070
// Simulates an error template
71-
$newResponse = $renderer->render($response, "testTemplate.php", [
71+
$newResponse = $renderer->render($response, "template.phtml", [
7272
"hello" => "Hi"
7373
]);
7474
} catch (Exception $e) { // PHP < 7
7575
// Simulates an error template
76-
$newResponse = $renderer->render($response, "testTemplate.php", [
76+
$newResponse = $renderer->render($response, "template.phtml", [
7777
"hello" => "Hi"
7878
]);
7979
}
@@ -88,13 +88,13 @@ public function testExceptionInTemplate() {
8888
*/
8989
public function testExceptionForTemplateInData() {
9090

91-
$renderer = new \Slim\Views\PhpRenderer("tests/");
91+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
9292

9393
$headers = new Headers();
9494
$body = new Body(fopen('php://temp', 'r+'));
9595
$response = new Response(200, $headers, $body);
9696

97-
$renderer->render($response, "testTemplate.php", [
97+
$renderer->render($response, "template.phtml", [
9898
"template" => "Hi"
9999
]);
100100
}
@@ -104,64 +104,64 @@ public function testExceptionForTemplateInData() {
104104
*/
105105
public function testTemplateNotFound() {
106106

107-
$renderer = new \Slim\Views\PhpRenderer("tests/");
107+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
108108

109109
$headers = new Headers();
110110
$body = new Body(fopen('php://temp', 'r+'));
111111
$response = new Response(200, $headers, $body);
112112

113-
$renderer->render($response, "adfadftestTemplate.php", []);
113+
$renderer->render($response, "adfadftemplate.phtml", []);
114114
}
115115

116116
public function testLayout() {
117-
$renderer = new \Slim\Views\PhpRenderer("tests/", ["title" => "My App"]);
118-
$renderer->setLayout("testLayout.php");
117+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/", ["title" => "My App"]);
118+
$renderer->setLayout("layout.phtml");
119119

120120
$headers = new Headers();
121121
$body = new Body(fopen('php://temp', 'r+'));
122122
$response = new Response(200, $headers, $body);
123123

124-
$newResponse = $renderer->render($response, "testTemplate.php", array("title" => "Hello - My App", "hello" => "Hi"));
124+
$newResponse = $renderer->render($response, "template.phtml", array("title" => "Hello - My App", "hello" => "Hi"));
125125

126126
$newResponse->getBody()->rewind();
127127

128-
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi</body></html>", $newResponse->getBody()->getContents());
128+
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi<footer>This is the footer</footer></body></html>", $newResponse->getBody()->getContents());
129129
}
130130

131131
public function testLayoutConstructor() {
132-
$renderer = new \Slim\Views\PhpRenderer("tests", ["title" => "My App"], "testLayout.php");
132+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files", ["title" => "My App"], "layout.phtml");
133133

134134
$headers = new Headers();
135135
$body = new Body(fopen('php://temp', 'r+'));
136136
$response = new Response(200, $headers, $body);
137137

138-
$newResponse = $renderer->render($response, "testTemplate.php", array("title" => "Hello - My App", "hello" => "Hi"));
138+
$newResponse = $renderer->render($response, "template.phtml", array("title" => "Hello - My App", "hello" => "Hi"));
139139

140140
$newResponse->getBody()->rewind();
141141

142-
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi</body></html>", $newResponse->getBody()->getContents());
142+
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi<footer>This is the footer</footer></body></html>", $newResponse->getBody()->getContents());
143143
}
144144

145145
public function testExceptionInLayout() {
146-
$renderer = new \Slim\Views\PhpRenderer("tests/");
147-
$renderer->setLayout("testException.php");
146+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
147+
$renderer->setLayout("exception_layout.phtml");
148148

149149
$headers = new Headers();
150150
$body = new Body(fopen('php://temp', 'r+'));
151151
$response = new Response(200, $headers, $body);
152152

153153
try {
154-
$newResponse = $renderer->render($response, "testTemplate.php");
154+
$newResponse = $renderer->render($response, "template.phtml");
155155
} catch (Throwable $t) { // PHP 7+
156156
// Simulates an error template
157157
$renderer->setLayout(null);
158-
$newResponse = $renderer->render($response, "testTemplate.php", [
158+
$newResponse = $renderer->render($response, "template.phtml", [
159159
"hello" => "Hi"
160160
]);
161161
} catch (Exception $e) { // PHP < 7
162162
// Simulates an error template
163163
$renderer->setLayout(null);
164-
$newResponse = $renderer->render($response, "testTemplate.php", [
164+
$newResponse = $renderer->render($response, "template.phtml", [
165165
"hello" => "Hi"
166166
]);
167167
}
@@ -176,28 +176,28 @@ public function testExceptionInLayout() {
176176
*/
177177
public function testLayoutNotFound() {
178178

179-
$renderer = new \Slim\Views\PhpRenderer("tests/");
180-
$renderer->setLayout("adfadftestLayout.php");
179+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
180+
$renderer->setLayout("non-existent_layout.phtml");
181181

182182
$headers = new Headers();
183183
$body = new Body(fopen('php://temp', 'r+'));
184184
$response = new Response(200, $headers, $body);
185185

186-
$renderer->render($response, "testTemplate.php", []);
186+
$renderer->render($response, "template.phtml", []);
187187
}
188188

189189
public function testContentDataKeyShouldBeIgnored() {
190-
$renderer = new \Slim\Views\PhpRenderer("tests/");
191-
$renderer->setLayout("testLayout.php");
190+
$renderer = new \Slim\Views\PhpRenderer(__DIR__ . "/_files/");
191+
$renderer->setLayout("layout.phtml");
192192

193193
$headers = new Headers();
194194
$body = new Body(fopen('php://temp', 'r+'));
195195
$response = new Response(200, $headers, $body);
196196

197-
$newResponse = $renderer->render($response, "testTemplate.php", array("title" => "Hello - My App", "hello" => "Hi", "content" => "Ho"));
197+
$newResponse = $renderer->render($response, "template.phtml", array("title" => "Hello - My App", "hello" => "Hi", "content" => "Ho"));
198198

199199
$newResponse->getBody()->rewind();
200200

201-
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi</body></html>", $newResponse->getBody()->getContents());
201+
$this->assertEquals("<html><head><title>Hello - My App</title></head><body>Hi<footer>This is the footer</footer></body></html>", $newResponse->getBody()->getContents());
202202
}
203203
}

tests/_files/footer.phtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<?php echo '<footer>This is the footer</footer>';
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<html><head><title><?=$title?></title></head><body><?=$content?></body></html>
1+
<html><head><title><?=$title?></title></head><body><?=$content?><?= $this->fetch('footer.phtml'); ?></body></html>

tests/_files/partial.phtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<?php echo '<p>This is the partial</p>';

0 commit comments

Comments
 (0)