57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__.'/../../Base.php';
|
|
|
|
use Kanboard\Core\Http\OAuth2;
|
|
|
|
class OAuth2Test extends Base
|
|
{
|
|
public function testAuthUrl()
|
|
{
|
|
$oauth = new OAuth2($this->container);
|
|
$oauth->createService('A', 'B', 'C', 'D', 'E', array('f', 'g'));
|
|
$state = $oauth->getState();
|
|
$this->assertEquals('D?response_type=code&client_id=A&redirect_uri=C&scope=f+g&state='.$state, $oauth->getAuthorizationUrl());
|
|
}
|
|
|
|
public function testAuthHeader()
|
|
{
|
|
$oauth = new OAuth2($this->container);
|
|
$oauth->createService('A', 'B', 'C', 'D', 'E', array('f', 'g'));
|
|
|
|
$oauth->setAccessToken('foobar', 'BeaRer');
|
|
$this->assertEquals('Authorization: Bearer foobar', $oauth->getAuthorizationHeader());
|
|
|
|
$oauth->setAccessToken('foobar', 'unknown');
|
|
$this->assertEquals('', $oauth->getAuthorizationHeader());
|
|
}
|
|
|
|
public function testAccessToken()
|
|
{
|
|
$oauth = new OAuth2($this->container);
|
|
|
|
$params = array(
|
|
'code' => 'something',
|
|
'client_id' => 'A',
|
|
'client_secret' => 'B',
|
|
'redirect_uri' => 'C',
|
|
'grant_type' => 'authorization_code',
|
|
'state' => $oauth->getState(),
|
|
);
|
|
|
|
$response = json_encode(array(
|
|
'token_type' => 'bearer',
|
|
'access_token' => 'plop',
|
|
));
|
|
|
|
$this->container['httpClient']
|
|
->expects($this->once())
|
|
->method('postForm')
|
|
->with('E', $params, array('Accept: application/json'))
|
|
->will($this->returnValue($response));
|
|
|
|
$oauth->createService('A', 'B', 'C', 'D', 'E', array('f', 'g'));
|
|
$oauth->getAccessToken('something');
|
|
}
|
|
}
|