PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / symfony / http-foundation / Tests / JsonResponseTest.php
give / vendor / symfony / http-foundation / Tests Last commit date
File 4 years ago Fixtures 4 years ago Session 4 years ago schema 4 years ago AcceptHeaderItemTest.php 4 years ago AcceptHeaderTest.php 4 years ago ApacheRequestTest.php 4 years ago BinaryFileResponseTest.php 4 years ago CookieTest.php 4 years ago ExpressionRequestMatcherTest.php 4 years ago FileBagTest.php 4 years ago HeaderBagTest.php 4 years ago IpUtilsTest.php 4 years ago JsonResponseTest.php 4 years ago ParameterBagTest.php 4 years ago RedirectResponseTest.php 4 years ago RequestMatcherTest.php 4 years ago RequestStackTest.php 4 years ago RequestTest.php 4 years ago ResponseFunctionalTest.php 4 years ago ResponseHeaderBagTest.php 4 years ago ResponseTest.php 4 years ago ResponseTestCase.php 4 years ago ServerBagTest.php 4 years ago StreamedResponseTest.php 4 years ago
JsonResponseTest.php
263 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\HttpFoundation\Tests;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\HttpFoundation\JsonResponse;
16
17 class JsonResponseTest extends TestCase
18 {
19 protected function setUp()
20 {
21 parent::setUp();
22
23 if (!\defined('HHVM_VERSION')) {
24 $this->iniSet('serialize_precision', 14);
25 }
26 }
27
28 public function testConstructorEmptyCreatesJsonObject()
29 {
30 $response = new JsonResponse();
31 $this->assertSame('{}', $response->getContent());
32 }
33
34 public function testConstructorWithArrayCreatesJsonArray()
35 {
36 $response = new JsonResponse([0, 1, 2, 3]);
37 $this->assertSame('[0,1,2,3]', $response->getContent());
38 }
39
40 public function testConstructorWithAssocArrayCreatesJsonObject()
41 {
42 $response = new JsonResponse(['foo' => 'bar']);
43 $this->assertSame('{"foo":"bar"}', $response->getContent());
44 }
45
46 public function testConstructorWithSimpleTypes()
47 {
48 $response = new JsonResponse('foo');
49 $this->assertSame('"foo"', $response->getContent());
50
51 $response = new JsonResponse(0);
52 $this->assertSame('0', $response->getContent());
53
54 $response = new JsonResponse(0.1);
55 $this->assertEquals(0.1, $response->getContent());
56 $this->assertIsString($response->getContent());
57
58 $response = new JsonResponse(true);
59 $this->assertSame('true', $response->getContent());
60 }
61
62 public function testConstructorWithCustomStatus()
63 {
64 $response = new JsonResponse([], 202);
65 $this->assertSame(202, $response->getStatusCode());
66 }
67
68 public function testConstructorAddsContentTypeHeader()
69 {
70 $response = new JsonResponse();
71 $this->assertSame('application/json', $response->headers->get('Content-Type'));
72 }
73
74 public function testConstructorWithCustomHeaders()
75 {
76 $response = new JsonResponse([], 200, ['ETag' => 'foo']);
77 $this->assertSame('application/json', $response->headers->get('Content-Type'));
78 $this->assertSame('foo', $response->headers->get('ETag'));
79 }
80
81 public function testConstructorWithCustomContentType()
82 {
83 $headers = ['Content-Type' => 'application/vnd.acme.blog-v1+json'];
84
85 $response = new JsonResponse([], 200, $headers);
86 $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
87 }
88
89 public function testSetJson()
90 {
91 $response = new JsonResponse('1', 200, [], true);
92 $this->assertEquals('1', $response->getContent());
93
94 $response = new JsonResponse('[1]', 200, [], true);
95 $this->assertEquals('[1]', $response->getContent());
96
97 $response = new JsonResponse(null, 200, []);
98 $response->setJson('true');
99 $this->assertEquals('true', $response->getContent());
100 }
101
102 public function testCreate()
103 {
104 $response = JsonResponse::create(['foo' => 'bar'], 204);
105
106 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
107 $this->assertEquals('{"foo":"bar"}', $response->getContent());
108 $this->assertEquals(204, $response->getStatusCode());
109 }
110
111 public function testStaticCreateEmptyJsonObject()
112 {
113 $response = JsonResponse::create();
114 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
115 $this->assertSame('{}', $response->getContent());
116 }
117
118 public function testStaticCreateJsonArray()
119 {
120 $response = JsonResponse::create([0, 1, 2, 3]);
121 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
122 $this->assertSame('[0,1,2,3]', $response->getContent());
123 }
124
125 public function testStaticCreateJsonObject()
126 {
127 $response = JsonResponse::create(['foo' => 'bar']);
128 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
129 $this->assertSame('{"foo":"bar"}', $response->getContent());
130 }
131
132 public function testStaticCreateWithSimpleTypes()
133 {
134 $response = JsonResponse::create('foo');
135 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
136 $this->assertSame('"foo"', $response->getContent());
137
138 $response = JsonResponse::create(0);
139 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
140 $this->assertSame('0', $response->getContent());
141
142 $response = JsonResponse::create(0.1);
143 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
144 $this->assertEquals(0.1, $response->getContent());
145 $this->assertIsString($response->getContent());
146
147 $response = JsonResponse::create(true);
148 $this->assertInstanceOf('Symfony\Component\HttpFoundation\JsonResponse', $response);
149 $this->assertSame('true', $response->getContent());
150 }
151
152 public function testStaticCreateWithCustomStatus()
153 {
154 $response = JsonResponse::create([], 202);
155 $this->assertSame(202, $response->getStatusCode());
156 }
157
158 public function testStaticCreateAddsContentTypeHeader()
159 {
160 $response = JsonResponse::create();
161 $this->assertSame('application/json', $response->headers->get('Content-Type'));
162 }
163
164 public function testStaticCreateWithCustomHeaders()
165 {
166 $response = JsonResponse::create([], 200, ['ETag' => 'foo']);
167 $this->assertSame('application/json', $response->headers->get('Content-Type'));
168 $this->assertSame('foo', $response->headers->get('ETag'));
169 }
170
171 public function testStaticCreateWithCustomContentType()
172 {
173 $headers = ['Content-Type' => 'application/vnd.acme.blog-v1+json'];
174
175 $response = JsonResponse::create([], 200, $headers);
176 $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
177 }
178
179 public function testSetCallback()
180 {
181 $response = JsonResponse::create(['foo' => 'bar'])->setCallback('callback');
182
183 $this->assertEquals('/**/callback({"foo":"bar"});', $response->getContent());
184 $this->assertEquals('text/javascript', $response->headers->get('Content-Type'));
185 }
186
187 public function testJsonEncodeFlags()
188 {
189 $response = new JsonResponse('<>\'&"');
190
191 $this->assertEquals('"\u003C\u003E\u0027\u0026\u0022"', $response->getContent());
192 }
193
194 public function testGetEncodingOptions()
195 {
196 $response = new JsonResponse();
197
198 $this->assertEquals(\JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT, $response->getEncodingOptions());
199 }
200
201 public function testSetEncodingOptions()
202 {
203 $response = new JsonResponse();
204 $response->setData([[1, 2, 3]]);
205
206 $this->assertEquals('[[1,2,3]]', $response->getContent());
207
208 $response->setEncodingOptions(\JSON_FORCE_OBJECT);
209
210 $this->assertEquals('{"0":{"0":1,"1":2,"2":3}}', $response->getContent());
211 }
212
213 public function testItAcceptsJsonAsString()
214 {
215 $response = JsonResponse::fromJsonString('{"foo":"bar"}');
216 $this->assertSame('{"foo":"bar"}', $response->getContent());
217 }
218
219 public function testSetCallbackInvalidIdentifier()
220 {
221 $this->expectException('InvalidArgumentException');
222 $response = new JsonResponse('foo');
223 $response->setCallback('+invalid');
224 }
225
226 public function testSetContent()
227 {
228 $this->expectException('InvalidArgumentException');
229 JsonResponse::create("\xB1\x31");
230 }
231
232 public function testSetContentJsonSerializeError()
233 {
234 $this->expectException('Exception');
235 $this->expectExceptionMessage('This error is expected');
236 if (!interface_exists('JsonSerializable', false)) {
237 $this->markTestSkipped('JsonSerializable is required.');
238 }
239
240 $serializable = new JsonSerializableObject();
241
242 JsonResponse::create($serializable);
243 }
244
245 public function testSetComplexCallback()
246 {
247 $response = JsonResponse::create(['foo' => 'bar']);
248 $response->setCallback('ಠ_ಠ["foo"].bar[0]');
249
250 $this->assertEquals('/**/ಠ_ಠ["foo"].bar[0]({"foo":"bar"});', $response->getContent());
251 }
252 }
253
254 if (interface_exists('JsonSerializable', false)) {
255 class JsonSerializableObject implements \JsonSerializable
256 {
257 public function jsonSerialize()
258 {
259 throw new \Exception('This error is expected');
260 }
261 }
262 }
263