Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Test Failed
Pull Request — master (#971)
by Ruud
01:35
created
tests/Executor/Promise/Adapter/ReactPromiseAdapterTest.php 1 patch
Indentation   +1 added lines, -3 removed lines patch added patch discarded remove patch
@@ -81,6 +81,4 @@
 block discarded – undo
81 81
         $reactAdapter->convertThenable($promise);
82 82
 
83 83
         $this->assertInstanceOf(Promise::class, $promise);
84
-        $this->assertInstanceOf(FulfilledPromise::class, $promise->adoptedPromise); // @phpstan-ignore-line
85
-    }
86
-}
84
+        $this->assertInstanceOf(FulfilledPromise::class, $promise->adoptedPromise
87 85
\ No newline at end of file
Please login to merge, or discard this patch.
tests/DependencyInjection/Compiler/ConfigParserPassTest.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -293,7 +293,7 @@
 block discarded – undo
293 293
                                         'type' => 'Int!',
294 294
                                         'defaultValue' => 0,
295 295
                                     ],
296
-                                 ],
296
+                                    ],
297 297
                             ],
298 298
                         ],
299 299
                         'name' => 'foo',
Please login to merge, or discard this patch.
tests/Functional/Relay/Node/NodeTest.php 1 patch
Indentation   +1 added lines, -3 removed lines patch added patch discarded remove patch
@@ -281,6 +281,4 @@
 block discarded – undo
281 281
             ],
282 282
         ];
283 283
 
