aboutsummaryrefslogtreecommitdiffstats
path: root/library/oauth2/test/OAuth2/Storage/JwtAccessTokenTest.php
blob: a6acbea1f844f6dc746ff8c941180c00a6433ad1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

namespace OAuth2\Storage;

use OAuth2\Encryption\Jwt;

class JwtAccessTokenTest extends BaseTest
{
    /** @dataProvider provideStorage */
    public function testSetAccessToken($storage)
    {
        if (!$storage instanceof PublicKey) {
            // incompatible storage
            return;
        }

        $crypto = new jwtAccessToken($storage);

        $publicKeyStorage = Bootstrap::getInstance()->getMemoryStorage();
        $encryptionUtil = new Jwt();

        $jwtAccessToken = array(
            'access_token' => rand(),
            'expires' => time() + 100,
            'scope'   => 'foo',
        );

        $token = $encryptionUtil->encode($jwtAccessToken, $storage->getPrivateKey(), $storage->getEncryptionAlgorithm());

        $this->assertNotNull($token);

        $tokenData = $crypto->getAccessToken($token);

        $this->assertTrue(is_array($tokenData));

        /* assert the decoded token is the same */
        $this->assertEquals($tokenData['access_token'], $jwtAccessToken['access_token']);
        $this->assertEquals($tokenData['expires'], $jwtAccessToken['expires']);
        $this->assertEquals($tokenData['scope'], $jwtAccessToken['scope']);
    }
}