Skip to content

Commit 3d2aed7

Browse files
felixuref3l1x
authored andcommitted
Tests: add Response classes coverage
1 parent b8e138f commit 3d2aed7

File tree

3 files changed

+131
-0
lines changed

3 files changed

+131
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php declare(strict_types = 1);
2+
3+
use Contributte\Application\Response\JsonPrettyResponse;
4+
use Contributte\Tester\Toolkit;
5+
use Nette\Http\Request;
6+
use Nette\Http\Response;
7+
use Nette\Http\UrlScript;
8+
use Tester\Assert;
9+
10+
require_once __DIR__ . '/../../bootstrap.php';
11+
12+
Toolkit::test(function (): void {
13+
$payload = ['key' => 'value'];
14+
$response = new JsonPrettyResponse($payload);
15+
16+
Assert::same($payload, $response->getPayload());
17+
Assert::same('application/json', $response->getContentType());
18+
Assert::same(200, $response->getCode());
19+
Assert::null($response->getExpiration());
20+
});
21+
22+
Toolkit::test(function (): void {
23+
$payload = ['key' => 'value'];
24+
$response = new JsonPrettyResponse($payload, 'application/json; charset=utf-8');
25+
26+
Assert::same('application/json; charset=utf-8', $response->getContentType());
27+
});
28+
29+
Toolkit::test(function (): void {
30+
$response = new JsonPrettyResponse(['test' => true]);
31+
32+
$response->setCode(201);
33+
Assert::same(201, $response->getCode());
34+
35+
$response->setContentType('text/json');
36+
Assert::same('text/json', $response->getContentType());
37+
38+
$response->setExpiration('1 hour');
39+
Assert::same('1 hour', $response->getExpiration());
40+
});
41+
42+
Toolkit::test(function (): void {
43+
$payload = ['name' => 'test', 'value' => 123];
44+
$response = new JsonPrettyResponse($payload);
45+
46+
ob_start();
47+
$response->send(new Request(new UrlScript()), new Response());
48+
$output = ob_get_clean();
49+
50+
Assert::contains('"name": "test"', $output);
51+
Assert::contains('"value": 123', $output);
52+
});
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php declare(strict_types = 1);
2+
3+
use Contributte\Application\Response\StringResponse;
4+
use Contributte\Tester\Toolkit;
5+
use Nette\Http\Request;
6+
use Nette\Http\Response;
7+
use Nette\Http\UrlScript;
8+
use Tester\Assert;
9+
10+
require_once __DIR__ . '/../../bootstrap.php';
11+
12+
Toolkit::test(function (): void {
13+
$content = 'Hello World';
14+
$response = new StringResponse($content, 'test.txt');
15+
16+
ob_start();
17+
$response->send(new Request(new UrlScript()), new Response());
18+
$output = ob_get_clean();
19+
20+
Assert::same($content, $output);
21+
});
22+
23+
Toolkit::test(function (): void {
24+
$content = 'PDF content';
25+
$response = new StringResponse($content, 'document.pdf', 'application/pdf');
26+
27+
ob_start();
28+
$response->send(new Request(new UrlScript()), new Response());
29+
$output = ob_get_clean();
30+
31+
Assert::same($content, $output);
32+
});
33+
34+
Toolkit::test(function (): void {
35+
$response = new StringResponse('content', 'file.txt');
36+
$result = $response->setAttachment();
37+
38+
Assert::same($response, $result);
39+
});
40+
41+
Toolkit::test(function (): void {
42+
$response = new StringResponse('content', 'file.txt');
43+
$response->setAttachment(false);
44+
45+
ob_start();
46+
$response->send(new Request(new UrlScript()), new Response());
47+
ob_get_clean();
48+
49+
// Test passes if no exception is thrown
50+
Assert::true(true);
51+
});
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php declare(strict_types = 1);
2+
3+
use Contributte\Application\Response\XmlResponse;
4+
use Contributte\Tester\Toolkit;
5+
use Nette\Http\Request;
6+
use Nette\Http\Response;
7+
use Nette\Http\UrlScript;
8+
use Tester\Assert;
9+
10+
require_once __DIR__ . '/../../bootstrap.php';
11+
12+
Toolkit::test(function (): void {
13+
$xml = '<root><item>test</item></root>';
14+
$response = new XmlResponse($xml);
15+
16+
Assert::same($xml, $response->getSource());
17+
});
18+
19+
Toolkit::test(function (): void {
20+
$xml = '<root><item>test</item></root>';
21+
$response = new XmlResponse($xml);
22+
23+
ob_start();
24+
$response->send(new Request(new UrlScript()), new Response());
25+
$output = ob_get_clean();
26+
27+
Assert::same($xml, $output);
28+
});

0 commit comments

Comments
 (0)