mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 15:03:25 +00:00
Merge branch '3.6' of github.com:alchemy-fr/Phraseanet into 3.6
This commit is contained in:
@@ -42,19 +42,286 @@ class ControllerUsrListsTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
|
||||
$this->client = $this->createClient();
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Default route test
|
||||
*/
|
||||
public function testRouteSlash()
|
||||
{
|
||||
$this->markTestIncomplete(
|
||||
'This test has not been implemented yet.'
|
||||
);
|
||||
$entry1 = $this->insertOneUsrListEntry(self::$user,self::$user);
|
||||
$entry2 = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$entry3 = $this->insertOneUsrListEntry(self::$user, self::$user);
|
||||
$entry4 = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$entry5 = $this->insertOneUsrListEntry(self::$user_alt1,self::$user_alt1);
|
||||
$entry6 = $this->insertOneUsrListEntry(self::$user_alt1,self::$user_alt2);
|
||||
|
||||
$route = '/lists/list/all/';
|
||||
|
||||
$this->client->request('GET', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertEquals(4, count($datas['lists']));
|
||||
}
|
||||
|
||||
protected function checkList($list, $owners = true, $users = true)
|
||||
{
|
||||
$this->assertInstanceOf('stdClass', $list);
|
||||
$this->assertObjectHasAttribute('name', $list);
|
||||
$this->assertObjectHasAttribute('created', $list);
|
||||
$this->assertObjectHasAttribute('updated', $list);
|
||||
$this->assertObjectHasAttribute('owners', $list);
|
||||
$this->assertObjectHasAttribute('users', $list);
|
||||
|
||||
if($owners)
|
||||
$this->assertTrue(count($list->owners) > 0);
|
||||
|
||||
foreach($list->owners as $owner)
|
||||
{
|
||||
$this->checkOwner($owner);
|
||||
}
|
||||
|
||||
if($users)
|
||||
$this->assertTrue(count($list->users) > 0);
|
||||
|
||||
foreach($list->users as $user)
|
||||
{
|
||||
$this->checkUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
public function testPostList()
|
||||
{
|
||||
$route = '/lists/list/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertFalse($datas['success']);
|
||||
|
||||
$this->client->request('POST', $route, array('name'=>'New List'));
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
}
|
||||
|
||||
public function testGetList()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/lists/list/' . $list_id . '/';
|
||||
|
||||
$this->client->request('GET', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertTrue(is_array($datas));
|
||||
$this->assertArrayhasKey('list', $datas);
|
||||
$this->checkList($datas['list']);
|
||||
}
|
||||
|
||||
public function testPostUpdate()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/lists/list/' . $list_id . '/update/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertFalse($datas['success']);
|
||||
|
||||
|
||||
$this->client->request('POST', $route, array('name'=>'New NAME'));
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function testPostDelete()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$list_id = $entry->getList()->getId();
|
||||
|
||||
$route = '/lists/list/' . $list_id . '/delete/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
|
||||
$repository = self::$core->getEntityManager()->getRepository('Entities\UsrList');
|
||||
|
||||
$this->assertNull($repository->find($list_id));
|
||||
}
|
||||
|
||||
public function testPostRemoveEntry()
|
||||
{
|
||||
$entry = $this->insertOneUsrListEntry(self::$user,self::$user_alt1);
|
||||
$list_id = $entry->getList()->getId();
|
||||
$entry_id = $entry->getId();
|
||||
|
||||
$route = '/lists/list/' . $list_id . '/remove/' . $entry_id . '/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
|
||||
$repository = self::$core->getEntityManager()->getRepository('Entities\UsrListEntry');
|
||||
|
||||
$this->assertNull($repository->find($entry_id));
|
||||
}
|
||||
|
||||
public function testPostAddEntry()
|
||||
{
|
||||
$list = $this->insertOneUsrList(self::$user);
|
||||
|
||||
$this->assertEquals(0, $list->getEntries()->count());
|
||||
|
||||
$route = '/lists/list/' . $list->getId() . '/add/' . self::$user->get_id() . '/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
|
||||
$repository = self::$core->getEntityManager()->getRepository('Entities\UsrList');
|
||||
|
||||
$list = $repository->find($list->getId());
|
||||
|
||||
$this->assertEquals(1, $list->getEntries()->count());
|
||||
}
|
||||
|
||||
public function testPostShareList()
|
||||
{
|
||||
$list = $this->insertOneUsrList(self::$user);
|
||||
|
||||
$this->assertEquals(1, $list->getOwners()->count());
|
||||
|
||||
$route = '/lists/list/' . $list->getId() . '/share/' . self::$user_alt1->get_id() . '/';
|
||||
|
||||
$this->client->request('POST', $route);
|
||||
|
||||
$response = $this->client->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
|
||||
$this->assertTrue($datas['success']);
|
||||
|
||||
$repository = self::$core->getEntityManager()->getRepository('Entities\UsrList');
|
||||
|
||||
$list = $repository->find($list->getId());
|
||||
|
||||
$this->assertEquals(2, $list->getOwners()->count());
|
||||
}
|
||||
|
||||
|
||||
protected function checkOwner($owner)
|
||||
{
|
||||
$this->assertInstanceOf('stdClass', $owner);
|
||||
$this->assertObjectHasAttribute('usr_id', $owner);
|
||||
$this->assertObjectHasAttribute('display_name', $owner);
|
||||
$this->assertObjectHasAttribute('position', $owner);
|
||||
$this->assertObjectHasAttribute('job', $owner);
|
||||
$this->assertObjectHasAttribute('company', $owner);
|
||||
$this->assertObjectHasAttribute('email', $owner);
|
||||
$this->assertObjectHasAttribute('role', $owner);
|
||||
$this->assertTrue(ctype_digit($owner->role));
|
||||
}
|
||||
|
||||
protected function checkUser($user)
|
||||
{
|
||||
$this->assertInstanceOf('stdClass', $user);
|
||||
$this->assertObjectHasAttribute('usr_id', $user);
|
||||
$this->assertObjectHasAttribute('display_name', $user);
|
||||
$this->assertObjectHasAttribute('position', $user);
|
||||
$this->assertObjectHasAttribute('job', $user);
|
||||
$this->assertObjectHasAttribute('company', $user);
|
||||
$this->assertObjectHasAttribute('email', $user);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -15,7 +15,6 @@ use Silex\WebTestCase;
|
||||
use Symfony\Component\HttpKernel\Client;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Doctrine\Common\DataFixtures\Loader;
|
||||
use PhraseaFixture\Basket as MyFixture;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -504,11 +503,11 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
*
|
||||
* @param Doctrine\Common\DataFixtures\Loader $fixtureLoader
|
||||
*/
|
||||
public function insertFixtureInDatabase(Doctrine\Common\DataFixtures\Loader $fixtureLoader)
|
||||
public function insertFixtureInDatabase(Doctrine\Common\DataFixtures\Loader $fixtureLoader, $append = true)
|
||||
{
|
||||
$purger = new Doctrine\Common\DataFixtures\Purger\ORMPurger();
|
||||
$executor = new Doctrine\Common\DataFixtures\Executor\ORMExecutor(self::$core->getEntityManager(), $purger);
|
||||
$executor->execute($fixtureLoader->getFixtures(), true);
|
||||
$executor->execute($fixtureLoader->getFixtures(), $append);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -543,7 +542,7 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
{
|
||||
try
|
||||
{
|
||||
$basketFixture = new MyFixture\LoadOneBasket();
|
||||
$basketFixture = new PhraseaFixture\Basket\LoadOneBasket();
|
||||
|
||||
$basketFixture->setUser(self::$user);
|
||||
|
||||
@@ -559,6 +558,70 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
$this->fail('Fail load one Basket : ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function insertOneUsrList(\User_Adapter $user)
|
||||
{
|
||||
try
|
||||
{
|
||||
$loader = new Loader();
|
||||
|
||||
$UsrOwner = new PhraseaFixture\UsrLists\UsrListOwner();
|
||||
$UsrOwner->setUser($user);
|
||||
|
||||
$loader->addFixture($UsrOwner);
|
||||
|
||||
$UsrList = new PhraseaFixture\UsrLists\UsrList();
|
||||
|
||||
$loader->addFixture($UsrList);
|
||||
|
||||
|
||||
$this->insertFixtureInDatabase($loader);
|
||||
|
||||
return $UsrList->list;
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
$this->fail('Fail load one UsrList : ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param \Entities\UsrList $UsrList
|
||||
* @return \Entities\UsrListEntry
|
||||
*/
|
||||
protected function insertOneUsrListEntry(\User_adapter $owner, \User_adapter $user)
|
||||
{
|
||||
try
|
||||
{
|
||||
$loader = new Loader();
|
||||
|
||||
$UsrOwner = new PhraseaFixture\UsrLists\UsrListOwner();
|
||||
$UsrOwner->setUser($owner);
|
||||
|
||||
$loader->addFixture($UsrOwner);
|
||||
|
||||
$UsrList = new PhraseaFixture\UsrLists\UsrList();
|
||||
|
||||
$loader->addFixture($UsrList);
|
||||
|
||||
$UsrEntry = new PhraseaFixture\UsrLists\UsrListEntry();
|
||||
// $UsrEntry->setList($UsrList);
|
||||
$UsrEntry->setUser($user);
|
||||
|
||||
$loader->addFixture($UsrEntry);
|
||||
|
||||
|
||||
$this->insertFixtureInDatabase($loader);
|
||||
|
||||
return $UsrEntry->entry;
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
$this->fail('Fail load one UsrListEntry : ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert five baskets and set current authenticated user as owner
|
||||
@@ -569,7 +632,7 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
{
|
||||
try
|
||||
{
|
||||
$basketFixture = new MyFixture\LoadFiveBaskets();
|
||||
$basketFixture = new PhraseaFixture\Basket\LoadFiveBaskets();
|
||||
|
||||
$basketFixture->setUser(self::$user);
|
||||
|
||||
@@ -671,7 +734,7 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
||||
$em = self::$core->getEntityManager();
|
||||
/* @var $em \Doctrine\ORM\EntityManager */
|
||||
|
||||
$basketFixture = new MyFixture\LoadOneBasketEnv();
|
||||
$basketFixture = new PhraseaFixture\Basket\LoadOneBasketEnv();
|
||||
|
||||
$basketFixture->setUser(self::$user);
|
||||
|
||||
|
Reference in New Issue
Block a user