284
-        $this->assertGraphQL($query, $expectedData);
285
-    }
286
-}
284
+        $this->assertGraphQL($query, $expectedData
287 285
\ No newline at end of file
Please login to merge, or discard this patch.
tests/Functional/Security/AccessTest.php 1 patch
Indentation   -340 removed lines patch added patch discarded remove patch
@@ -26,343 +26,3 @@
 block discarded – undo
26 26
     private string $userIsEnabledQuery = 'query ($hasAccess: Boolean = true) { user { isEnabled(hasAccess: $hasAccess) } }';
27 27
 
28 28
     private string $userFriendsQuery = <<<'QUERY'
29
-        query {
30
-          user {
31
-            friends(first: 2) {
32
-              edges {
33
-                node {
34
-                  name
35
-                }
36
-              }
37
-            }
38
-          }
39
-        }
40
-        QUERY;
41
-
42
-    private string $simpleMutationWithThunkQuery = <<<'MUTATION'
43
-        mutation M {
44
-          simpleMutationWithThunkFields(input: {inputData: %d, clientMutationId: "bac"}) {
45
-            result
46
-            clientMutationId
47
-          }
48
-        }
49
-        MUTATION;
50
-
51
-    public function setUp(): void
52
-    {
53
-        parent::setUp();
54
-        // load types
55
-        $this->loader = function ($class): void {
56
-            if (preg_match('@^'.preg_quote('Overblog\GraphQLBundle\Access\__DEFINITIONS__\\').'(.*)$@', $class, $matches)) {
57
-                $file = sys_get_temp_dir().'/OverblogGraphQLBundle/'.Kernel::VERSION.'/access/cache/testaccess/overblog/graphql-bundle/__definitions__/'.$matches[1].'.php';
58
-                if (file_exists($file)) {
59
-                    require $file;
60
-                }
61
-            }
62
-        };
63
-        spl_autoload_register($this->loader);
64
-    }
65
-
66
-    public function testCustomClassLoaderNotRegister(): void
67
-    {
68
-        $this->expectException(Error::class);
69
-        if ((int) phpversion() <= 7) {
70
-            $this->expectExceptionMessage('Class \'Overblog\GraphQLBundle\Access\__DEFINITIONS__\RootQueryType\' not found');
71
-        } else {
72
-            $this->expectExceptionMessage('Class "Overblog\GraphQLBundle\Access\__DEFINITIONS__\RootQueryType" not found');
73
-        }
74
-        spl_autoload_unregister($this->loader);
75
-        $this->assertResponse($this->userNameQuery, [], static::ANONYMOUS_USER, 'access');
76
-    }
77
-
78
-    public function testNotAuthenticatedUserAccessAsPromisedFulfilledTrue(): void
79
-    {
80
-        $this->assertResponse(
81
-            $this->userIsEnabledQuery,
82
-            ['data' => ['user' => ['isEnabled' => true]]],
83
-            static::ANONYMOUS_USER,
84
-            'access'
85
-        );
86
-    }
87
-
88
-    public function testNotAuthenticatedUserAccessAsPromisedFulfilledFalse(): void
89
-    {
90
-        $this->assertResponse(
91
-            $this->userIsEnabledQuery,
92
-            [
93
-                'data' => [
94
-                    'user' => [
95
-                        'isEnabled' => null,
96
-                    ],
97
-                ],
98
-                'extensions' => [
99
-                    'warnings' => [
100
-                        [
101
-                            'message' => 'Access denied to this field.',
102
-                            'locations' => [['line' => 1, 'column' => 45]],
103
-                            'path' => ['user', 'isEnabled'],
104
-                        ],
105
-                    ],
106
-                ],
107
-            ],
108
-            static::ANONYMOUS_USER,
109
-            'access',
110
-            '',
111
-            ['hasAccess' => false]
112
-        );
113
-    }
114
-
115
-    public function testNotAuthenticatedUserAccessToUserName(): void
116
-    {
117
-        $expected = [
118
-            'data' => [
119
-                'user' => [
120
-                    'name' => null,
121
-                ],
122
-            ],
123
-            'extensions' => [
124
-                'warnings' => [
125
-                    [
126
-                        'message' => 'Access denied to this field.',
127
-                        'locations' => [['line' => 1, 'column' => 16]],
128
-                        'path' => ['user', 'name'],
129
-                    ],
130
-                ],
131
-            ],
132
-        ];
133
-
134
-        $this->assertResponse($this->userNameQuery, $expected, static::ANONYMOUS_USER, 'access');
135
-    }
136
-
137
-    public function testNonAuthenticatedUserAccessSecuredFieldWhichInitiallyResolvesToArray(): void
138
-    {
139
-        $expected = [
140
-            'data' => [
141
-                'youShallNotSeeThisUnauthenticated' => null,
142
-            ],
143
-            'extensions' => [
144
-                'warnings' => [
145
-                    [
146
-                        'message' => 'Access denied to this field.',
147
-                        'locations' => [
148
-                            [
149
-                                'line' => 2,
150
-                                'column' => 3,
151
-                            ],
152
-                        ],
153
-                        'path' => ['youShallNotSeeThisUnauthenticated'],
154
-                    ],
155
-                ],
156
-            ],
157
-        ];
158
-
159
-        $query = <<<'QUERY'
160
-            {
161
-              youShallNotSeeThisUnauthenticated {
162
-                secretValue
163
-                youAreAuthenticated
164
-              }
165
-            }
166
-            QUERY;
167
-
168
-        $this->assertResponse($query, $expected, static::ANONYMOUS_USER, 'access');
169
-    }
170
-
171
-    public function testFullyAuthenticatedUserAccessToUserName(): void
172
-    {
173
-        $expected = [
174
-            'data' => [
175
-                'user' => [
176
-                    'name' => 'Dan',
177
-                ],
178
-            ],
179
-        ];
180
-
181
-        $this->assertResponse($this->userNameQuery, $expected, static::USER_RYAN, 'access');
182
-    }
183
-
184
-    public function testNotAuthenticatedUserAccessToUserRoles(): void
185
-    {
186
-        $this->assertResponse($this->userRolesQuery, $this->expectedFailedUserRoles(), static::ANONYMOUS_USER, 'access');
187
-    }
188
-
189
-    public function testAuthenticatedUserAccessToUserRolesWithoutEnoughRights(): void
190
-    {
191
-        $this->assertResponse($this->userRolesQuery, $this->expectedFailedUserRoles(), static::USER_RYAN, 'access');
192
-    }
193
-
194
-    public function testUserWithCorrectRightsAccessToUserRoles(): void
195
-    {
196
-        $expected = [
197
-            'data' => [
198
-                'user' => [
199
-                    'roles' => ['ROLE_USER'],
200
-                ],
201
-            ],
202
-        ];
203
-
204
-        $this->assertResponse($this->userRolesQuery, $expected, static::USER_ADMIN, 'access');
205
-    }
206
-
207
-    public function testUserForbiddenField(): void
208
-    {
209
-        $expected = [
210
-            'data' => [
211
-                'user' => null,
212
-            ],
213
-            'extensions' => [
214
-                'warnings' => [
215
-                    [
216
-                        'message' => 'Access denied to this field.',
217
-                        'locations' => [
218
-                            [
219
-                                'line' => 3,
220
-                                'column' => 5,
221
-                            ],
222
-                        ],
223
-                        'path' => ['user', 'forbidden'],
224
-                    ],
225
-                ],
226
-            ],
227
-        ];
228
-
229
-        $query = <<<'QUERY'
230
-            query MyQuery {
231
-              user {
232
-                forbidden
233
-              }
234
-            }
235
-            QUERY;
236
-
237
-        $this->assertResponse($query, $expected, static::USER_ADMIN, 'access');
238
-    }
239
-
240
-    public function testUserAccessToUserFriends(): void
241
-    {
242
-        $expected = [
243
-            'data' => [
244
-                'user' => [
245
-                    'friends' => [
246
-                        'edges' => [
247
-                            ['node' => ['name' => 'Nick']],
248
-                            ['node' => null],
249
-                        ],
250
-                    ],
251
-                ],
252
-            ],
253
-        ];
254
-
255
-        $this->assertResponse($this->userFriendsQuery, $expected, static::USER_ADMIN, 'access');
256
-    }
257
-
258
-    public function testUserAccessToUserFriendsAsArray(): void
259
-    {
260
-        $expected = [
261
-            'data' => [
262
-                'user' => [
263
-                    'friendsAsArray' => [1, null, 3],
264
-                ],
265
-            ],
266
-        ];
267
-
268
-        $this->assertResponse('query { user { friendsAsArray } }', $expected, static::USER_ADMIN, 'access');
269
-    }
270
-
271
-    public function testMutationAllowedUser(): void
272
-    {
273
-        $result = 123;
274
-
275
-        $expected = [
276
-            'data' => [
277
-                'simpleMutationWithThunkFields' => [
278
-                    'result' => $result,
279
-                    'clientMutationId' => 'bac',
280
-                ],
281
-            ],
282
-        ];
283
-
284
-        $this->assertResponse(sprintf($this->simpleMutationWithThunkQuery, $result), $expected, static::USER_ADMIN, 'access');
285
-        $this->assertTrue(SimpleMutationWithThunkFieldsMutation::hasMutate(true));
286
-    }
287
-
288
-    public function testMutationAllowedButNoRightsToDisplayPayload(): void
289
-    {
290
-        $expected = [
291
-            'data' => [
292
-                'simpleMutationWithThunkFields' => [
293
-                    'result' => null,
294
-                    'clientMutationId' => 'bac',
295
-                ],
296
-            ],
297
-            'extensions' => [
298
-                'warnings' => [
299
-                    [
300
-                        'message' => 'Access denied to this field.',
301
-                        'locations' => [
302
-                            [
303
-                                'line' => 3,
304
-                                'column' => 5,
305
-                            ],
306
-                        ],
307
-                        'path' => ['simpleMutationWithThunkFields', 'result'],
308
-                    ],
309
-                ],
310
-            ],
311
-        ];
312
-
313
-        $this->assertResponse(sprintf($this->simpleMutationWithThunkQuery, 321), $expected, static::USER_ADMIN, 'access');
314
-        $this->assertTrue(SimpleMutationWithThunkFieldsMutation::hasMutate(true));
315
-    }
316
-
317
-    public function testMutationNotAllowedUser(): void
318
-    {
319
-        $expected = [
320
-            'errors' => [
321
-                [
322
-                    'message' => 'Access denied to this field.',
323
-                    'locations' => [
324
-                        [
325
-                            'line' => 2,
326
-                            'column' => 3,
327
-                        ],
328
-                    ],
329
-                    'path' => ['simpleMutationWithThunkFields'],
330
-                ],
331
-            ],
332
-            'data' => [
333
-                'simpleMutationWithThunkFields' => null,
334
-            ],
335
-        ];
336
-
337
-        $this->assertResponse(sprintf($this->simpleMutationWithThunkQuery, 123), $expected, static::USER_RYAN, 'access');
338
-        $this->assertFalse(SimpleMutationWithThunkFieldsMutation::hasMutate(true));
339
-    }
340
-
341
-    private function expectedFailedUserRoles(): array
342
-    {
343
-        return [
344
-            'data' => [
345
-                'user' => [
346
-                    'roles' => null,
347
-                ],
348
-            ],
349
-            'extensions' => [
350
-                'warnings' => [
351
-                    [
352
-                        'message' => 'Access denied to this field.',
353
-                        'locations' => [
354
-                            [
355
-                                'line' => 1,
356
-                                'column' => 16,
357
-                            ],
358
-                        ],
359
-                        'path' => [
360
-                            'user',
361
-                            'roles',
362
-                        ],
363
-                    ],
364
-                ],
365
-            ],
366
-        ];
367
-    }
368
-}
Please login to merge, or discard this patch.
tests/Functional/Exception/ExceptionTest.php 1 patch
Indentation   -25 removed lines patch added patch discarded remove patch
@@ -18,28 +18,3 @@
 block discarded – undo
