| @@ 260-305 (lines=46) @@ | ||
| 257 | * |
|
| 258 | * @return void |
|
| 259 | */ |
|
| 260 | public function sendCurlGetinfoFailsOnHeaderSize() |
|
| 261 | { |
|
| 262 | \Chadicus\FunctionRegistry::set( |
|
| 263 | __NAMESPACE__, |
|
| 264 | 'curl_init', |
|
| 265 | function () { |
|
| 266 | return true; |
|
| 267 | } |
|
| 268 | ); |
|
| 269 | ||
| 270 | \Chadicus\FunctionRegistry::set( |
|
| 271 | __NAMESPACE__, |
|
| 272 | 'curl_setopt_array', |
|
| 273 | function ($curl, array $options) { |
|
| 274 | return true; |
|
| 275 | } |
|
| 276 | ); |
|
| 277 | ||
| 278 | \Chadicus\FunctionRegistry::set( |
|
| 279 | __NAMESPACE__, |
|
| 280 | 'curl_exec', |
|
| 281 | function ($curl) { |
|
| 282 | return "HTTP/1.1 200 OK\r\nContent-Length: 2\r\nContent-Type: application/json\r\n\n[]"; |
|
| 283 | } |
|
| 284 | ); |
|
| 285 | ||
| 286 | \Chadicus\FunctionRegistry::set( |
|
| 287 | __NAMESPACE__, |
|
| 288 | 'curl_error', |
|
| 289 | function ($curl) { |
|
| 290 | return ''; |
|
| 291 | } |
|
| 292 | ); |
|
| 293 | ||
| 294 | \Chadicus\FunctionRegistry::set( |
|
| 295 | __NAMESPACE__, |
|
| 296 | 'curl_getinfo', |
|
| 297 | function ($curl, $option) { |
|
| 298 | if ($option === CURLINFO_HEADER_SIZE) { |
|
| 299 | return false; |
|
| 300 | } |
|
| 301 | } |
|
| 302 | ); |
|
| 303 | ||
| 304 | (new CurlAdapter())->send(new Request('not under test', 'get', [], [])); |
|
| 305 | } |
|
| 306 | ||
| 307 | /** |
|
| 308 | * Verify behavior when curl_getinfo return false for CURLINFO_HTTP_CODE. |
|
| @@ 317-366 (lines=50) @@ | ||
| 314 | * |
|
| 315 | * @return void |
|
| 316 | */ |
|
| 317 | public function sendCurlGetinfoFailsOnHttpCode() |
|
| 318 | { |
|
| 319 | \Chadicus\FunctionRegistry::set( |
|
| 320 | __NAMESPACE__, |
|
| 321 | 'curl_init', |
|
| 322 | function () { |
|
| 323 | return true; |
|
| 324 | } |
|
| 325 | ); |
|
| 326 | ||
| 327 | \Chadicus\FunctionRegistry::set( |
|
| 328 | __NAMESPACE__, |
|
| 329 | 'curl_setopt_array', |
|
| 330 | function ($curl, array $options) { |
|
| 331 | return true; |
|
| 332 | } |
|
| 333 | ); |
|
| 334 | ||
| 335 | \Chadicus\FunctionRegistry::set( |
|
| 336 | __NAMESPACE__, |
|
| 337 | 'curl_exec', |
|
| 338 | function ($curl) { |
|
| 339 | return "HTTP/1.1 200 OK\r\nContent-Length: 4\r\nContent-Type: application/json\r\n\n[]"; |
|
| 340 | } |
|
| 341 | ); |
|
| 342 | ||
| 343 | \Chadicus\FunctionRegistry::set( |
|
| 344 | __NAMESPACE__, |
|
| 345 | 'curl_error', |
|
| 346 | function ($curl) { |
|
| 347 | return ''; |
|
| 348 | } |
|
| 349 | ); |
|
| 350 | ||
| 351 | \Chadicus\FunctionRegistry::set( |
|
| 352 | __NAMESPACE__, |
|
| 353 | 'curl_getinfo', |
|
| 354 | function ($curl, $option) { |
|
| 355 | if ($option === CURLINFO_HEADER_SIZE) { |
|
| 356 | return 69; |
|
| 357 | } |
|
| 358 | ||
| 359 | if ($option === CURLINFO_HTTP_CODE) { |
|
| 360 | return false; |
|
| 361 | } |
|
| 362 | } |
|
| 363 | ); |
|
| 364 | ||
| 365 | (new CurlAdapter())->send(new Request('not under test', 'get', [], [])); |
|
| 366 | } |
|
| 367 | ||
| 368 | /** |
|
| 369 | * Verify behavior when json_last_error returns a value other than JSON_ERROR_NONE. |
|
| @@ 378-428 (lines=51) @@ | ||
| 375 | * |
|
| 376 | * @return void |
|
| 377 | */ |
|
| 378 | public function sendInvalidJsonInResult() |
|
| 379 | { |
|
| 380 | \Chadicus\FunctionRegistry::set( |
|
| 381 | __NAMESPACE__, |
|
| 382 | 'curl_init', |
|
| 383 | function () { |
|
| 384 | return true; |
|
| 385 | } |
|
| 386 | ); |
|
| 387 | ||
| 388 | \Chadicus\FunctionRegistry::set( |
|
| 389 | __NAMESPACE__, |
|
| 390 | 'curl_setopt_array', |
|
| 391 | function ($curl, array $options) { |
|
| 392 | return true; |
|
| 393 | } |
|
| 394 | ); |
|
| 395 | ||
| 396 | \Chadicus\FunctionRegistry::set( |
|
| 397 | __NAMESPACE__, |
|
| 398 | 'curl_exec', |
|
| 399 | function ($curl) { |
|
| 400 | // contains syntax error |
|
| 401 | return "HTTP/1.1 200 OK\r\nContent-Length: 4\r\nContent-Type: application/json\r\n\n{xx}}"; |
|
| 402 | } |
|
| 403 | ); |
|
| 404 | ||
| 405 | \Chadicus\FunctionRegistry::set( |
|
| 406 | __NAMESPACE__, |
|
| 407 | 'curl_error', |
|
| 408 | function ($curl) { |
|
| 409 | return ''; |
|
| 410 | } |
|
| 411 | ); |
|
| 412 | ||
| 413 | \Chadicus\FunctionRegistry::set( |
|
| 414 | __NAMESPACE__, |
|
| 415 | 'curl_getinfo', |
|
| 416 | function ($curl, $option) { |
|
| 417 | if ($option === CURLINFO_HEADER_SIZE) { |
|
| 418 | return 69; |
|
| 419 | } |
|
| 420 | ||
| 421 | if ($option === CURLINFO_HTTP_CODE) { |
|
| 422 | return 200; |
|
| 423 | } |
|
| 424 | } |
|
| 425 | ); |
|
| 426 | ||
| 427 | (new CurlAdapter())->send(new Request('not under test', 'get', [], [])); |
|
| 428 | } |
|
| 429 | } |
|
| 430 | ||