@@ -165,8 +165,6 @@ public function testItIsEmptyAfterReset()
165165 }
166166
167167 /**
168- * @requires extension openssl
169- *
170168 * @dataProvider provideCurlRequests
171169 */
172170 public function testItGeneratesCurlCommandsAsExpected (array $ request , string $ expectedCurlCommand )
@@ -177,7 +175,9 @@ public function testItGeneratesCurlCommandsAsExpected(array $request, string $ex
177175 $ collectedData = $ sut ->getClients ();
178176 self ::assertCount (1 , $ collectedData ['http_client ' ]['traces ' ]);
179177 $ curlCommand = $ collectedData ['http_client ' ]['traces ' ][0 ]['curlCommand ' ];
180- self ::assertEquals (sprintf ($ expectedCurlCommand , '\\' === \DIRECTORY_SEPARATOR ? '" ' : "' " ), $ curlCommand );
178+
179+ $ isWindows = '\\' === \DIRECTORY_SEPARATOR ;
180+ self ::assertEquals (sprintf ($ expectedCurlCommand , $ isWindows ? '" ' : "' " , $ isWindows ? '' : "' " ), $ curlCommand );
181181 }
182182
183183 public static function provideCurlRequests (): iterable
@@ -236,19 +236,19 @@ public static function provideCurlRequests(): iterable
236236 'method ' => 'POST ' ,
237237 'url ' => 'http://localhost:8057/json ' ,
238238 'options ' => [
239- 'body ' => 'foobarbaz ' ,
239+ 'body ' => 'foo bar baz ' ,
240240 ],
241241 ],
242242 'curl \\
243243 --compressed \\
244244 --request POST \\
245245 --url %1$shttp://localhost:8057/json%1$s \\
246246 --header %1$sAccept: */*%1$s \\
247- --header %1$sContent-Length: 9 %1$s \\
247+ --header %1$sContent-Length: 11 %1$s \\
248248 --header %1$sContent-Type: application/x-www-form-urlencoded%1$s \\
249249 --header %1$sAccept-Encoding: gzip%1$s \\
250250 --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
251- --data %1$sfoobarbaz %1$s ' ,
251+ --data-raw %1$sfoo bar baz %1$s ' ,
252252 ];
253253 yield 'POST with array body ' => [
254254 [
@@ -286,7 +286,7 @@ public function __toString(): string
286286 --header %1$sContent-Length: 211%1$s \\
287287 --header %1$sAccept-Encoding: gzip%1$s \\
288288 --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
289- --data %1 $sfoo=fooval%1 $s --data %1 $sbar=barval%1 $s --data %1 $sbaz=bazval%1 $s --data %1 $sfoobar[baz]=bazval%1 $s --data %1 $sfoobar[qux]=quxval%1 $s --data %1 $sbazqux[0]=bazquxval1%1 $s --data %1 $sbazqux[1]=bazquxval2%1 $s --data %1 $sobject[fooprop]=foopropval%1 $s --data %1 $sobject[barprop]=barpropval%1 $s --data %1 $stostring=tostringval%1 $s ' ,
289+ --data-raw %2 $sfoo=fooval%2 $s --data-raw %2 $sbar=barval%2 $s --data-raw %2 $sbaz=bazval%2 $s --data-raw %2 $sfoobar[baz]=bazval%2 $s --data-raw %2 $sfoobar[qux]=quxval%2 $s --data-raw %2 $sbazqux[0]=bazquxval1%2 $s --data-raw %2 $sbazqux[1]=bazquxval2%2 $s --data-raw %2 $sobject[fooprop]=foopropval%2 $s --data-raw %2 $sobject[barprop]=barpropval%2 $s --data-raw %2 $stostring=tostringval%2 $s ' ,
290290 ];
291291
292292 // escapeshellarg on Windows replaces double quotes & percent signs with spaces
@@ -337,14 +337,11 @@ public function __toString(): string
337337 --header %1$sContent-Length: 120%1$s \\
338338 --header %1$sAccept-Encoding: gzip%1$s \\
339339 --header %1$sUser-Agent: Symfony HttpClient (Native)%1$s \\
340- --data %1$s{"foo":{"bar":"baz","qux":[1.1,1.0],"fred":["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]}}%1$s ' ,
340+ --data-raw %1$s{"foo":{"bar":"baz","qux":[1.1,1.0],"fred":["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026"]}}%1$s ' ,
341341 ];
342342 }
343343 }
344344
345- /**
346- * @requires extension openssl
347- */
348345 public function testItDoesNotFollowRedirectionsWhenGeneratingCurlCommands ()
349346 {
350347 $ sut = new HttpClientDataCollector ();
@@ -372,9 +369,6 @@ public function testItDoesNotFollowRedirectionsWhenGeneratingCurlCommands()
372369 );
373370 }
374371
375- /**
376- * @requires extension openssl
377- */
378372 public function testItDoesNotGeneratesCurlCommandsForUnsupportedBodyType ()
379373 {
380374 $ sut = new HttpClientDataCollector ();
@@ -394,40 +388,34 @@ public function testItDoesNotGeneratesCurlCommandsForUnsupportedBodyType()
394388 self ::assertNull ($ curlCommand );
395389 }
396390
397- /**
398- * @requires extension openssl
399- */
400- public function testItDoesNotGeneratesCurlCommandsForNotEncodableBody ()
391+ public function testItDoesGenerateCurlCommandsForBigData ()
401392 {
402393 $ sut = new HttpClientDataCollector ();
403394 $ sut ->registerClient ('http_client ' , $ this ->httpClientThatHasTracedRequests ([
404395 [
405396 'method ' => 'POST ' ,
406397 'url ' => 'http://localhost:8057/json ' ,
407398 'options ' => [
408- 'body ' => "\0" ,
399+ 'body ' => str_repeat ( ' 1 ' , 257000 ) ,
409400 ],
410401 ],
411402 ]));
412403 $ sut ->lateCollect ();
413404 $ collectedData = $ sut ->getClients ();
414405 self ::assertCount (1 , $ collectedData ['http_client ' ]['traces ' ]);
415406 $ curlCommand = $ collectedData ['http_client ' ]['traces ' ][0 ]['curlCommand ' ];
416- self ::assertNull ($ curlCommand );
407+ self ::assertNotNull ($ curlCommand );
417408 }
418409
419- /**
420- * @requires extension openssl
421- */
422- public function testItDoesNotGeneratesCurlCommandsForTooBigData ()
410+ public function testItDoesNotGeneratesCurlCommandsForUploadedFiles ()
423411 {
424412 $ sut = new HttpClientDataCollector ();
425413 $ sut ->registerClient ('http_client ' , $ this ->httpClientThatHasTracedRequests ([
426414 [
427415 'method ' => 'POST ' ,
428416 'url ' => 'http://localhost:8057/json ' ,
429417 'options ' => [
430- 'body ' => str_repeat ( ' 1 ' , 257000 ) ,
418+ 'body ' => [ ' file ' => fopen ( ' data://text/plain, ' , ' r ' )] ,
431419 ],
432420 ],
433421 ]));
0 commit comments