18 18
     public function testExceptionIsMappedToAWarning(): void
19 19
     {
20 20
         $query = <<<'EOF'
21
-            query ExceptionQuery {
22
-                test
23
-            }
24
-            EOF;
25
-
26
-        $expectedData = [
27
-            'test' => null,
28
-        ];
29
-
30
-        $expectedErrors = [
31
-            [
32
-                'message' => 'Invalid argument exception',
33
-                'locations' => [
34
-                    [
35
-                        'line' => 2,
36
-                        'column' => 5,
37
-                    ],
38
-                ],
39
-                'path' => ['test'],
40
-            ],
41
-        ];
42
-
43
-        $this->assertGraphQL($query, $expectedData, $expectedErrors);
44
-    }
45
-}
Please login to merge, or discard this patch.
tests/Functional/Controller/GraphControllerTest.php 1 patch
Indentation   -318 removed lines patch added patch discarded remove patch
@@ -14,321 +14,3 @@
 block discarded – undo
14 14
 final class GraphControllerTest extends TestCase
15 15
 {
16 16
     private string $friendsQuery = <<<'EOF'
17
-        query FriendsQuery {
18
-          user {
19
-            friends(first: 2) {
20
-              totalCount
21
-              edges {
22
-                friendshipTime
23
-                node {
24
-                  name
25
-                }
26
-              }
27
-            }
28
-          }
29
-        }
30
-        EOF;
31
-
32
-    private string $friendsTotalCountQuery = <<<'EOF'
33
-        query FriendsTotalCountQuery {
34
-          user {
35
-            friends {
36
-              totalCount
37
-            }
38
-          }
39
-        }
40
-        EOF;
41
-
42
-    private array $expectedData = [
43
-        'user' => [
44
-            'friends' => [
45
-                'totalCount' => 4,
46
-                'edges' => [
47
-                    [
48
-                        'friendshipTime' => 'Yesterday',
49
-                        'node' => [
50
-                            'name' => 'Nick',
51
-                        ],
52
-                    ],
53
-                    [
54
-                        'friendshipTime' => 'Yesterday',
55
-                        'node' => [
56
-                            'name' => 'Lee',
57
-                        ],
58
-                    ],
59
-                ],
60
-            ],
61
-        ],
62
-    ];
63
-
64
-    /**
65
-     * @dataProvider graphQLEndpointUriProvider
66
-     */
67
-    public function testEndpointAction(string $uri): void
68
-    {
69
-        $client = static::createClient(['test_case' => 'connectionWithCORS']);
70
-        $this->disableCatchExceptions($client);
71
-
72
-        $client->request('GET', $uri, ['query' => $this->friendsQuery], [], ['CONTENT_TYPE' => 'application/graphql;charset=utf8', 'HTTP_Origin' => 'http://example.com']);
73
-        $result = $client->getResponse()->getContent();
74
-        $this->assertSame(['data' => $this->expectedData], json_decode($result, true), $result);
75
-        $this->assertCORSHeadersExists($client);
76
-    }
77
-
78
-    public function graphQLEndpointUriProvider(): array
79
-    {
80
-        return [
81
-            ['/'],
82
-            ['/graphql/default'],
83
-        ];
84
-    }
85
-
86
-    public function testEndpointWithEmptyQuery(): void
87
-    {
88
-        $this->expectException(BadRequestHttpException::class);
89
-        $this->expectExceptionMessage('Must provide query parameter');
90
-        $client = static::createClient();
91
-        $this->disableCatchExceptions($client);
92
-        $client->request('GET', '/', []);
93
-        $client->getResponse()->getContent();
94
-    }
95
-
96
-    public function testEndpointWithEmptyPostJsonBodyQuery(): void
97
-    {
98
-        $this->expectException(BadRequestHttpException::class);
99
-        $this->expectExceptionMessage('The request content body must not be empty when using json content type request.');
100
-        $client = static::createClient();
101
-        $this->disableCatchExceptions($client);
102
-        $client->request('POST', '/', [], [], ['CONTENT_TYPE' => 'application/json']);
103
-    }
104
-
105
-    public function testEndpointWithJsonContentTypeAndGetQuery(): void
106
-    {
107
-        $client = static::createClient(['test_case' => 'connectionWithCORS']);
108
-        $this->disableCatchExceptions($client);
109
-        $client->request('GET', '/', ['query' => $this->friendsQuery], [], ['CONTENT_TYPE' => 'application/json']);
110
-        $result = $client->getResponse()->getContent();
111
-        $this->assertSame(['data' => $this->expectedData], json_decode($result, true), $result);
112
-    }
113
-
114
-    public function testEndpointWithInvalidBodyQuery(): void
115
-    {
116
-        $this->expectException(BadRequestHttpException::class);
117
-        $this->expectExceptionMessage('POST body sent invalid JSON');
118
-        $client = static::createClient();
119
-        $this->disableCatchExceptions($client);
120
-        $client->request('GET', '/', [], [], ['CONTENT_TYPE' => 'application/json'], '{');
121
-        $client->getResponse()->getContent();
122
-    }
123
-
124
-    public function testEndpointActionWithVariables(): void
125
-    {
126
-        $client = static::createClient(['test_case' => 'connection']);
127
-        $this->disableCatchExceptions($client);
128
-
129
-        $query = <<<'EOF'
130
-            query FriendsQuery($firstFriends: Int) {
131
-              user {
132
-                friends(first: $firstFriends) {
133
-                  totalCount
134
-                  edges {
135
-                    friendshipTime
136
-                    node {
137
-                      name
138
-                    }
139
-                  }
140
-                }
141
-              }
142
-            }
143
-            EOF;
144
-
145
-        $content = json_encode(['query' => $query, 'variables' => '{"firstFriends": 2}']) ?: null;
146
-        $client->request('GET', '/', [], [], ['CONTENT_TYPE' => 'application/json'], $content);
147
-        $this->assertSame(200, $client->getResponse()->getStatusCode());
148
-    }
149
-
150
-    public function testEndpointActionWithInvalidVariables(): void
151
-    {
152
-        $this->expectException(BadRequestHttpException::class);
153
-        $this->expectExceptionMessage('Variables are invalid JSON');
154
-        $client = static::createClient(['test_case' => 'connection']);
155
-        $this->disableCatchExceptions($client);
156
-
157
-        $query = <<<'EOF'
158
-            query {
159
-              user
160
-            }
161
-            EOF;
162
-
163
-        $client->request('GET', '/', ['query' => $query, 'variables' => '"firstFriends": 2}']);
164
-    }
165
-
166
-    public function testMultipleEndpointActionWithUnknownSchemaName(): void
167
-    {
168
-        $this->expectException(NotFoundHttpException::class);
169
-        $this->expectExceptionMessage('Could not find "fake" schema.');
170
-        $client = static::createClient(['test_case' => 'connection']);
171
-        $this->disableCatchExceptions($client);
172
-
173
-        $query = <<<'EOF'
174
-            query {
175
-              user
176
-            }
177
-            EOF;
178
-
179
-        $client->request('GET', '/graphql/fake', ['query' => $query]);
180
-    }
181
-
182
-    public function testEndpointActionWithOperationName(): void
183
-    {
184
-        $client = static::createClient(['test_case' => 'connection']);
185
-        $this->disableCatchExceptions($client);
186
-
187
-        $query = $this->friendsQuery."\n".$this->friendsTotalCountQuery;
188
-
189
-        $client->request('POST', '/', ['query' => $query, 'operationName' => 'FriendsQuery'], [], ['CONTENT_TYPE' => 'application/x-www-form-urlencoded']);
190
-        $result = $client->getResponse()->getContent();
191
-        $this->assertSame(['data' => $this->expectedData], json_decode($result, true), $result);
192
-    }
193
-
194
-    /**
195
-     * @dataProvider graphQLBatchEndpointUriProvider
196
-     */
197
-    public function testBatchEndpointAction(string $uri): void
198
-    {
199
-        $client = static::createClient(['test_case' => 'connection']);
200
-        $this->disableCatchExceptions($client);
201
-
202
-        $data = [
203
-            [
204
-                'id' => 'friends',
205
-                'query' => $this->friendsQuery,
206
-            ],
207
-            [
208
-                'id' => 'friendsTotalCount',
209
-                'query' => $this->friendsTotalCountQuery,
210
-            ],
211
-        ];
212
-
213
-        $content = json_encode($data) ?: null;
214
-        $client->request('POST', $uri, [], [], ['CONTENT_TYPE' => 'application/json'], $content);
215
-        $result = $client->getResponse()->getContent();
216
-
217
-        $expected = [
218
-            ['id' => 'friends', 'payload' => ['data' => $this->expectedData]],
219
-            ['id' => 'friendsTotalCount', 'payload' => ['data' => ['user' => ['friends' => ['totalCount' => 4]]]]],
220
-        ];
221
-        $this->assertSame($expected, json_decode($result, true), $result);
222
-    }
223
-
224
-    public function graphQLBatchEndpointUriProvider(): array
225
-    {
226
-        return [
227
-            ['/batch'],
228
-            ['/graphql/default/batch'],
229
-        ];
230
-    }
231
-
232
-    public function testBatchEndpointWithEmptyQuery(): void
233
-    {
234
-        $this->expectException(BadRequestHttpException::class);
235
-        $this->expectExceptionMessage('Must provide at least one valid query.');
236
-        $client = static::createClient();
237
-        $this->disableCatchExceptions($client);
238
-        $client->request('GET', '/batch', [], [], ['CONTENT_TYPE' => 'application/json'], '{}');
239
-        $client->getResponse()->getContent();
240
-    }
241
-
242
-    public function testBatchEndpointWrongContentType(): void
243
-    {
244
-        $this->expectException(BadRequestHttpException::class);
245
-        $this->expectExceptionMessage('Batching parser only accepts "application/json" or "multipart/form-data" content-type but got "".');
246
-        $client = static::createClient();
247
-        $this->disableCatchExceptions($client);
248
-        $client->request('GET', '/batch');
249
-        $client->getResponse()->getContent();
250
-    }
251
-
252
-    public function testBatchEndpointWithInvalidJson(): void
253
-    {
254
-        $this->expectException(BadRequestHttpException::class);
255
-        $this->expectExceptionMessage('POST body sent invalid JSON');
256
-        $client = static::createClient();
257
-        $this->disableCatchExceptions($client);
258
-        $client->request('GET', '/batch', [], [], ['CONTENT_TYPE' => 'application/json'], '{');
259
-        $client->getResponse()->getContent();
260
-    }
261
-
262
-    public function testBatchEndpointWithInvalidQuery(): void
263
-    {
264
-        $this->expectException(BadRequestHttpException::class);
265
-        $this->expectExceptionMessage('1 is not a valid query');
266
-        $client = static::createClient();
267
-        $this->disableCatchExceptions($client);
268
-        $client->request('GET', '/batch', [], [], ['CONTENT_TYPE' => 'application/json'], '{"test" : {"query": 1}}');
269
-        $client->getResponse()->getContent();
270
-    }
271
-
272
-    public function testPreflightedRequestWhenDisabled(): void
273
-    {
274
-        $client = static::createClient(['test_case' => 'connection']);
275
-        $this->disableCatchExceptions($client);
276
-        $client->request('OPTIONS', '/', [], [], ['HTTP_Origin' => 'http://example.com']);
277
-        $response = $client->getResponse();
278
-        $this->assertSame(200, $response->getStatusCode());
279
-        $this->assertCORSHeadersNotExists($client);
280
-    }
281
-
282
-    public function testUnAuthorizedMethod(): void
283
-    {
284
-        $client = static::createClient(['test_case' => 'connection']);
285
-        $this->disableCatchExceptions($client);
286
-        $client->request('PUT', '/', [], [], ['HTTP_Origin' => 'http://example.com']);
287
-        $this->assertSame(405, $client->getResponse()->getStatusCode());
288
-    }
289
-
290
-    public function testPreflightedRequestWhenEnabled(): void
291
-    {
292
-        $client = static::createClient(['test_case' => 'connectionWithCORS']);
293
-        $this->disableCatchExceptions($client);
294
-        $client->request('OPTIONS', '/batch', [], [], ['HTTP_Origin' => 'http://example.com']);
295
-        $this->assertCORSHeadersExists($client);
296
-    }
297
-
298
-    public function testNoCORSHeadersIfOriginHeaderNotExists(): void
299
-    {
300
-        $client = static::createClient(['test_case' => 'connectionWithCORS']);
301
-        $this->disableCatchExceptions($client);
302
-        $client->request('GET', '/', ['query' => $this->friendsQuery], [], ['CONTENT_TYPE' => 'application/graphql']);
303
-        $result = $client->getResponse()->getContent();
304
-        $this->assertSame(['data' => $this->expectedData], json_decode($result, true), $result);
305
-        $this->assertCORSHeadersNotExists($client);
306
-    }
307
-
308
-    /**
309
-     * @param KernelBrowser $client
310
-     */
311
-    private function assertCORSHeadersNotExists($client): void
312
-    {
313
-        $headers = $client->getResponse()->headers->all();
314
-        $this->assertArrayNotHasKey('access-control-allow-origin', $headers);
315
-        $this->assertArrayNotHasKey('access-control-allow-methods', $headers);
316
-        $this->assertArrayNotHasKey('access-control-allow-credentials', $headers);
317
-        $this->assertArrayNotHasKey('access-control-allow-headers', $headers);
318
-        $this->assertArrayNotHasKey('access-control-max-age', $headers);
319
-    }
320
-
321
-    /**
322
-     * @param KernelBrowser $client
323
-     */
324
-    private function assertCORSHeadersExists($client): void
325
-    {
326
-        $response = $client->getResponse();
327
-        $this->assertSame(200, $response->getStatusCode());
328
-        $this->assertSame('http://example.com', $response->headers->get('Access-Control-Allow-Origin'));
329
-        $this->assertSame('OPTIONS, GET, POST', $response->headers->get('Access-Control-Allow-Methods'));
330
-        $this->assertSame('true', $response->headers->get('Access-Control-Allow-Credentials'));
331
-        $this->assertSame('Content-Type, Authorization', $response->headers->get('Access-Control-Allow-Headers'));
332
-        $this->assertSame('3600', $response->headers->get('Access-Control-Max-Age'));
333
-    }
334
-}
Please login to merge, or discard this patch.
tests/Functional/Security/QueryComplexityTest.php 1 patch
Indentation   -70 removed lines patch added patch discarded remove patch
@@ -9,73 +9,3 @@
 block discarded – undo
