|
10 | 10 | use Firebase\JWT\JWT; |
11 | 11 | use GuzzleHttp\Handler\MockHandler; |
12 | 12 | use GuzzleHttp\HandlerStack; |
| 13 | +use GuzzleHttp\Middleware; |
13 | 14 | use GuzzleHttp\Psr7\Response; |
14 | 15 |
|
15 | 16 | /** |
@@ -268,28 +269,38 @@ public function testThatRenewTokensFailsIfNoAccessOrIdTokenReturned() |
268 | 269 | public function testThatRenewTokensSucceeds() |
269 | 270 | { |
270 | 271 | $id_token = JWT::encode( ['sub' => uniqid()], '__test_client_secret__' ); |
271 | | - |
| 272 | + $request_history = []; |
272 | 273 | $mock = new MockHandler( [ |
273 | 274 | // Code exchange response. |
274 | 275 | new Response( 200, self::$headers, '{"access_token":"1.2.3","refresh_token":"2.3.4"}' ), |
275 | 276 | // Refresh token response. |
276 | 277 | new Response( 200, self::$headers, '{"access_token":"__test_access_token__","id_token":"'.$id_token.'"}' ), |
277 | 278 | ] ); |
| 279 | + $handler = HandlerStack::create($mock); |
| 280 | + $handler->push( Middleware::history($request_history) ); |
278 | 281 |
|
279 | 282 | $add_config = [ |
280 | 283 | 'skip_userinfo' => true, |
281 | 284 | 'persist_access_token' => true, |
282 | | - 'guzzle_options' => [ 'handler' => HandlerStack::create($mock) ] |
| 285 | + 'guzzle_options' => [ 'handler' => $handler ] |
283 | 286 | ]; |
284 | 287 | $auth0 = new Auth0( self::$baseConfig + $add_config ); |
285 | 288 |
|
286 | 289 | $_GET['code'] = uniqid(); |
287 | 290 |
|
288 | 291 | $this->assertTrue( $auth0->exchange() ); |
289 | | - $auth0->renewTokens(); |
| 292 | + $auth0->renewTokens(['scope' => 'openid']); |
290 | 293 |
|
291 | 294 | $this->assertEquals( '__test_access_token__', $auth0->getAccessToken() ); |
292 | 295 | $this->assertEquals( $id_token, $auth0->getIdToken() ); |
| 296 | + |
| 297 | + $renew_request = $request_history[1]['request']; |
| 298 | + $renew_body = json_decode($renew_request->getBody(), true); |
| 299 | + $this->assertEquals( 'openid', $renew_body['scope'] ); |
| 300 | + $this->assertEquals( '__test_client_secret__', $renew_body['client_secret'] ); |
| 301 | + $this->assertEquals( '__test_client_id__', $renew_body['client_id'] ); |
| 302 | + $this->assertEquals( '2.3.4', $renew_body['refresh_token'] ); |
| 303 | + $this->assertEquals( 'https://__test_domain__/oauth/token', (string) $renew_request->getUri() ); |
293 | 304 | } |
294 | 305 |
|
295 | 306 | public function testThatGetLoginUrlUsesDefaultValues() |
|
0 commit comments