0
0
mirror of https://github.com/salesagility/SuiteCRM.git synced 2024-12-23 04:48:03 +00:00
salesagility_SuiteCRM/tests/unit/phpunit/modules/OAuthTokens/OAuthTokenTest.php
2023-07-18 15:53:47 +01:00

226 lines
6.7 KiB
PHP

<?php
use SuiteCRM\Test\SuitePHPUnitFrameworkTestCase;
class OAuthTokenTest extends SuitePHPUnitFrameworkTestCase
{
protected function setUp(): void
{
parent::setUp();
global $current_user;
get_sugar_config_defaults();
$current_user = BeanFactory::newBean('Users');
}
public function test__construct(): void
{
// Execute the constructor and check for the Object type and attributes
$oauthToken = BeanFactory::newBean('OAuthTokens');
self::assertInstanceOf('OAuthToken', $oauthToken);
self::assertInstanceOf('SugarBean', $oauthToken);
self::assertEquals('OAuthTokens', $oauthToken->module_dir);
self::assertEquals('OAuthToken', $oauthToken->object_name);
self::assertEquals('oauth_tokens', $oauthToken->table_name);
self::assertEquals(true, $oauthToken->disable_row_level_security);
}
public function testsetState(): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
$oauthToken->setState($oauthToken::REQUEST);
self::assertEquals($oauthToken::REQUEST, $oauthToken->tstate);
}
public function testsetConsumer(): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
$oauthKey = BeanFactory::newBean('OAuthKeys');
$oauthKey->id = '1';
$oauthToken->setConsumer($oauthKey);
self::assertEquals($oauthKey->id, $oauthToken->consumer);
self::assertEquals($oauthKey, $oauthToken->consumer_obj);
}
public function testsetCallbackURL(): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
$url = 'test url';
$oauthToken->setCallbackURL($url);
self::assertEquals($url, $oauthToken->callback_url);
}
public function testgenerate(): void
{
$result = OAuthToken::generate();
self::assertInstanceOf('OAuthToken', $result);
self::assertGreaterThan(0, strlen((string) $result->token));
self::assertGreaterThan(0, strlen((string) $result->secret));
}
public function testSaveAndOthers(): void
{
$oauthToken = OAuthToken::generate();
$oauthToken->save();
//test for record ID to verify that record is saved
self::assertTrue(isset($oauthToken->id));
self::assertEquals(12, strlen((string) $oauthToken->id));
//test load method
$this->load($oauthToken->id);
//test invalidate method
$token = OAuthToken::load($oauthToken->id);
$this->invalidate($token);
//test authorize method
$this->authorize($token);
//test mark_deleted method
$this->mark_deleted($oauthToken->id);
}
public function load($id): void
{
$token = OAuthToken::load($id);
self::assertInstanceOf('OAuthToken', $token);
self::assertTrue(isset($token->id));
}
public function invalidate($token): void
{
$token->invalidate();
self::assertEquals($token::INVALID, $token->tstate);
self::assertEquals(false, $token->verify);
}
public function authorize($token): void
{
$result = $token->authorize('test');
self::assertEquals(false, $result);
$token->tstate = $token::REQUEST;
$result = $token->authorize('test');
self::assertEquals('test', $token->authdata);
self::assertGreaterThan(0, strlen((string) $result));
self::assertEquals($result, $token->verify);
}
public function mark_deleted($id): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
//execute the method
$oauthToken->mark_deleted($id);
//verify that record can not be loaded anymore
$token = OAuthToken::load($id);
self::assertEquals(null, $token);
}
public function testcreateAuthorized(): void
{
$oauthKey = BeanFactory::newBean('OAuthKeys');
$oauthKey->id = '1';
$user = BeanFactory::newBean('Users');
$user->retrieve('1');
$oauthToken = OAuthToken::createAuthorized($oauthKey, $user);
self::assertEquals($oauthKey->id, $oauthToken->consumer);
self::assertEquals($oauthKey, $oauthToken->consumer_obj);
self::assertEquals($oauthToken::ACCESS, $oauthToken->tstate);
self::assertEquals($user->id, $oauthToken->assigned_user_id);
//execute copyAuthData method
$oauthToken->authdata = 'test';
$this->copyAuthData($oauthToken);
//finally mark deleted for cleanup
$oauthToken->mark_deleted($oauthToken->id);
}
public function copyAuthData($token): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
$oauthToken->copyAuthData($token);
self::assertEquals($token->authdata, $oauthToken->authdata);
self::assertEquals($token->assigned_user_id, $oauthToken->assigned_user_id);
}
public function testqueryString(): void
{
$oauthToken = BeanFactory::newBean('OAuthTokens');
$result = $oauthToken->queryString();
self::assertEquals('oauth_token=&oauth_token_secret=', $result);
//test with attributes set
$oauthToken->token = 'toekn';
$oauthToken->secret = 'secret';
$result = $oauthToken->queryString();
self::assertEquals('oauth_token=toekn&oauth_token_secret=secret', $result);
}
public function testcleanup(): void
{
// Execute the method and test that it works and doesn't throw an exception.
try {
OAuthToken::cleanup();
self::assertTrue(true);
} catch (Exception $e) {
self::fail($e->getMessage() . "\nTrace:\n" . $e->getTraceAsString());
}
}
public function testdeleteByConsumer(): void
{
// Execute the method and test that it works and doesn't throw an exception.
try {
OAuthToken::deleteByConsumer('1');
self::assertTrue(true);
} catch (Exception $e) {
self::fail($e->getMessage() . "\nTrace:\n" . $e->getTraceAsString());
}
}
public function testdeleteByUser(): void
{
// Execute the method and test that it works and doesn't throw an exception.
try {
OAuthToken::deleteByUser('1');
self::assertTrue(true);
} catch (Exception $e) {
self::fail($e->getMessage() . "\nTrace:\n" . $e->getTraceAsString());
}
}
public function testdisplayDateFromTs(): void
{
//test with empty array
$result = displayDateFromTs(array('' => ''), 'timestamp', '');
self::assertEquals('', $result);
//test with a valid array
$result = displayDateFromTs(array('TIMESTAMP' => '1272508903'), 'timestamp', '');
self::assertEquals('04/29/2010 02:41', $result);
}
}