public function ImplicitFunctionalTest::testImplicitGrant in Simple OAuth (OAuth2) & OpenID Connect 5.x
Same name and namespace in other branches
- 8.4 tests/src/Functional/ImplicitFunctionalTest.php \Drupal\Tests\simple_oauth\Functional\ImplicitFunctionalTest::testImplicitGrant()
Test the valid Implicit grant.
File
- tests/
src/ Functional/ ImplicitFunctionalTest.php, line 54
Class
- ImplicitFunctionalTest
- The implicit tests.
Namespace
Drupal\Tests\simple_oauth\FunctionalCode
public function testImplicitGrant() {
$valid_params = [
'response_type' => 'token',
'client_id' => $this->client
->uuid(),
'client_secret' => $this->clientSecret,
];
// 1. Anonymous request invites the user to log in.
$this
->drupalGet($this->authorizeUrl
->toString(), [
'query' => $valid_params,
]);
$assert_session = $this
->assertSession();
$assert_session
->buttonExists('Log in');
// 2. Log the user in and try again.
$this
->drupalLogin($this->user);
$this
->drupalGet($this->authorizeUrl
->toString(), [
'query' => $valid_params,
]);
$assert_session = $this
->assertSession();
$assert_session
->statusCodeEquals(500);
$this
->config('simple_oauth.settings')
->set('use_implicit', TRUE)
->save();
$this
->drupalGet($this->authorizeUrl
->toString(), [
'query' => $valid_params,
]);
$assert_session = $this
->assertSession();
$assert_session
->statusCodeEquals(200);
$assert_session
->titleEquals('Grant Access to Client | Drupal');
$assert_session
->buttonExists('Grant');
$assert_session
->responseContains('Permissions');
// 3. Grant access by submitting the form and get the token back.
$this
->drupalPostForm($this->authorizeUrl, [], 'Grant', [
'query' => $valid_params,
]);
$assert_session = $this
->assertSession();
$assert_session
->statusCodeEquals(200);
$assert_session
->addressMatches('/\\/oauth\\/test#access_token=.*&token_type=Bearer&expires_in=\\d*/');
}