@@ -130,6 +130,30 @@ public function testDefaultScopeValidation(array $available, array $default, boo
130130 $ this ->addToAssertionCount (1 );
131131 }
132132
133+ /**
134+ * @dataProvider revokeRefreshTokensProvider
135+ */
136+ public function testEnablingAndDisablingRevocationOfRefreshTokens (bool $ shouldRevokeRefreshTokens ): void
137+ {
138+ $ container = new ContainerBuilder ();
139+ $ extension = new LeagueOAuth2ServerExtension ();
140+
141+ $ extension ->load ($ this ->getValidConfiguration (['revoke_refresh_tokens ' => $ shouldRevokeRefreshTokens ]), $ container );
142+
143+ $ authorizationServer = $ container ->findDefinition (AuthorizationServer::class);
144+ $ methodCalls = $ authorizationServer ->getMethodCalls ();
145+ $ revokeRefreshTokens = null ;
146+
147+ foreach ($ methodCalls as $ methodCall ) {
148+ if ('revokeRefreshTokens ' === $ methodCall [0 ]) {
149+ $ revokeRefreshTokens = $ methodCall [1 ][0 ];
150+ break ;
151+ }
152+ }
153+
154+ $ this ->assertSame ($ shouldRevokeRefreshTokens , $ revokeRefreshTokens );
155+ }
156+
133157 public function scopeProvider (): iterable
134158 {
135159 yield 'when a default scope is part of available scopes ' => [
@@ -155,6 +179,7 @@ private function getValidConfiguration(array $options = []): array
155179 'enable_client_credentials_grant ' => $ options ['enable_client_credentials_grant ' ] ?? true ,
156180 'enable_password_grant ' => $ options ['enable_password_grant ' ] ?? true ,
157181 'enable_refresh_token_grant ' => $ options ['enable_refresh_token_grant ' ] ?? true ,
182+ 'revoke_refresh_tokens ' => $ options ['revoke_refresh_tokens ' ] ?? true ,
158183 ],
159184 'resource_server ' => [
160185 'public_key ' => 'foo ' ,
@@ -175,6 +200,12 @@ private function getValidConfiguration(array $options = []): array
175200 ];
176201 }
177202
203+ public function revokeRefreshTokensProvider (): iterable
204+ {
205+ yield 'do revoke refresh tokens ' => [true ];
206+ yield 'do not revoke refresh tokens ' => [false ];
207+ }
208+
178209 private function setupContainer (ContainerBuilder $ container ): void
179210 {
180211 $ container ->register (ScopeManager::class);
0 commit comments