mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
Love for unit tests
This commit is contained in:
@@ -13,53 +13,38 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var Client
|
||||
*/
|
||||
protected $client;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Token
|
||||
*/
|
||||
private static $token;
|
||||
private static $APIrecord;
|
||||
protected $record;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Account
|
||||
*/
|
||||
private static $account;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Application
|
||||
*/
|
||||
private static $oauthApplication;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Token
|
||||
*/
|
||||
private static $adminToken;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Account
|
||||
*/
|
||||
private static $adminAccount;
|
||||
|
||||
/**
|
||||
* @var \API_OAuth2_Application
|
||||
*/
|
||||
private static $adminApplication;
|
||||
private static $databoxe_ids = [];
|
||||
private static $apiInitialized = false;
|
||||
|
||||
abstract public function getParameters(array $parameters = []);
|
||||
|
||||
abstract public function unserialize($data);
|
||||
|
||||
abstract public function getAcceptMimeType();
|
||||
|
||||
private static $apiInitialized = false;
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$this->unsetToken();
|
||||
@@ -86,14 +71,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
self::$adminToken = self::$adminAccount->get_token()->get_value();
|
||||
self::$apiInitialized = true;
|
||||
}
|
||||
|
||||
if (!self::$APIrecord) {
|
||||
$file = new File(self::$DI['app'], self::$DI['app']['mediavorus']->guess(__DIR__ . '/../../../../files/test024.jpg'), self::$DI['collection']);
|
||||
self::$APIrecord = \record_adapter::createFromFile($file, self::$DI['app']);
|
||||
self::$APIrecord->generate_subdefs(self::$APIrecord->get_databox(), self::$DI['app']);
|
||||
}
|
||||
|
||||
$this->record = self::$APIrecord;
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
@@ -107,10 +84,11 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
self::$adminApplication->delete();
|
||||
}
|
||||
|
||||
self::$APIrecord->delete();
|
||||
self::$APIrecord = null;
|
||||
|
||||
self::$apiInitialized = false;
|
||||
self::$databoxe_ids = [];
|
||||
|
||||
self::$token = self::$account = self::$oauthApplication = self::$adminToken
|
||||
= self::$adminAccount = self::$adminApplication = null;
|
||||
|
||||
parent::tearDownAfterClass();
|
||||
}
|
||||
@@ -1040,9 +1018,9 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$keys = array_keys($this->record->get_subdefs());
|
||||
$keys = array_keys(self::$DI['record_1']->get_subdefs());
|
||||
|
||||
$route = '/api/v1/records/' . $this->record->get_sbas_id() . '/' . $this->record->get_record_id() . '/embed/';
|
||||
$route = '/api/v1/records/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/embed/';
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
|
||||
self::$DI['client']->request('GET', $route, $this->getParameters(), [], ['HTTP_Accept' => $this->getAcceptMimeType()]);
|
||||
@@ -1054,7 +1032,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->assertArrayHasKey('embed', $content['response']);
|
||||
|
||||
foreach ($content['response']['embed'] as $embed) {
|
||||
$this->checkEmbed($embed, $this->record);
|
||||
$this->checkEmbed($embed, self::$DI['record_1']);
|
||||
}
|
||||
$route = '/api/v1/records/24892534/51654651553/embed/';
|
||||
$this->evaluateNotFoundRoute($route, ['GET']);
|
||||
@@ -1073,11 +1051,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$story = \record_adapter::createStory(self::$DI['app'], self::$DI['collection']);
|
||||
$media = self::$DI['app']['mediavorus']->guess(__DIR__ . '/../../../../files/cestlafete.jpg');
|
||||
$story->substitute_subdef('preview', $media, self::$DI['app']);
|
||||
$story->substitute_subdef('thumbnail', $media, self::$DI['app']);
|
||||
|
||||
$story = self::$DI['record_story_1'];
|
||||
$keys = array_keys($story->get_subdefs());
|
||||
|
||||
$route = '/api/v1/stories/' . $story->get_sbas_id() . '/' . $story->get_record_id() . '/embed/';
|
||||
@@ -1100,7 +1074,6 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$route = '/api/v1/stories/any_bad_id/sfsd5qfsd5/embed/';
|
||||
$this->evaluateBadRequestRoute($route, ['GET']);
|
||||
$this->evaluateMethodNotAllowedRoute($route, ['POST', 'PUT', 'DELETE']);
|
||||
$story->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1110,7 +1083,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$route = '/api/v1/records/' . $this->record->get_sbas_id() . '/' . $this->record->get_record_id() . '/embed/';
|
||||
$route = '/api/v1/records/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/embed/';
|
||||
|
||||
self::$DI['client']->request('GET', $route, $this->getParameters(['mimes' => ['image/jpg', 'image/jpeg']]), [], ['HTTP_Accept' => $this->getAcceptMimeType()]);
|
||||
$content = $this->unserialize(self::$DI['client']->getResponse()->getContent());
|
||||
@@ -1118,7 +1091,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
$this->assertArrayHasKey('embed', $content['response']);
|
||||
|
||||
foreach ($content['response']['embed'] as $embed) {
|
||||
$this->checkEmbed($embed, $this->record);
|
||||
$this->checkEmbed($embed, self::$DI['record_1']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1175,8 +1148,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
|
||||
$file = new File(self::$DI['app'], self::$DI['app']['mediavorus']->guess(__DIR__ . '/../../../../files/test001.jpg'), self::$DI['collection']);
|
||||
$record = \record_adapter::createFromFile($file, self::$DI['app']);
|
||||
$record = self::$DI['record_1'];
|
||||
|
||||
$route = '/api/v1/records/' . $record->get_sbas_id() . '/' . $record->get_record_id() . '/setmetadatas/';
|
||||
$caption = $record->get_caption();
|
||||
@@ -1287,6 +1259,8 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
foreach ($status_bits as $n => $datas) {
|
||||
$this->assertEquals(substr($record_status, ($n), 1), $tochange[$n]);
|
||||
}
|
||||
|
||||
self::$DI['record_1']->set_binary_status(str_repeat('0', 32));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -22,14 +22,9 @@ class oauthv2_application_test extends \PhraseanetAuthenticatedWebTestCase
|
||||
protected $client;
|
||||
protected $queryParameters;
|
||||
|
||||
public static function setUpBeforeClass()
|
||||
public function bootTestCase()
|
||||
{
|
||||
parent::setUpBeforeClass();
|
||||
|
||||
$environment = 'test';
|
||||
$application = require __DIR__ . '/../../../../../lib/Alchemy/Phrasea/Application/Api.php';
|
||||
|
||||
self::$appli = \API_OAuth2_Application::create($application, self::$DI['user'], 'test');
|
||||
self::$appli = \API_OAuth2_Application::create(self::$DI['app'], self::$DI['user'], 'test');
|
||||
self::$appli->set_description('une description')
|
||||
->set_redirect_uri('http://callback.com/callback/')
|
||||
->set_website('http://website.com/')
|
||||
@@ -41,6 +36,7 @@ class oauthv2_application_test extends \PhraseanetAuthenticatedWebTestCase
|
||||
if (self::$appli !== false) {
|
||||
self::deleteInsertedRow(self::$DI['app']['phraseanet.appbox'], self::$appli);
|
||||
}
|
||||
self::$appli = null;
|
||||
parent::tearDownAfterClass();
|
||||
}
|
||||
|
||||
|
@@ -2,14 +2,13 @@
|
||||
|
||||
namespace Alchemy\Tests\Phrasea\Application;
|
||||
|
||||
use Alchemy\Phrasea\Border\File;
|
||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||
|
||||
class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
public function testDatafilesRouteAuthenticated()
|
||||
{
|
||||
$crawler = self::$DI['client']->request('GET', '/datafiles/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/preview/');
|
||||
self::$DI['client']->request('GET', '/datafiles/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/preview/');
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
@@ -31,11 +30,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$tmp = tempnam(sys_get_temp_dir(), 'testEtag');
|
||||
copy(__DIR__ . '/../../../../files/cestlafete.jpg', $tmp);
|
||||
|
||||
$media = self::$DI['app']['mediavorus']->guess($tmp);
|
||||
|
||||
$file = new File(self::$DI['app'], $media, self::$DI['collection']);
|
||||
$record = \record_adapter::createFromFile($file, self::$DI['app']);
|
||||
|
||||
$record = self::$DI['record_1'];
|
||||
$record->generate_subdefs($record->get_databox(), self::$DI['app']);
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', '/datafiles/' . $record->get_sbas_id() . '/' . $record->get_record_id() . '/preview/');
|
||||
@@ -132,7 +127,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$token = "unexisting_token";
|
||||
$url = '/permalink/v1/' . self::$DI['record_1']->get_sbas_id() . "/" . self::$DI['record_1']->get_record_id() . '/caption/?token='.$token;
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(404, $response->getStatusCode());
|
||||
@@ -143,7 +138,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertTrue(self::$DI['app']['authentication']->isAuthenticated());
|
||||
$url = '/permalink/v1/unexisting_record/unexisting_id/caption/?token=unexisting_token';
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(404, $response->getStatusCode());
|
||||
@@ -186,7 +181,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$token = self::$DI['record_1']->get_thumbnail()->get_permalink()->get_token();
|
||||
$url = '/permalink/v1/' . self::$DI['record_1']->get_sbas_id() . "/" . self::$DI['record_1']->get_record_id() . '/caption/?token='.$token;
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
foreach ($headers as $name => $value) {
|
||||
@@ -203,7 +198,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$token = self::$DI['record_1']->get_preview()->get_permalink()->get_token();
|
||||
$url = '/permalink/v1/whateverIwannt/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/' . $token . '/preview/';
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
foreach ($headers as $name => $value) {
|
||||
@@ -230,7 +225,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$url = '/permalink/v1/whateverIwannt/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/' . $token . '/preview/';
|
||||
|
||||
$url = $url . 'view/';
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
foreach ($headers as $name => $value) {
|
||||
@@ -245,7 +240,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$token = self::$DI['record_1']->get_preview()->get_permalink()->get_token();
|
||||
$url = '/permalink/v1/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/preview/whateverIwannt.jpg?token=' . $token . '';
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertRegExp('/^inline;/', $response->headers->get('content-disposition'));
|
||||
@@ -262,7 +257,7 @@ class OverviewTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$token = self::$DI['record_1']->get_preview()->get_permalink()->get_token();
|
||||
$url = '/permalink/v1/' . self::$DI['record_1']->get_sbas_id() . '/' . self::$DI['record_1']->get_record_id() . '/preview/?token=' . $token . '';
|
||||
|
||||
$crawler = self::$DI['client']->request('GET', $url);
|
||||
self::$DI['client']->request('GET', $url);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
foreach ($headers as $name => $value) {
|
||||
|
Reference in New Issue
Block a user