PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 / vendor-prefixed / symfony / http-foundation / Tests / JsonResponseTest.php
give / vendor / vendor-prefixed / symfony / http-foundation / Tests Last commit date
File 2 years ago Fixtures 2 years ago Session 2 years ago schema 2 years ago AcceptHeaderItemTest.php 2 years ago AcceptHeaderTest.php 2 years ago ApacheRequestTest.php 2 years ago BinaryFileResponseTest.php 2 years ago CookieTest.php 2 years ago ExpressionRequestMatcherTest.php 2 years ago FileBagTest.php 2 years ago HeaderBagTest.php 2 years ago IpUtilsTest.php 2 years ago JsonResponseTest.php 2 years ago ParameterBagTest.php 2 years ago RedirectResponseTest.php 2 years ago RequestMatcherTest.php 2 years ago RequestStackTest.php 2 years ago RequestTest.php 2 years ago ResponseFunctionalTest.php 2 years ago ResponseHeaderBagTest.php 2 years ago ResponseTest.php 2 years ago ResponseTestCase.php 2 years ago ServerBagTest.php 2 years ago StreamedResponseTest.php 2 years ago
JsonResponseTest.php
266 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 * Modified by impress-org on 23-January-2024 using Strauss.
12 * @see https://github.com/BrianHenryIE/strauss
13 */
14
15 namespace Give\Vendors\Symfony\Component\HttpFoundation\Tests;
16
17 use PHPUnit\Framework\TestCase;
18 use Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse;
19
20 class JsonResponseTest extends TestCase
21 {
22 protected function setUp()
23 {
24 parent::setUp();
25
26 if (!\defined('HHVM_VERSION')) {
27 $this->iniSet('serialize_precision', 14);
28 }
29 }
30
31 public function testConstructorEmptyCreatesJsonObject()
32 {
33 $response = new JsonResponse();
34 $this->assertSame('{}', $response->getContent());
35 }
36
37 public function testConstructorWithArrayCreatesJsonArray()
38 {
39 $response = new JsonResponse([0, 1, 2, 3]);
40 $this->assertSame('[0,1,2,3]', $response->getContent());
41 }
42
43 public function testConstructorWithAssocArrayCreatesJsonObject()
44 {
45 $response = new JsonResponse(['foo' => 'bar']);
46 $this->assertSame('{"foo":"bar"}', $response->getContent());
47 }
48
49 public function testConstructorWithSimpleTypes()
50 {
51 $response = new JsonResponse('foo');
52 $this->assertSame('"foo"', $response->getContent());
53
54 $response = new JsonResponse(0);
55 $this->assertSame('0', $response->getContent());
56
57 $response = new JsonResponse(0.1);
58 $this->assertEquals(0.1, $response->getContent());
59 $this->assertIsString($response->getContent());
60
61 $response = new JsonResponse(true);
62 $this->assertSame('true', $response->getContent());
63 }
64
65 public function testConstructorWithCustomStatus()
66 {
67 $response = new JsonResponse([], 202);
68 $this->assertSame(202, $response->getStatusCode());
69 }
70
71 public function testConstructorAddsContentTypeHeader()
72 {
73 $response = new JsonResponse();
74 $this->assertSame('application/json', $response->headers->get('Content-Type'));
75 }
76
77 public function testConstructorWithCustomHeaders()
78 {
79 $response = new JsonResponse([], 200, ['ETag' => 'foo']);
80 $this->assertSame('application/json', $response->headers->get('Content-Type'));
81 $this->assertSame('foo', $response->headers->get('ETag'));
82 }
83
84 public function testConstructorWithCustomContentType()
85 {
86 $headers = ['Content-Type' => 'application/vnd.acme.blog-v1+json'];
87
88 $response = new JsonResponse([], 200, $headers);
89 $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
90 }
91
92 public function testSetJson()
93 {
94 $response = new JsonResponse('1', 200, [], true);
95 $this->assertEquals('1', $response->getContent());
96
97 $response = new JsonResponse('[1]', 200, [], true);
98 $this->assertEquals('[1]', $response->getContent());
99
100 $response = new JsonResponse(null, 200, []);
101 $response->setJson('true');
102 $this->assertEquals('true', $response->getContent());
103 }
104
105 public function testCreate()
106 {
107 $response = JsonResponse::create(['foo' => 'bar'], 204);
108
109 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
110 $this->assertEquals('{"foo":"bar"}', $response->getContent());
111 $this->assertEquals(204, $response->getStatusCode());
112 }
113
114 public function testStaticCreateEmptyJsonObject()
115 {
116 $response = JsonResponse::create();
117 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
118 $this->assertSame('{}', $response->getContent());
119 }
120
121 public function testStaticCreateJsonArray()
122 {
123 $response = JsonResponse::create([0, 1, 2, 3]);
124 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
125 $this->assertSame('[0,1,2,3]', $response->getContent());
126 }
127
128 public function testStaticCreateJsonObject()
129 {
130 $response = JsonResponse::create(['foo' => 'bar']);
131 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
132 $this->assertSame('{"foo":"bar"}', $response->getContent());
133 }
134
135 public function testStaticCreateWithSimpleTypes()
136 {
137 $response = JsonResponse::create('foo');
138 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
139 $this->assertSame('"foo"', $response->getContent());
140
141 $response = JsonResponse::create(0);
142 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
143 $this->assertSame('0', $response->getContent());
144
145 $response = JsonResponse::create(0.1);
146 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
147 $this->assertEquals(0.1, $response->getContent());
148 $this->assertIsString($response->getContent());
149
150 $response = JsonResponse::create(true);
151 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\JsonResponse', $response);
152 $this->assertSame('true', $response->getContent());
153 }
154
155 public function testStaticCreateWithCustomStatus()
156 {
157 $response = JsonResponse::create([], 202);
158 $this->assertSame(202, $response->getStatusCode());
159 }
160
161 public function testStaticCreateAddsContentTypeHeader()
162 {
163 $response = JsonResponse::create();
164 $this->assertSame('application/json', $response->headers->get('Content-Type'));
165 }
166
167 public function testStaticCreateWithCustomHeaders()
168 {
169 $response = JsonResponse::create([], 200, ['ETag' => 'foo']);
170 $this->assertSame('application/json', $response->headers->get('Content-Type'));
171 $this->assertSame('foo', $response->headers->get('ETag'));
172 }
173
174 public function testStaticCreateWithCustomContentType()
175 {
176 $headers = ['Content-Type' => 'application/vnd.acme.blog-v1+json'];
177
178 $response = JsonResponse::create([], 200, $headers);
179 $this->assertSame('application/vnd.acme.blog-v1+json', $response->headers->get('Content-Type'));
180 }
181
182 public function testSetCallback()
183 {
184 $response = JsonResponse::create(['foo' => 'bar'])->setCallback('callback');
185
186 $this->assertEquals('/**/callback({"foo":"bar"});', $response->getContent());
187 $this->assertEquals('text/javascript', $response->headers->get('Content-Type'));
188 }
189
190 public function testJsonEncodeFlags()
191 {
192 $response = new JsonResponse('<>\'&"');
193
194 $this->assertEquals('"\u003C\u003E\u0027\u0026\u0022"', $response->getContent());
195 }
196
197 public function testGetEncodingOptions()
198 {
199 $response = new JsonResponse();
200
201 $this->assertEquals(\JSON_HEX_TAG | \JSON_HEX_APOS | \JSON_HEX_AMP | \JSON_HEX_QUOT, $response->getEncodingOptions());
202 }
203
204 public function testSetEncodingOptions()
205 {
206 $response = new JsonResponse();
207 $response->setData([[1, 2, 3]]);
208
209 $this->assertEquals('[[1,2,3]]', $response->getContent());
210
211 $response->setEncodingOptions(\JSON_FORCE_OBJECT);
212
213 $this->assertEquals('{"0":{"0":1,"1":2,"2":3}}', $response->getContent());
214 }
215
216 public function testItAcceptsJsonAsString()
217 {
218 $response = JsonResponse::fromJsonString('{"foo":"bar"}');
219 $this->assertSame('{"foo":"bar"}', $response->getContent());
220 }
221
222 public function testSetCallbackInvalidIdentifier()
223 {
224 $this->expectException('InvalidArgumentException');
225 $response = new JsonResponse('foo');
226 $response->setCallback('+invalid');
227 }
228
229 public function testSetContent()
230 {
231 $this->expectException('InvalidArgumentException');
232 JsonResponse::create("\xB1\x31");
233 }
234
235 public function testSetContentJsonSerializeError()
236 {
237 $this->expectException('Exception');
238 $this->expectExceptionMessage('This error is expected');
239 if (!interface_exists('JsonSerializable', false)) {
240 $this->markTestSkipped('JsonSerializable is required.');
241 }
242
243 $serializable = new JsonSerializableObject();
244
245 JsonResponse::create($serializable);
246 }
247
248 public function testSetComplexCallback()
249 {
250 $response = JsonResponse::create(['foo' => 'bar']);
251 $response->setCallback('ಠ_ಠ["foo"].bar[0]');
252
253 $this->assertEquals('/**/ಠ_ಠ["foo"].bar[0]({"foo":"bar"});', $response->getContent());
254 }
255 }
256
257 if (interface_exists('JsonSerializable', false)) {
258 class JsonSerializableObject implements \JsonSerializable
259 {
260 public function jsonSerialize()
261 {
262 throw new \Exception('This error is expected');
263 }
264 }
265 }
266