mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 20:43:25 +00:00
Merge pull request #1002 from romainneutron/fix-1710
[Ready][3.8] Fix 1710 : Add /me route + add user entities in API response
This commit is contained in:
@@ -728,6 +728,12 @@ class V1 implements ControllerProviderInterface
|
|||||||
})->assert('databox_id', '\d+')->assert('story_id', '\d+');
|
})->assert('databox_id', '\d+')->assert('story_id', '\d+');
|
||||||
$controllers->get('/stories/{any_id}/{anyother_id}/', $bad_request_exception);
|
$controllers->get('/stories/{any_id}/{anyother_id}/', $bad_request_exception);
|
||||||
|
|
||||||
|
$controllers->get('/me/', function (SilexApplication $app, Request $request) {
|
||||||
|
$result = $app['api']->get_current_user($app, $request);
|
||||||
|
|
||||||
|
return $result->get_response();
|
||||||
|
});
|
||||||
|
|
||||||
return $controllers;
|
return $controllers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\Application;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -39,6 +39,7 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
*/
|
*/
|
||||||
protected $app;
|
protected $app;
|
||||||
|
|
||||||
|
const OBJECT_TYPE_USER = 'http://api.phraseanet.com/api/objects/user';
|
||||||
const OBJECT_TYPE_STORY = 'http://api.phraseanet.com/api/objects/story';
|
const OBJECT_TYPE_STORY = 'http://api.phraseanet.com/api/objects/story';
|
||||||
const OBJECT_TYPE_STORY_METADATA_BAG = 'http://api.phraseanet.com/api/objects/story-metadata-bag';
|
const OBJECT_TYPE_STORY_METADATA_BAG = 'http://api.phraseanet.com/api/objects/story-metadata-bag';
|
||||||
|
|
||||||
@@ -801,14 +802,16 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$usr_id = null;
|
$usr_id = $user = null;
|
||||||
if ($file->getSession()->getUser($this->app)) {
|
if ($file->getSession()->getUser($this->app)) {
|
||||||
$usr_id = $file->getSession()->getUser($this->app)->get_id();
|
$user = $file->getSession()->getUser($this->app);
|
||||||
|
$usr_id = $user->get_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
$session = array(
|
$session = array(
|
||||||
'id' => $file->getSession()->getId(),
|
'id' => $file->getSession()->getId(),
|
||||||
'usr_id' => $usr_id,
|
'usr_id' => $usr_id,
|
||||||
|
'user' => $user ? $this->list_user($user) : null,
|
||||||
);
|
);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
@@ -1388,6 +1391,7 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
'can_agree' => $participant->getCanAgree(),
|
'can_agree' => $participant->getCanAgree(),
|
||||||
'can_see_others' => $participant->getCanSeeOthers(),
|
'can_see_others' => $participant->getCanSeeOthers(),
|
||||||
'readonly' => $user->get_id() != $this->app['authentication']->getUser()->get_id(),
|
'readonly' => $user->get_id() != $this->app['authentication']->getUser()->get_id(),
|
||||||
|
'user' => $this->list_user($user),
|
||||||
),
|
),
|
||||||
'agreement' => $validation_datas->getAgreement(),
|
'agreement' => $validation_datas->getAgreement(),
|
||||||
'updated_on' => $validation_datas->getUpdated()->format(DATE_ATOM),
|
'updated_on' => $validation_datas->getUpdated()->format(DATE_ATOM),
|
||||||
@@ -1809,10 +1813,12 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
{
|
{
|
||||||
$ret = array(
|
$ret = array(
|
||||||
'basket_id' => $basket->getId(),
|
'basket_id' => $basket->getId(),
|
||||||
|
'owner' => $this->list_user($basket->getOwner($this->app)),
|
||||||
'created_on' => $basket->getCreated()->format(DATE_ATOM),
|
'created_on' => $basket->getCreated()->format(DATE_ATOM),
|
||||||
'description' => (string) $basket->getDescription(),
|
'description' => (string) $basket->getDescription(),
|
||||||
'name' => $basket->getName(),
|
'name' => $basket->getName(),
|
||||||
'pusher_usr_id' => $basket->getPusherId(),
|
'pusher_usr_id' => $basket->getPusherId(),
|
||||||
|
'pusher' => $basket->getPusher($this->app) ? $this->list_user($basket->getPusher($this->app)) : null,
|
||||||
'updated_on' => $basket->getUpdated()->format(DATE_ATOM),
|
'updated_on' => $basket->getUpdated()->format(DATE_ATOM),
|
||||||
'unread' => !$basket->getIsRead(),
|
'unread' => !$basket->getIsRead(),
|
||||||
'validation_basket' => !!$basket->getValidation()
|
'validation_basket' => !!$basket->getValidation()
|
||||||
@@ -1832,6 +1838,7 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
'can_agree' => $participant->getCanAgree(),
|
'can_agree' => $participant->getCanAgree(),
|
||||||
'can_see_others' => $participant->getCanSeeOthers(),
|
'can_see_others' => $participant->getCanSeeOthers(),
|
||||||
'readonly' => $user->get_id() != $this->app['authentication']->getUser()->get_id(),
|
'readonly' => $user->get_id() != $this->app['authentication']->getUser()->get_id(),
|
||||||
|
'user' => $this->list_user($user),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1843,11 +1850,12 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
|
|
||||||
$ret = array_merge(
|
$ret = array_merge(
|
||||||
array(
|
array(
|
||||||
'validation_users' => $users,
|
'validation_users' => $users,
|
||||||
'expires_on' => $expires_on_atom,
|
'expires_on' => $expires_on_atom,
|
||||||
'validation_infos' => $basket->getValidation()->getValidationString($this->app, $this->app['authentication']->getUser()),
|
'validation_infos' => $basket->getValidation()->getValidationString($this->app, $this->app['authentication']->getUser()),
|
||||||
'validation_confirmed' => $basket->getValidation()->getParticipant($this->app['authentication']->getUser(), $this->app)->getIsConfirmed(),
|
'validation_confirmed' => $basket->getValidation()->getParticipant($this->app['authentication']->getUser(), $this->app)->getIsConfirmed(),
|
||||||
'validation_initiator' => $basket->getValidation()->isInitiator($this->app['authentication']->getUser()),
|
'validation_initiator' => $basket->getValidation()->isInitiator($this->app['authentication']->getUser()),
|
||||||
|
'validation_initiator_user' => $this->list_user($basket->getValidation()->getInitiator($this->app)),
|
||||||
), $ret
|
), $ret
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1950,6 +1958,54 @@ class API_V1_adapter extends API_V1_Abstract
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function get_current_user(Application $app, Request $request)
|
||||||
|
{
|
||||||
|
$result = new API_V1_result($app, $request, $this);
|
||||||
|
$result->set_datas(array('user' => $this->list_user($app['authentication']->getUser())));
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function list_user(\User_Adapter $user)
|
||||||
|
{
|
||||||
|
switch ($user->get_gender()) {
|
||||||
|
case 2;
|
||||||
|
$gender = 'Mr';
|
||||||
|
break;
|
||||||
|
case 1;
|
||||||
|
$gender = 'Mrs';
|
||||||
|
break;
|
||||||
|
case 0;
|
||||||
|
$gender = 'Miss';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'@entity@' => self::OBJECT_TYPE_USER,
|
||||||
|
'id' => $user->get_id(),
|
||||||
|
'email' => $user->get_email() ?: null,
|
||||||
|
'login' => $user->get_login() ?: null,
|
||||||
|
'first_name' => $user->get_firstname() ?: null,
|
||||||
|
'last_name' => $user->get_lastname() ?: null,
|
||||||
|
'display_name' => $user->get_display_name() ?: null,
|
||||||
|
'gender' => $gender,
|
||||||
|
'address' => $user->get_address() ?: null,
|
||||||
|
'zip_code' => $user->get_zipcode() ?: null,
|
||||||
|
'city' => $user->get_city() ?: null,
|
||||||
|
'country' => $user->get_country() ?: null,
|
||||||
|
'phone' => $user->get_tel() ?: null,
|
||||||
|
'fax' => $user->get_fax() ?: null,
|
||||||
|
'job' => $user->get_job() ?: null,
|
||||||
|
'position' => $user->get_position() ?: null,
|
||||||
|
'company' => $user->get_company() ?: null,
|
||||||
|
'geoname_id' => $user->get_geonameid() ?: null,
|
||||||
|
'last_connection' => $user->get_last_connection() ? $user->get_last_connection()->format(DATE_ATOM) : null,
|
||||||
|
'created_on' => $user->get_creation_date() ? $user->get_creation_date()->format(DATE_ATOM) : null,
|
||||||
|
'updated_on' => $user->get_modification_date() ? $user->get_modification_date()->format(DATE_ATOM) : null,
|
||||||
|
'locale' => $user->get_locale() ?: null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List all databoxes of the current appbox
|
* List all databoxes of the current appbox
|
||||||
*
|
*
|
||||||
|
@@ -771,12 +771,13 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
|
|||||||
|
|
||||||
public function set_geonameid($geonameid)
|
public function set_geonameid($geonameid)
|
||||||
{
|
{
|
||||||
$country_code = null;
|
$country_code = $city = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$country = $this->app['geonames.connector']
|
$data = $this->app['geonames.connector']
|
||||||
->geoname($this->geonameid)
|
->geoname($geonameid);
|
||||||
->get('country');
|
$country = $data->get('country');
|
||||||
|
$city = $data->get('name');
|
||||||
|
|
||||||
if (isset($country['code'])) {
|
if (isset($country['code'])) {
|
||||||
$country_code = $country['code'];
|
$country_code = $country['code'];
|
||||||
@@ -785,12 +786,13 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = 'UPDATE usr SET geonameid = :geonameid, pays=:country_code WHERE usr_id = :usr_id';
|
$sql = 'UPDATE usr SET geonameid = :geonameid, pays=:country_code, ville = :city WHERE usr_id = :usr_id';
|
||||||
|
|
||||||
$datas = array(
|
$datas = array(
|
||||||
':geonameid' => $geonameid,
|
':geonameid' => $geonameid,
|
||||||
':usr_id' => $this->get_id(),
|
':usr_id' => $this->get_id(),
|
||||||
':country_code' => $country_code
|
':country_code' => $country_code,
|
||||||
|
':city' => $city,
|
||||||
);
|
);
|
||||||
|
|
||||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||||
@@ -798,6 +800,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
|
|||||||
$stmt->closeCursor();
|
$stmt->closeCursor();
|
||||||
$this->geonameid = $geonameid;
|
$this->geonameid = $geonameid;
|
||||||
$this->country = $country_code;
|
$this->country = $country_code;
|
||||||
|
$this->city = $city;
|
||||||
$this->delete_data_from_cache();
|
$this->delete_data_from_cache();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
|
@@ -13,7 +13,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @var Symfony\Component\HttpKernel\Client
|
* @var \Symfony\Component\HttpKernel\Client
|
||||||
*/
|
*/
|
||||||
protected $client;
|
protected $client;
|
||||||
|
|
||||||
@@ -1160,7 +1160,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
$this->assertArrayHasKey("baskets", $content['response']);
|
$this->assertArrayHasKey("baskets", $content['response']);
|
||||||
|
|
||||||
foreach ($content['response']['baskets'] as $basket) {
|
foreach ($content['response']['baskets'] as $basket) {
|
||||||
$this->evaluateGoodBasket($basket);
|
$this->evaluateGoodBasket($basket, self::$DI['user_notAdmin']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$route = '/api/v1/records/24892534/51654651553/related/';
|
$route = '/api/v1/records/24892534/51654651553/related/';
|
||||||
@@ -1351,7 +1351,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
$this->assertArrayHasKey("baskets", $content['response']);
|
$this->assertArrayHasKey("baskets", $content['response']);
|
||||||
|
|
||||||
foreach ($content['response']['baskets'] as $basket) {
|
foreach ($content['response']['baskets'] as $basket) {
|
||||||
$this->evaluateGoodBasket($basket);
|
$this->evaluateGoodBasket($basket, self::$DI['user']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1375,7 +1375,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$this->assertEquals(1, count($content['response']));
|
$this->assertEquals(1, count($content['response']));
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user_notAdmin']);
|
||||||
$this->assertEquals('un Joli Nom', $content['response']['basket']['name']);
|
$this->assertEquals('un Joli Nom', $content['response']['basket']['name']);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1405,7 +1405,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$this->assertArrayHasKey("basket_elements", $content['response']);
|
$this->assertArrayHasKey("basket_elements", $content['response']);
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user']);
|
||||||
|
|
||||||
foreach ($content['response']['basket_elements'] as $basket_element) {
|
foreach ($content['response']['basket_elements'] as $basket_element) {
|
||||||
$this->assertArrayHasKey('basket_element_id', $basket_element);
|
$this->assertArrayHasKey('basket_element_id', $basket_element);
|
||||||
@@ -1442,7 +1442,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$this->assertEquals(1, count((array) $content['response']));
|
$this->assertEquals(1, count((array) $content['response']));
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user']);
|
||||||
|
|
||||||
$this->assertEquals($content['response']['basket']['name'], 'un Joli Nom');
|
$this->assertEquals($content['response']['basket']['name'], 'un Joli Nom');
|
||||||
|
|
||||||
@@ -1456,7 +1456,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
|
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user']);
|
||||||
|
|
||||||
$this->assertEquals($content['response']['basket']['name'], 'un Joli Nom');
|
$this->assertEquals($content['response']['basket']['name'], 'un Joli Nom');
|
||||||
|
|
||||||
@@ -1468,7 +1468,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$this->assertEquals(1, count((array) $content['response']));
|
$this->assertEquals(1, count((array) $content['response']));
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user']);
|
||||||
$this->assertEquals($content['response']['basket']['name'], '<strong>aéaa');
|
$this->assertEquals($content['response']['basket']['name'], '<strong>aéaa');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1496,7 +1496,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
$this->assertEquals(1, count((array) $content['response']));
|
$this->assertEquals(1, count((array) $content['response']));
|
||||||
|
|
||||||
$this->assertArrayHasKey("basket", $content['response']);
|
$this->assertArrayHasKey("basket", $content['response']);
|
||||||
$this->evaluateGoodBasket($content['response']['basket']);
|
$this->evaluateGoodBasket($content['response']['basket'], self::$DI['user']);
|
||||||
$this->assertEquals($content['response']['basket']['description'], 'une belle desc');
|
$this->assertEquals($content['response']['basket']['description'], 'une belle desc');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1523,7 +1523,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
$found = false;
|
$found = false;
|
||||||
foreach ($content['response']['baskets'] as $basket) {
|
foreach ($content['response']['baskets'] as $basket) {
|
||||||
$this->evaluateGoodBasket($basket);
|
$this->evaluateGoodBasket($basket, self::$DI['user']);
|
||||||
$found = true;
|
$found = true;
|
||||||
}
|
}
|
||||||
if (!$found) {
|
if (!$found) {
|
||||||
@@ -2037,6 +2037,15 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
{
|
{
|
||||||
$this->assertArrayHasKey('id', $item);
|
$this->assertArrayHasKey('id', $item);
|
||||||
$this->assertArrayHasKey('quarantine_session', $item);
|
$this->assertArrayHasKey('quarantine_session', $item);
|
||||||
|
|
||||||
|
$session = $item['quarantine_session'];
|
||||||
|
$this->assertArrayHasKey('id', $session);
|
||||||
|
$this->assertArrayHasKey('usr_id', $session);
|
||||||
|
$this->assertArrayHasKey('user', $session);
|
||||||
|
if ($session['user'] !== null) {
|
||||||
|
$this->evaluateGoodUserItem($session['user'], self::$DI['user_notAdmin']);
|
||||||
|
}
|
||||||
|
|
||||||
$this->assertArrayHasKey('base_id', $item);
|
$this->assertArrayHasKey('base_id', $item);
|
||||||
$this->assertArrayHasKey('original_name', $item);
|
$this->assertArrayHasKey('original_name', $item);
|
||||||
$this->assertArrayHasKey('sha256', $item);
|
$this->assertArrayHasKey('sha256', $item);
|
||||||
@@ -2051,6 +2060,54 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
$this->assertDateAtom($item['created_on']);
|
$this->assertDateAtom($item['created_on']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRouteMe()
|
||||||
|
{
|
||||||
|
$this->setToken(self::$token);
|
||||||
|
|
||||||
|
$route = '/api/v1/me/';
|
||||||
|
|
||||||
|
$this->evaluateMethodNotAllowedRoute($route, array('POST', 'PUT', 'DELETE'));
|
||||||
|
|
||||||
|
self::$DI['client']->request('GET', $route, $this->getParameters(), array(), array('HTTP_Accept' => $this->getAcceptMimeType()));
|
||||||
|
$content = $this->unserialize(self::$DI['client']->getResponse()->getContent());
|
||||||
|
|
||||||
|
$this->assertArrayHasKey('user', $content['response']);
|
||||||
|
|
||||||
|
$this->evaluateGoodUserItem($content['response']['user'], self::$DI['user_notAdmin']);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function evaluateGoodUserItem($data, \User_Adapter $user)
|
||||||
|
{
|
||||||
|
foreach (array(
|
||||||
|
'@entity@' => \API_V1_adapter::OBJECT_TYPE_USER,
|
||||||
|
'id' => $user->get_id(),
|
||||||
|
'email' => $user->get_email() ?: null,
|
||||||
|
'login' => $user->get_login() ?: null,
|
||||||
|
'first_name' => $user->get_firstname() ?: null,
|
||||||
|
'last_name' => $user->get_lastname() ?: null,
|
||||||
|
'display_name' => $user->get_display_name() ?: null,
|
||||||
|
'address' => $user->get_address() ?: null,
|
||||||
|
'zip_code' => $user->get_zipcode() ?: null,
|
||||||
|
'city' => $user->get_city() ?: null,
|
||||||
|
'country' => $user->get_country() ?: null,
|
||||||
|
'phone' => $user->get_tel() ?: null,
|
||||||
|
'fax' => $user->get_fax() ?: null,
|
||||||
|
'job' => $user->get_job() ?: null,
|
||||||
|
'position' => $user->get_position() ?: null,
|
||||||
|
'company' => $user->get_company() ?: null,
|
||||||
|
'geoname_id' => $user->get_geonameid() ?: null,
|
||||||
|
'last_connection' => $user->get_last_connection() ? $user->get_last_connection()->format(DATE_ATOM) : null,
|
||||||
|
'created_on' => $user->get_creation_date() ? $user->get_creation_date()->format(DATE_ATOM) : null,
|
||||||
|
'updated_on' => $user->get_modification_date() ? $user->get_modification_date()->format(DATE_ATOM) : null,
|
||||||
|
'locale' => $user->get_locale() ?: null,
|
||||||
|
) as $key => $value) {
|
||||||
|
$this->assertArrayHasKey($key, $data, 'Assert key is present '.$key);
|
||||||
|
if ($value) {
|
||||||
|
$this->assertEquals($value, $data[$key], 'Check key '.$key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function evaluateGoodFeed($feed)
|
protected function evaluateGoodFeed($feed)
|
||||||
{
|
{
|
||||||
$this->assertArrayHasKey('id', $feed);
|
$this->assertArrayHasKey('id', $feed);
|
||||||
@@ -2387,9 +2444,13 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
$this->assertEquals(405, $response->getStatusCode(), 'Test status code 405 ' . $response->getContent());
|
$this->assertEquals(405, $response->getStatusCode(), 'Test status code 405 ' . $response->getContent());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function evaluateGoodBasket($basket)
|
protected function evaluateGoodBasket($basket, \User_Adapter $user)
|
||||||
{
|
{
|
||||||
$this->assertTrue(is_array($basket));
|
$this->assertTrue(is_array($basket));
|
||||||
|
$this->assertArrayHasKey('basket_id', $basket);
|
||||||
|
$this->assertArrayHasKey('owner', $basket);
|
||||||
|
$this->evaluateGoodUserItem($basket['owner'], $user);
|
||||||
|
$this->assertArrayHasKey('pusher', $basket);
|
||||||
$this->assertArrayHasKey('created_on', $basket);
|
$this->assertArrayHasKey('created_on', $basket);
|
||||||
$this->assertArrayHasKey('description', $basket);
|
$this->assertArrayHasKey('description', $basket);
|
||||||
$this->assertArrayHasKey('name', $basket);
|
$this->assertArrayHasKey('name', $basket);
|
||||||
@@ -2399,6 +2460,7 @@ abstract class ApiAbstract extends \PhraseanetWebTestCaseAbstract
|
|||||||
|
|
||||||
if (!is_null($basket['pusher_usr_id'])) {
|
if (!is_null($basket['pusher_usr_id'])) {
|
||||||
$this->assertTrue(is_int($basket['pusher_usr_id']));
|
$this->assertTrue(is_int($basket['pusher_usr_id']));
|
||||||
|
$this->evaluateGoodUserItem($basket['pusher'], self::$DI['user_notAdmin']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertTrue(is_string($basket['name']));
|
$this->assertTrue(is_string($basket['name']));
|
||||||
|
Reference in New Issue
Block a user