Fix regression for Github provider
Closes #197 Ref: https://github.com/thephpleague/oauth2-client/issues/197#issuecomment-69527969oauth1test
parent
ae0183803e
commit
ffef5ea630
|
@ -10,6 +10,8 @@ class Github extends AbstractProvider
|
|||
|
||||
public $domain = 'https://github.com';
|
||||
|
||||
public $apiDomain = 'https://api.github.com';
|
||||
|
||||
public function urlAuthorize()
|
||||
{
|
||||
return $this->domain.'/login/oauth/authorize';
|
||||
|
@ -23,7 +25,7 @@ class Github extends AbstractProvider
|
|||
public function urlUserDetails(\League\OAuth2\Client\Token\AccessToken $token)
|
||||
{
|
||||
if ($this->domain === 'https://github.com') {
|
||||
return $this->domain.'/user?access_token='.$token;
|
||||
return $this->apiDomain.'/user?access_token='.$token;
|
||||
}
|
||||
return $this->domain.'/api/v3/user?access_token='.$token;
|
||||
}
|
||||
|
@ -31,7 +33,7 @@ class Github extends AbstractProvider
|
|||
public function urlUserEmails(\League\OAuth2\Client\Token\AccessToken $token)
|
||||
{
|
||||
if ($this->domain === 'https://github.com') {
|
||||
return $this->domain.'/user/emails?access_token='.$token;
|
||||
return $this->apiDomain.'/user/emails?access_token='.$token;
|
||||
}
|
||||
return $this->domain.'/api/v3/user/emails?access_token='.$token;
|
||||
}
|
||||
|
|
|
@ -115,6 +115,23 @@ class GithubTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertEquals('mock_email', $this->provider->getUserEmail($token));
|
||||
}
|
||||
|
||||
public function testGithubDomainUrls()
|
||||
{
|
||||
$client = m::mock('Guzzle\Service\Client');
|
||||
$response = m::mock('Guzzle\Http\Message\Response');
|
||||
$response->shouldReceive('getBody')->times(1)->andReturn('access_token=mock_access_token&expires=3600&refresh_token=mock_refresh_token&otherKey={1234}');
|
||||
|
||||
$client->shouldReceive('setBaseUrl')->times(1);
|
||||
$client->shouldReceive('post->send')->times(1)->andReturn($response);
|
||||
$this->provider->setHttpClient($client);
|
||||
$token = $this->provider->getAccessToken('authorization_code', ['code' => 'mock_authorization_code']);
|
||||
|
||||
$this->assertEquals($this->provider->domain.'/login/oauth/authorize', $this->provider->urlAuthorize());
|
||||
$this->assertEquals($this->provider->domain.'/login/oauth/access_token', $this->provider->urlAccessToken());
|
||||
$this->assertEquals($this->provider->apiDomain.'/user?access_token=mock_access_token', $this->provider->urlUserDetails($token));
|
||||
$this->assertEquals($this->provider->apiDomain.'/user/emails?access_token=mock_access_token', $this->provider->urlUserEmails($token));
|
||||
}
|
||||
|
||||
public function testGithubEnterpriseDomainUrls()
|
||||
{
|
||||
$this->provider->domain = 'https://github.company.com';
|
||||
|
|
Loading…
Reference in New Issue