9 9
 final class QueryComplexityTest extends TestCase
10 10
 {
11 11
     private string $userFriendsWithoutLimitQuery = <<<'EOF'
12
-        query {
13
-          user {
14
-            friends {
15
-              edges {
16
-                node {
17
-                  name
18
-                }
19
-              }
20
-            }
21
-          }
22
-        }
23
-        EOF;
24
-
25
-    private string $userFriendsWithLimitQuery = <<<'EOF'
26
-        query {
27
-          user {
28
-            friends(first: 1) {
29
-              edges {
30
-                node {
31
-                  name
32
-                }
33
-              }
34
-            }
35
-          }
36
-        }
37
-        EOF;
38
-
39
-    public function testComplexityReachLimitation(): void
40
-    {
41
-        $expected = [
42
-            'errors' => [
43
-                [
44
-                    'message' => 'Max query complexity should be 10 but got 54.',
45
-                ],
46
-            ],
47
-        ];
48
-
49
-        $this->assertResponse($this->userFriendsWithoutLimitQuery, $expected, self::ANONYMOUS_USER, 'queryComplexity');
50
-    }
51
-
52
-    public function testComplexityReachLimitationEnv(): void
53
-    {
54
-        $expected = [
55
-            'errors' => [
56
-                [
57
-                    'message' => 'Max query complexity should be 10 but got 54.',
58
-                ],
59
-            ],
60
-        ];
61
-
62
-        $this->assertResponse($this->userFriendsWithoutLimitQuery, $expected, self::ANONYMOUS_USER, 'queryComplexityEnv');
63
-    }
64
-
65
-    public function testComplexityUnderLimitation(): void
66
-    {
67
-        $expected = [
68
-            'data' => [
69
-                'user' => [
70
-                    'friends' => [
71
-                        'edges' => [
72
-                            ['node' => ['name' => 'Nick']],
73
-                        ],
74
-                    ],
75
-                ],
76
-            ],
77
-        ];
78
-
79
-        $this->assertResponse($this->userFriendsWithLimitQuery, $expected, self::ANONYMOUS_USER, 'queryComplexity');
80
-    }
81
-}
Please login to merge, or discard this patch.
tests/Functional/Security/QueryMaxDepthTest.php 1 patch
Indentation   -77 removed lines patch added patch discarded remove patch
@@ -9,80 +9,3 @@
 block discarded – undo
