friendica-addons/twitter/vendor/jublonet/codebird-php/test/oauth_tests.php

130 lines
3.5 KiB
PHP

<?php
namespace Codebird;
require_once ('test/codebirdm.php');
/**
* A Twitter library in PHP.
*
* @package codebird-test
* @author Jublo Limited <support@jublo.net>
* @copyright 2010-2018 Jublo Limited <support@jublo.net>
* @license https://opensource.org/licenses/GPL-3.0 GNU General Public License 3.0
* @link https://github.com/jublonet/codebird-php
*/
/**
* OAuth tests
*
* @package codebird-test
*/
class Oauth_Test extends \PHPUnit\Framework\TestCase
{
/**
* Initialise Codebird class
*
* @return \Codebird\Codebird The Codebird class
*/
protected function getCB()
{
Codebird::setConsumerKey('123', '456');
$cb = new CodebirdM();
return $cb;
}
/**
* Tests oauth_authenticate
*/
public function testOauthAuthenticate()
{
$cb = $this->getCB();
$cb->setToken('123', '456');
$this->assertEquals(
'https://api.twitter.com/oauth/authenticate?oauth_token=123',
$cb->oauth_authenticate()
);
$this->assertEquals(
'https://api.twitter.com/oauth/authenticate?oauth_token=123&force_login=1',
$cb->oauth_authenticate($force_login = true)
);
$this->assertEquals(
'https://api.twitter.com/oauth/authenticate?'
. 'oauth_token=123&force_login=1&screen_name=TwitterAPI',
$cb->oauth_authenticate($force_login = true, $screen_name = 'TwitterAPI')
);
$this->assertEquals(
'https://api.twitter.com/oauth/authenticate?'
. 'oauth_token=123&screen_name=TwitterAPI',
$cb->oauth_authenticate($force_login = false, $screen_name = 'TwitterAPI')
);
}
/**
* Tests oauth_authorize
*/
public function testOauthAuthorize()
{
$cb = $this->getCB();
$cb->setToken('123', '456');
$this->assertEquals(
'https://api.twitter.com/oauth/authorize?oauth_token=123',
$cb->oauth_authorize()
);
$this->assertEquals(
'https://api.twitter.com/oauth/authorize?oauth_token=123&force_login=1',
$cb->oauth_authorize($force_login = true)
);
$this->assertEquals(
'https://api.twitter.com/oauth/authorize?'
. 'oauth_token=123&force_login=1&screen_name=TwitterAPI',
$cb->oauth_authorize($force_login = true, $screen_name = 'TwitterAPI')
);
$this->assertEquals(
'https://api.twitter.com/oauth/authorize?'
. 'oauth_token=123&screen_name=TwitterAPI',
$cb->oauth_authorize($force_login = false, $screen_name = 'TwitterAPI')
);
}
/**
* Tests oauth2_token
*/
public function testOauth2Token()
{
$cb = $this->getCB();
$expected = new \stdClass;
$expected->token_type = 'bearer';
$expected->access_token = 'VqiO0n2HrKE';
$expected->httpstatus = '200';
$expected->rate = null;
$this->assertEquals($expected, $cb->oauth2_token());
}
/**
* Tests _getBearerAuthorization
* @expectedException \Exception
* @expectedExceptionMessage To make an app-only auth API request, consumer key or bearer token must be set.
*/
public function testGetBearerAuthorization1()
{
$cb = $this->getCB();
Codebird::setConsumerKey(null, null);
$cb->setBearerToken(null);
$cb->call('_getBearerAuthorization', []);
}
/**
* Tests _getBearerAuthorization
*/
public function testGetBearerAuthorization2()
{
$cb = $this->getCB();
$cb->setBearerToken('12345678');
$this->assertEquals('Bearer 12345678', $cb->call('_getBearerAuthorization', []));
// automatic fetching
$cb->setBearerToken(null);
$this->assertEquals('Bearer VqiO0n2HrKE', $cb->call('_getBearerAuthorization', []));
}
}