PluginProbe
StockPack – Stock photos and AI images from Unsplash, Adobe Stock, Freepik and more / 2.5.5
StockPack – Stock photos and AI images from Unsplash, Adobe Stock, Freepik and more v2.5.5
3.7.2 3.7.1 3.7.0 3.6.0 3.6.1 3.5.2 trunk 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.6.1 All 73 releases
stockpack / vendor / guzzlehttp / guzzle / tests / PrepareBodyMiddlewareTest.php

PrepareBodyMiddlewareTest.php in StockPack – Stock photos and AI images from Unsplash, Adobe Stock, Freepik and more 2.5.5, at vendor/guzzlehttp/guzzle/tests/PrepareBodyMiddlewareTest.php

156 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace GuzzleHttp\Tests;
3
4 use GuzzleHttp\Handler\MockHandler;
5 use GuzzleHttp\HandlerStack;
6 use GuzzleHttp\Middleware;
7 use GuzzleHttp\Promise\PromiseInterface;
8 use GuzzleHttp\Psr7;
9 use GuzzleHttp\Psr7\FnStream;
10 use GuzzleHttp\Psr7\Request;
11 use GuzzleHttp\Psr7\Response;
12 use PHPUnit\Framework\TestCase;
13 use Psr\Http\Message\RequestInterface;
14
15 class PrepareBodyMiddlewareTest extends TestCase
16 {
17 public function methodProvider()
18 {
19 $methods = ['GET', 'PUT', 'POST'];
20 $bodies = ['Test', ''];
21 foreach ($methods as $method) {
22 foreach ($bodies as $body) {
23 yield [$method, $body];
24 }
25 }
26 }
27 /**
28 * @dataProvider methodProvider
29 */
30 public function testAddsContentLengthWhenMissingAndPossible($method, $body)
31 {
32 $h = new MockHandler([
33 function (RequestInterface $request) use ($body) {
34 $length = strlen($body);
35 if ($length > 0) {
36 self::assertEquals($length, $request->getHeaderLine('Content-Length'));
37 } else {
38 self::assertFalse($request->hasHeader('Content-Length'));
39 }
40 return new Response(200);
41 }
42 ]);
43 $m = Middleware::prepareBody();
44 $stack = new HandlerStack($h);
45 $stack->push($m);
46 $comp = $stack->resolve();
47 $p = $comp(new Request($method, 'http://www.google.com', [], $body), []);
48 self::assertInstanceOf(PromiseInterface::class, $p);
49 $response = $p->wait();
50 self::assertSame(200, $response->getStatusCode());
51 }
52
53 public function testAddsTransferEncodingWhenNoContentLength()
54 {
55 $body = FnStream::decorate(Psr7\stream_for('foo'), [
56 'getSize' => function () {
57 return null;
58 }
59 ]);
60 $h = new MockHandler([
61 function (RequestInterface $request) {
62 self::assertFalse($request->hasHeader('Content-Length'));
63 self::assertSame('chunked', $request->getHeaderLine('Transfer-Encoding'));
64 return new Response(200);
65 }
66 ]);
67 $m = Middleware::prepareBody();
68 $stack = new HandlerStack($h);
69 $stack->push($m);
70 $comp = $stack->resolve();
71 $p = $comp(new Request('PUT', 'http://www.google.com', [], $body), []);
72 self::assertInstanceOf(PromiseInterface::class, $p);
73 $response = $p->wait();
74 self::assertSame(200, $response->getStatusCode());
75 }
76
77 public function testAddsContentTypeWhenMissingAndPossible()
78 {
79 $bd = Psr7\stream_for(fopen(__DIR__ . '/../composer.json', 'r'));
80 $h = new MockHandler([
81 function (RequestInterface $request) {
82 self::assertSame('application/json', $request->getHeaderLine('Content-Type'));
83 self::assertTrue($request->hasHeader('Content-Length'));
84 return new Response(200);
85 }
86 ]);
87 $m = Middleware::prepareBody();
88 $stack = new HandlerStack($h);
89 $stack->push($m);
90 $comp = $stack->resolve();
91 $p = $comp(new Request('PUT', 'http://www.google.com', [], $bd), []);
92 self::assertInstanceOf(PromiseInterface::class, $p);
93 $response = $p->wait();
94 self::assertSame(200, $response->getStatusCode());
95 }
96
97 public function expectProvider()
98 {
99 return [
100 [true, ['100-Continue']],
101 [false, []],
102 [10, ['100-Continue']],
103 [500000, []]
104 ];
105 }
106
107 /**
108 * @dataProvider expectProvider
109 */
110 public function testAddsExpect($value, $result)
111 {
112 $bd = Psr7\stream_for(fopen(__DIR__ . '/../composer.json', 'r'));
113
114 $h = new MockHandler([
115 function (RequestInterface $request) use ($result) {
116 self::assertSame($result, $request->getHeader('Expect'));
117 return new Response(200);
118 }
119 ]);
120
121 $m = Middleware::prepareBody();
122 $stack = new HandlerStack($h);
123 $stack->push($m);
124 $comp = $stack->resolve();
125 $p = $comp(new Request('PUT', 'http://www.google.com', [], $bd), [
126 'expect' => $value
127 ]);
128 self::assertInstanceOf(PromiseInterface::class, $p);
129 $response = $p->wait();
130 self::assertSame(200, $response->getStatusCode());
131 }
132
133 public function testIgnoresIfExpectIsPresent()
134 {
135 $bd = Psr7\stream_for(fopen(__DIR__ . '/../composer.json', 'r'));
136 $h = new MockHandler([
137 function (RequestInterface $request) {
138 self::assertSame(['Foo'], $request->getHeader('Expect'));
139 return new Response(200);
140 }
141 ]);
142
143 $m = Middleware::prepareBody();
144 $stack = new HandlerStack($h);
145 $stack->push($m);
146 $comp = $stack->resolve();
147 $p = $comp(
148 new Request('PUT', 'http://www.google.com', ['Expect' => 'Foo'], $bd),
149 ['expect' => true]
150 );
151 self::assertInstanceOf(PromiseInterface::class, $p);
152 $response = $p->wait();
153 self::assertSame(200, $response->getStatusCode());
154 }
155 }
156