File tree Expand file tree Collapse file tree 7 files changed +35
-0
lines changed
Expand file tree Collapse file tree 7 files changed +35
-0
lines changed Original file line number Diff line number Diff line change 44
55namespace Saloon \Traits \Body ;
66
7+ use Saloon \Contracts \PendingRequest ;
78use Saloon \Repositories \Body \FormBodyRepository ;
89
910trait HasFormBody
@@ -17,6 +18,17 @@ trait HasFormBody
1718 */
1819 protected FormBodyRepository $ body ;
1920
21+ /**
22+ * Boot the HasFormBody trait
23+ *
24+ * @param \Saloon\Contracts\PendingRequest $pendingRequest
25+ * @return void
26+ */
27+ public function bootHasFormBody (PendingRequest $ pendingRequest ): void
28+ {
29+ $ pendingRequest ->headers ()->add ('Content-Type ' , 'application/x-www-form-urlencoded ' );
30+ }
31+
2032 /**
2133 * Retrieve the data repository
2234 *
Original file line number Diff line number Diff line change 1818 $ connector = new TestConnector ;
1919 $ request = new HasBodyRequest ;
2020
21+ $ request ->headers ()->add ('Content-Type ' , 'application/custom ' );
22+
2123 $ connector ->sender ()->addMiddleware (function (callable $ handler ) use ($ request ) {
2224 return function (RequestInterface $ guzzleRequest , array $ options ) use ($ request ) {
25+ expect ($ guzzleRequest ->getHeader ('Content-Type ' ))->toEqual (['application/custom ' ]);
2326 expect ((string )$ guzzleRequest ->getBody ())->toEqual ((string )$ request ->body ());
2427
2528 return new FulfilledPromise (MockResponse::make ()->getPsrResponse ());
Original file line number Diff line number Diff line change 22
33declare (strict_types=1 );
44
5+ use Saloon \Http \PendingRequest ;
56use Saloon \Http \Faking \MockResponse ;
67use Psr \Http \Message \RequestInterface ;
78use GuzzleHttp \Promise \FulfilledPromise ;
2122 $ connector = new TestConnector ;
2223 $ request = new HasFormBodyRequest ;
2324
25+ $ request ->middleware ()->onRequest (static function (PendingRequest $ pendingRequest ) {
26+ expect ($ pendingRequest ->headers ()->get ('Content-Type ' ))->toEqual ('application/x-www-form-urlencoded ' );
27+ });
28+
2429 $ connector ->sender ()->addMiddleware (function (callable $ handler ) use ($ request ) {
2530 return function (RequestInterface $ guzzleRequest , array $ options ) use ($ request ) {
31+ expect ($ guzzleRequest ->getHeader ('Content-Type ' ))->toEqual (['application/x-www-form-urlencoded ' ]);
2632 expect ((string )$ guzzleRequest ->getBody ())->toEqual ((string )$ request ->body ());
2733
2834 return new FulfilledPromise (MockResponse::make ()->getPsrResponse ());
Original file line number Diff line number Diff line change 22
33declare (strict_types=1 );
44
5+ use Saloon \Http \PendingRequest ;
56use Saloon \Http \Faking \MockResponse ;
67use Psr \Http \Message \RequestInterface ;
78use GuzzleHttp \Promise \FulfilledPromise ;
3233 $ connector = new TestConnector ;
3334 $ request = new HasJsonBodyRequest ;
3435
36+ $ request ->middleware ()->onRequest (static function (PendingRequest $ pendingRequest ) {
37+ expect ($ pendingRequest ->headers ()->get ('Content-Type ' ))->toEqual ('application/json ' );
38+ });
39+
3540 $ connector ->sender ()->addMiddleware (function (callable $ handler ) use ($ request ) {
3641 return function (RequestInterface $ guzzleRequest , array $ options ) use ($ request ) {
42+ expect ($ guzzleRequest ->getHeader ('Content-Type ' ))->toEqual (['application/json ' ]);
3743 expect ((string )$ guzzleRequest ->getBody ())->toEqual ((string )$ request ->body ());
3844
3945 return new FulfilledPromise (MockResponse::make ()->getPsrResponse ());
Original file line number Diff line number Diff line change 2323
2424 $ connector ->sender ()->addMiddleware (function (callable $ handler ) use ($ request ) {
2525 return function (RequestInterface $ guzzleRequest , array $ options ) use ($ request ) {
26+ expect ($ guzzleRequest ->getHeader ('Content-Type ' )[0 ])->toContain ('multipart/form-data; boundary= ' );
2627 expect ((string )$ guzzleRequest ->getBody ())->toContain (
2728 'X-Saloon: Yee-haw! ' ,
2829 'Content-Disposition: form-data; name="nickname"; filename="user.txt" ' ,
Original file line number Diff line number Diff line change 22
33declare (strict_types=1 );
44
5+ use Saloon \Http \PendingRequest ;
56use Saloon \Http \Faking \MockResponse ;
67use Psr \Http \Message \RequestInterface ;
78use GuzzleHttp \Promise \FulfilledPromise ;
2627 $ connector = new TestConnector ;
2728 $ request = new HasXmlBodyRequest ;
2829
30+ $ request ->middleware ()->onRequest (static function (PendingRequest $ pendingRequest ) {
31+ expect ($ pendingRequest ->headers ()->get ('Content-Type ' ))->toEqual ('application/xml ' );
32+ });
33+
2934 $ connector ->sender ()->addMiddleware (function (callable $ handler ) use ($ request ) {
3035 return function (RequestInterface $ guzzleRequest , array $ options ) use ($ request ) {
36+ expect ($ guzzleRequest ->getHeader ('Content-Type ' ))->toEqual (['application/xml ' ]);
3137 expect ((string )$ guzzleRequest ->getBody ())->toEqual ((string )$ request ->body ());
3238
3339 return new FulfilledPromise (MockResponse::make ()->getPsrResponse ());
Original file line number Diff line number Diff line change 152152 expect ($ pendingRequest ->headers ()->all ())->toEqual ([
153153 'Accept ' => 'application/json ' ,
154154 'Authorization ' => 'Bearer access ' ,
155+ 'Content-Type ' => 'application/x-www-form-urlencoded ' ,
155156 ]);
156157});
157158
You can’t perform that action at this time.
0 commit comments