You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.3 KiB
80 lines
2.3 KiB
<?php |
|
|
|
/** |
|
* TrustedUserServiceTest.php |
|
* @package openemr |
|
* @link http://www.open-emr.org |
|
* @author Stephen Nielson <stephen@nielson.org> |
|
* @copyright Copyright (c) 2021 Stephen Nielson <stephen@nielson.org> |
|
* @license https://github.com/openemr/openemr/blob/master/LICENSE GNU General Public License 3 |
|
*/ |
|
|
|
namespace OpenEMR\Tests\Services; |
|
|
|
use OpenEMR\Services\TrustedUserService; |
|
use OpenEMR\Services\UserService; |
|
use PHPUnit\Framework\TestCase; |
|
use Ramsey\Uuid\Uuid; |
|
|
|
class TrustedUserServiceTest extends TestCase |
|
{ |
|
private $clientId; |
|
const TRUSTED_CLIENT_TAG = '-trusted-user-test'; |
|
|
|
public function setUp(): void |
|
{ |
|
} |
|
|
|
public function tearDown(): void |
|
{ |
|
// clean up any database records we made |
|
sqlQueryNoLog("DELETE FROM `oauth_trusted_user` WHERE `code` LIKE '%" |
|
. self::TRUSTED_CLIENT_TAG . "%'"); |
|
} |
|
|
|
/** |
|
* Verify api authorization with a valid user uuid |
|
*/ |
|
public function testIsTrustedUserWithUserId() |
|
{ |
|
$userUuid = (new UserService())->getSystemUser()['uuid']; |
|
$clientId = Uuid::uuid4()->toString(); |
|
$service = new TrustedUserService(); |
|
$code = $clientId . self::TRUSTED_CLIENT_TAG; |
|
$id = $service->saveTrustedUser( |
|
$clientId, |
|
$userUuid, |
|
'openid', |
|
0, |
|
$code, |
|
'{"sessionId"=>"value"}', |
|
'client_credentials' |
|
); |
|
|
|
|
|
$trustedUser = $service->getTrustedUserByCode($code); |
|
$this->assertNotEmpty($trustedUser, "Trusted user should have saved with valid user uuid"); |
|
|
|
// now check to make sure our user is trusted |
|
$isTrusted = $service->isTrustedUser($clientId, $userUuid); |
|
|
|
$this->assertEquals(true, $isTrusted, "Client with valid user uuid should be trusted"); |
|
} |
|
|
|
public function testSaveTrustedUserThrowsExceptionIfInvalidUserId() |
|
{ |
|
$clientId = Uuid::uuid4()->toString(); |
|
$service = new TrustedUserService(); |
|
$code = $clientId . self::TRUSTED_CLIENT_TAG; |
|
$this->expectException(\InvalidArgumentException::class); |
|
$id = $service->saveTrustedUser( |
|
$clientId, |
|
null, |
|
'openid', |
|
0, |
|
$code, |
|
'{"sessionId"=>"value"}', |
|
'authorization_grant' |
|
); |
|
} |
|
}
|
|
|