diff --git a/lib/conf.d/PhraseaFixture/Basket/AbstractUser.php b/lib/conf.d/PhraseaFixture/AbstractUser.php similarity index 93% rename from lib/conf.d/PhraseaFixture/Basket/AbstractUser.php rename to lib/conf.d/PhraseaFixture/AbstractUser.php index 64fa80a3bb..d0b4ee9453 100644 --- a/lib/conf.d/PhraseaFixture/Basket/AbstractUser.php +++ b/lib/conf.d/PhraseaFixture/AbstractUser.php @@ -16,7 +16,7 @@ * @link www.phraseanet.com */ -namespace PhraseaFixture\Basket; +namespace PhraseaFixture; class AbstractUser { diff --git a/lib/conf.d/PhraseaFixture/Basket/Root.php b/lib/conf.d/PhraseaFixture/Basket/Root.php index e065f3ea55..67c3c5eef3 100644 --- a/lib/conf.d/PhraseaFixture/Basket/Root.php +++ b/lib/conf.d/PhraseaFixture/Basket/Root.php @@ -21,10 +21,13 @@ use Doctrine\Common\DataFixtures\FixtureInterface; * @license http://opensource.org/licenses/gpl-3.0 GPLv3 * @link www.phraseanet.com */ -class Root extends AbstractUser implements FixtureInterface +class Root extends \PhraseaFixture\AbstractUser implements FixtureInterface { - - public $basketId; + /** + * + * @var \Entities\Basket + */ + public $basket; public function load($manager) { @@ -34,7 +37,7 @@ class Root extends AbstractUser implements FixtureInterface $basket->setOwner($this->user); $manager->persist($basket); $manager->flush(); - $this->basketId = $basket->getId(); + $this->basket = $basket; } } \ No newline at end of file diff --git a/lib/unitTest/basketTest.php b/lib/unitTest/basketTest.php index 2b1bec474f..f6b5884a01 100644 --- a/lib/unitTest/basketTest.php +++ b/lib/unitTest/basketTest.php @@ -35,11 +35,6 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract $this->loader = new Loader(); } - public static function setUpBeforeClass() - { - parent::setUpBeforeClass(); - } - public function createApplication() { return require __DIR__ . '/../Alchemy/Phrasea/Application/Prod.php'; @@ -48,57 +43,257 @@ class basketTest extends PhraseanetWebTestCaseAuthenticatedAbstract public function testRootPost() { $route = '/baskets/'; - + $this->client->request('POST', $route, array('name' => 'panier', 'desc' => 'mon beau panier')); - + $response = $this->client->getResponse(); - + $query = self::$core->getEntityManager()->createQuery( 'SELECT COUNT(b.id) FROM \Entities\Basket b' ); - + $count = $query->getSingleScalarResult(); $this->assertEquals(1, $count); - + $this->assertEquals(302, $response->getStatusCode()); } public function testCreateGet() { $route = '/baskets/create/'; - + $crawler = $this->client->request('GET', $route); - + $response = $this->client->getResponse(); - + $this->assertEquals(200, $response->getStatusCode()); - + $this->assertEquals($crawler->filter("form[action='/prod/baskets/']")->count(), 1); $this->assertEquals($crawler->filter("form[action='/prod/baskets/'] input[name='name']")->count(), 1); $this->assertEquals($crawler->filter("form[action='/prod/baskets/'] textarea[name='description']")->count(), 1); - - -// $form = $crawler->selectButton(_('boutton::valider'))->form(); -// $crawler = $this->client->submit($form, array('name' => 'Hey you!', 'description' => 'Hey there!')); - } - + public function testBasketGet() { - $basketFixture = new MyFixture\Root(self::$user); - - $this->loader->addFixture($basketFixture); - - $this->insertFixtureInDatabase($this->loader); - - $route = sprintf('/baskets/%s/', $basketFixture->basketId); - + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/', $basket->getId()); + $crawler = $this->client->request('GET', $route); + + $response = $this->client->getResponse(); + + $this->assertEquals(200, $response->getStatusCode()); + } + + public function testBasketDeletePost() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/delete/', $basket->getId()); + + $crawler = $this->client->request('POST', $route); + + $response = $this->client->getResponse(); + + $query = self::$core->getEntityManager()->createQuery( + 'SELECT COUNT(b.id) FROM \Entities\Basket b' + ); + + $count = $query->getSingleScalarResult(); + + $this->assertEquals(0, $count); + + $this->assertEquals(302, $response->getStatusCode()); + } + + public function testBasketDeletePostJSON() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/delete/', $basket->getId()); + + $crawler = $this->client->request('POST', $route, array(), array(), array("HTTP_ACCEPT" => "application/json")); + + $this->client->getRequest()->setRequestFormat('json'); + + $response = $this->client->getResponse(); + + $query = self::$core->getEntityManager()->createQuery( + 'SELECT COUNT(b.id) FROM \Entities\Basket b' + ); + + $count = $query->getSingleScalarResult(); + + $this->assertEquals(0, $count); + + $this->assertEquals(200, $response->getStatusCode()); + } + + public function testBasketUpdatePost() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/update/', $basket->getId()); + + $crawler = $this->client->request('POST', $route, array('name' => 'new_name', 'description' => 'new_desc')); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertEquals('new_name', $basket->getName()); + $this->assertEquals('new_desc', $basket->getDescription()); + + $this->assertEquals(302, $response->getStatusCode()); + } + + public function testBasketUpdatePostJSON() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/update/', $basket->getId()); + + $crawler = $this->client->request('POST', $route, array('name' => 'new_name', 'description' => 'new_desc'), array(), array("HTTP_ACCEPT" => "application/json")); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertEquals('new_name', $basket->getName()); + $this->assertEquals('new_desc', $basket->getDescription()); + + $this->assertEquals(200, $response->getStatusCode()); + } + + public function testBasketUpdateGet() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/update/', $basket->getId()); + + $crawler = $this->client->request('GET', $route, array('name' => 'new_name', 'description' => 'new_desc')); + + $response = $this->client->getResponse(); + + $this->assertEquals(200, $response->getStatusCode()); + + $this->assertEquals($crawler->filter("form[action='/prod/baskets/" . $basket->getId() . "/update/']")->count(), 1); + + $node = $crawler + ->filter('input[name=name]'); + + $this->assertEquals($basket->getName(), $node->attr('value')); + + $node = $crawler + ->filter('textarea[name=description]'); + + $this->assertEquals($basket->getDescription(), $node->text()); + } + + public function testBasketArchivedPost() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/archive/', $basket->getId()); + + $crawler = $this->client->request('POST', $route, array('archive' => '1')); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertTrue($basket->getArchived()); + + $crawler = $this->client->request('POST', $route, array('archive' => '0')); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertFalse($basket->getArchived()); + + $this->assertEquals(302, $response->getStatusCode()); + } + + public function testBasketArchivedPostJSON() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/archive/', $basket->getId()); + + $crawler = $this->client->request('POST', $route, array('archive' => '1'), array(), array("HTTP_ACCEPT" => "application/json")); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertTrue($basket->getArchived()); + + $crawler = $this->client->request('POST', $route, array('archive' => '0'), array(), array("HTTP_ACCEPT" => "application/json")); + + $response = $this->client->getResponse(); + + $em = self::$core->getEntityManager(); + /* @var $em \Doctrine\ORM\EntityManager */ + $basket = $em->getRepository('Entities\Basket')->find($basket->getId()); + + $this->assertFalse($basket->getArchived()); + + $this->assertEquals(200, $response->getStatusCode()); + } + + public function testAddElementPost() + { + $basket = $this->insertOneBasket(); + + $route = sprintf('/baskets/%s/addElements/', $basket->getId()); + + $records = array(self::$record_1->get_serialize_key(), self::$record_2->get_serialize_key()); + $lst = implode(';', $records); + + $crawler = $this->client->request('POST', $route, array('lst' => $lst), array(), array("HTTP_ACCEPT" => "application/json")); + $response = $this->client->getResponse(); - $this->assertEquals(200, $response->getStatusCode()); + $this->assertEquals(302, $response->getStatusCode()); + $basket->getElements(); } + + /** + * + * @return \Entities\Basket + */ + protected function insertOneBasket() + { + $basketFixture = new MyFixture\Root(self::$user); + + $this->loader->addFixture($basketFixture); + + $this->insertFixtureInDatabase($this->loader); + + $query = self::$core->getEntityManager()->createQuery( + 'SELECT COUNT(b.id) FROM \Entities\Basket b' + ); + + $count = $query->getSingleScalarResult(); + + $this->assertEquals(1, $count); + + return $basketFixture->basket; + } + } \ No newline at end of file diff --git a/lib/vendor/symfony b/lib/vendor/symfony index 4316595dbb..6924e63587 160000 --- a/lib/vendor/symfony +++ b/lib/vendor/symfony @@ -1 +1 @@ -Subproject commit 4316595dbb7be9dcf2156d090d52f23f11b1ea90 +Subproject commit 6924e63587466c865ca8dc746ff3fcf5cd1a1dcf