mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-10 11:33:17 +00:00
109 lines
4.8 KiB
PHP
109 lines
4.8 KiB
PHP
<?php
|
|
use Alchemy\Phrasea\Model\Entities\ApiApplication;
|
|
|
|
class api_oauthv2_ApplicationTest extends \PhraseanetTestCase
|
|
{
|
|
public function testLoad_from_client_id()
|
|
{
|
|
$loaded = self::$DI['app']['repo.api-applications']->findByClientId(self::$DI['oauth2-app-user']->getClientId());
|
|
$this->assertInstanceOf('ApiApplication', $loaded);
|
|
$this->assertEquals(self::$DI['oauth2-app-user'], $loaded);
|
|
}
|
|
|
|
public function testLoad_dev_app_by_user()
|
|
{
|
|
$apps = self::$DI['app']['repo.api-applications']->findByCreator(self::$DI['user']);
|
|
$this->assertTrue(is_array($apps));
|
|
$this->assertTrue(count($apps) > 0);
|
|
$found = false;
|
|
foreach ($apps as $app) {
|
|
if ($app->get_id() === self::$DI['oauth2-app-user']->getId()) {
|
|
$found = true;
|
|
}
|
|
$this->assertInstanceOf('ApiApplication', $app);
|
|
}
|
|
|
|
if (!$found) {
|
|
$this->fail();
|
|
}
|
|
}
|
|
|
|
public function testLoad_app_by_user()
|
|
{
|
|
$apps = self::$DI['app']['repo.api-applications']->findByUser(self::$DI['user']);
|
|
$this->assertTrue(is_array($apps));
|
|
$this->assertTrue(count($apps) > 0);
|
|
$found = false;
|
|
|
|
foreach ($apps as $app) {
|
|
if ($app->get_id() === self::$DI['oauth2-app-user']->get_id()) {
|
|
$found = true;
|
|
}
|
|
$this->assertInstanceOf('ApiApplication', $app);
|
|
}
|
|
|
|
if (!$found) {
|
|
$this->fail();
|
|
}
|
|
}
|
|
|
|
public function testGettersAndSetters()
|
|
{
|
|
$this->assertTrue(is_int(self::$DI['oauth2-app-user']->getId()));
|
|
$this->assertInstanceOf('Alchemy\Phrasea\Model\Entities\User', self::$DI['oauth2-app-user']->getCreator());
|
|
$this->assertEquals(self::$DI['user']->getId(), self::$DI['oauth2-app-user']->getCreator()->getId());
|
|
$this->assertTrue(in_array(self::$DI['oauth2-app-user']->getType(), [ApiApplication::DESKTOP_TYPE, ApiApplication::WEB_TYPE]));
|
|
$this->assertTrue(is_string(self::$DI['oauth2-app-user']->getNonce()));
|
|
$this->assertEquals(64, strlen(self::$DI['oauth2-app-user']->getNonce()));
|
|
self::$DI['oauth2-app-user']->set_type(ApiApplication::WEB_TYPE);
|
|
$this->assertEquals(ApiApplication::WEB_TYPE, self::$DI['oauth2-app-user']->getType());
|
|
self::$DI['oauth2-app-user']->set_type(ApiApplication::DESKTOP_TYPE);
|
|
$this->assertEquals(ApiApplication::DESKTOP_TYPE, self::$DI['oauth2-app-user']->getType());
|
|
$this->assertEquals(ApiApplication::NATIVE_APP_REDIRECT_URI, self::$DI['oauth2-app-user']->getRedirectUri());
|
|
self::$DI['oauth2-app-user']->setType(ApiApplication::WEB_TYPE);
|
|
|
|
self::$DI['oauth2-app-user']->setName('prout');
|
|
$this->assertEquals('prout', self::$DI['oauth2-app-user']->getName());
|
|
self::$DI['oauth2-app-user']->setName('test application for user');
|
|
$this->assertEquals('test application for user', self::$DI['oauth2-app-user']->getName());
|
|
|
|
$desc = 'prouti prouto prout prout';
|
|
self::$DI['oauth2-app-user']->setDescription($desc);
|
|
$this->assertEquals($desc, self::$DI['oauth2-app-user']->getDescription());
|
|
self::$DI['oauth2-app-user']->setDescription('');
|
|
$this->assertEquals('', self::$DI['oauth2-app-user']->getDescription());
|
|
|
|
$site = 'http://www.example.com/';
|
|
self::$DI['oauth2-app-user']->setWebsite($site);
|
|
$this->assertEquals($site, self::$DI['oauth2-app-user']->getWebsite());
|
|
self::$DI['oauth2-app-user']->setWebsite('');
|
|
$this->assertEquals('', self::$DI['oauth2-app-user']->getWebsite());
|
|
|
|
$this->assertInstanceOf('DateTime', self::$DI['oauth2-app-user']->getCreated());
|
|
$this->assertInstanceOf('DateTime', self::$DI['oauth2-app-user']->getUpdated());
|
|
|
|
$this->assertMd5(self::$DI['oauth2-app-user']->getClientId());
|
|
|
|
$client_id = md5('prouto');
|
|
self::$DI['oauth2-app-user']->seClientId($client_id);
|
|
$this->assertEquals($client_id, self::$DI['oauth2-app-user']->getClientId());
|
|
$this->assertMd5(self::$DI['oauth2-app-user']->getClientId());
|
|
|
|
$this->assertMd5(self::$DI['oauth2-app-user']->getClientSecret());
|
|
|
|
$client_secret = md5('prouto');
|
|
self::$DI['oauth2-app-user']->setClientSecret($client_secret);
|
|
$this->assertEquals($client_secret, self::$DI['oauth2-app-user']->getClientSecret());
|
|
$this->assertMd5(self::$DI['oauth2-app-user']->getClientSecret());
|
|
|
|
$uri = 'http://www.example.com/callback/';
|
|
self::$DI['oauth2-app-user']->setRedirectUri($uri);
|
|
$this->assertEquals($uri, self::$DI['oauth2-app-user']->getRedirectUri());
|
|
}
|
|
|
|
private function assertmd5($md5)
|
|
{
|
|
$this->assertTrue((count(preg_match('/[a-z0-9]{32}/', $md5)) === 1));
|
|
}
|
|
}
|