9 9
 final class QueryMaxDepthTest extends TestCase
10 10
 {
11 11
     private string $userFriendsWithoutViolationQuery = <<<'EOF'
12
-        query {
13
-          user {
14
-            friends(first:1) {
15
-              edges {
16
-                node {
17
-                  name
18
-                }
19
-              }
20
-            }
21
-          }
22
-        }
23
-        EOF;
24
-
25
-    private string $userFriendsWithViolationQuery = <<<'EOF'
26
-        query {
27
-          user {
28
-            friends(first: 1) {
29
-              edges {
30
-                node {
31
-                  name
32
-                  friends {
33
-                    edges {
34
-                      node {
35
-                        name
36
-                      }
37
-                    }
38
-                  }
39
-                }
40
-              }
41
-            }
42
-          }
43
-        }
44
-        EOF;
45
-
46
-    public function testMaxDepthReachLimitation(): void
47
-    {
48
-        $expected = [
49
-            'errors' => [
50
-                [
51
-                    'message' => 'Max query depth should be 3 but got 6.',
52
-                ],
53
-            ],
54
-        ];
55
-
56
-        $this->assertResponse($this->userFriendsWithViolationQuery, $expected, self::ANONYMOUS_USER, 'queryMaxDepth');
57
-    }
58
-
59
-    public function testMaxDepthReachLimitationEnv(): void
60
-    {
61
-        $expected = [
62
-            'errors' => [
63
-                [
64
-                    'message' => 'Max query depth should be 3 but got 6.',
65
-                ],
66
-            ],
67
-        ];
68
-
69
-        $this->assertResponse($this->userFriendsWithViolationQuery, $expected, self::ANONYMOUS_USER, 'queryMaxDepthEnv');
70
-    }
71
-
72
-    public function testComplexityUnderLimitation(): void
73
-    {
74
-        $expected = [
75
-            'data' => [
76
-                'user' => [
77
-                    'friends' => [
78
-                        'edges' => [
79
-                            ['node' => ['name' => 'Nick']],
80
-                        ],
81
-                    ],
82
-                ],
83
-            ],
84
-        ];
85
-
86
-        $this->assertResponse($this->userFriendsWithoutViolationQuery, $expected, self::ANONYMOUS_USER, 'queryMaxDepth');
87
-    }
88
-}
Please login to merge, or discard this patch.
tests/Functional/Security/DisableIntrospectionTest.php 1 patch
Indentation   -29 removed lines patch added patch discarded remove patch
@@ -9,32 +9,3 @@
 block discarded – undo
9 9
 final class DisableIntrospectionTest extends TestCase
10 10
 {
11 11
     private string $introspectionQuery = <<<'EOF'
12
-        query {
13
-          __schema {
14
-            types {
15
-              name
16
-              description
17
-            }
18
-          }
19
-        }
20
-        EOF;
21
-
22
-    public function testIntrospectionDisabled(): void
23
-    {
24
-        $expected = [
25
-            'errors' => [
26
-                [
27
-                    'message' => 'GraphQL introspection is not allowed, but the query contained __schema or __type',
28
-                    'locations' => [
29
-                        [
30
-                            'line' => 2,
31
-                            'column' => 3,
32
-                        ],
33
-                    ],
34
-                ],
35
-            ],
36
-        ];
37
-
38
-        $this->assertResponse($this->introspectionQuery, $expected, self::ANONYMOUS_USER, 'disableIntrospection');
39
-    }
40
-}
Please login to merge, or discard this patch.