|
11 | 11 |
|
12 | 12 | namespace Contentful\Tests\Core\Unit\Api; |
13 | 13 |
|
| 14 | +use Contentful\Tests\Core\Implementation\Application; |
14 | 15 | use Contentful\Tests\Core\Implementation\Client; |
15 | 16 | use Contentful\Tests\Core\Implementation\ClientCustomException; |
16 | 17 | use Contentful\Tests\Core\Implementation\Exception\BadRequestException; |
| 18 | +use Contentful\Tests\Core\Implementation\Integration; |
17 | 19 | use Contentful\Tests\Core\Implementation\InvalidPackageNameClient; |
18 | 20 | use Contentful\Tests\TestCase; |
19 | 21 | use GuzzleHttp\Client as HttpClient; |
@@ -177,10 +179,53 @@ public function testInvalidPackageNameVersion() |
177 | 179 |
|
178 | 180 | $request = $client->getMessages()[0]->getRequest(); |
179 | 181 | // When the current package name is invalid, |
180 | | - //the version will automatically be set to 0.0.0-alpha |
| 182 | + // the version will automatically be set to 0.0.0-alpha |
181 | 183 | $this->assertRegExp( |
182 | 184 | '/sdk invalid\/0.0.0-alpha; platform PHP\/[0-9\.]*; os (Windows|Linux|macOS);$/', |
183 | 185 | $request->getHeaderLine('X-Contentful-User-Agent') |
184 | 186 | ); |
185 | 187 | } |
| 188 | + |
| 189 | + public function testCustomApplication() |
| 190 | + { |
| 191 | + $httpClient = $this->createHttpClient(function (): ResponseInterface { |
| 192 | + return new Response(201); |
| 193 | + }); |
| 194 | + $client = new Client('irrelevant', 'https://cdn.contentful.com', \null, $httpClient); |
| 195 | + |
| 196 | + $client->useApplication(new Application(\false)); |
| 197 | + $client->callApi('GET', '/'); |
| 198 | + |
| 199 | + $request = $client->getMessages()[0]->getRequest(); |
| 200 | + $this->assertRegExp( |
| 201 | + '/^app the-example-app\/1.0.0; sdk contentful-core.php\/[0-9\.]*(-(dev|beta|alpha|RC))?; platform PHP\/[0-9\.]*; os (Windows|Linux|macOS);$/', |
| 202 | + $request->getHeaderLine('X-Contentful-User-Agent') |
| 203 | + ); |
| 204 | + |
| 205 | + $client->useApplication(new Application(\true)); |
| 206 | + $client->callApi('GET', '/'); |
| 207 | + |
| 208 | + $request = $client->getMessages()[0]->getRequest(); |
| 209 | + $this->assertRegExp( |
| 210 | + '/^app the-example-app\/[0-9\.]*(-(dev|beta|alpha|RC))?; sdk contentful-core.php\/[0-9\.]*(-(dev|beta|alpha|RC))?; platform PHP\/[0-9\.]*; os (Windows|Linux|macOS);$/', |
| 211 | + $request->getHeaderLine('X-Contentful-User-Agent') |
| 212 | + ); |
| 213 | + } |
| 214 | + |
| 215 | + public function testCustomIntegration() |
| 216 | + { |
| 217 | + $httpClient = $this->createHttpClient(function (): ResponseInterface { |
| 218 | + return new Response(201); |
| 219 | + }); |
| 220 | + $client = new Client('irrelevant', 'https://cdn.contentful.com', \null, $httpClient); |
| 221 | + |
| 222 | + $client->useIntegration(new Integration()); |
| 223 | + $client->callApi('GET', '/'); |
| 224 | + |
| 225 | + $request = $client->getMessages()[0]->getRequest(); |
| 226 | + $this->assertRegExp( |
| 227 | + '/^integration contentful.symfony\/[0-9\.]*(-(dev|beta|alpha|RC))?; sdk contentful-core.php\/[0-9\.]*(-(dev|beta|alpha|RC))?; platform PHP\/[0-9\.]*; os (Windows|Linux|macOS);$/', |
| 228 | + $request->getHeaderLine('X-Contentful-User-Agent') |
| 229 | + ); |
| 230 | + } |
186 | 231 | } |
0 commit comments