]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Add some tests on EntryController 1066/head
authorJeremy <jeremy.benoist@gmail.com>
Sat, 7 Feb 2015 17:30:46 +0000 (18:30 +0100)
committerJeremy <jeremy.benoist@gmail.com>
Sat, 7 Feb 2015 17:30:46 +0000 (18:30 +0100)
Also, create database schema on test initialisation

app/build.xml
app/phpunit.xml.dist
src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php

index 700a31b5159ed21641e68ee63d76e9337b8f4075..6427867c4ff7f31a2964a26f3914041398c8782a 100644 (file)
             <arg value="doctrine:database:create"/>
             <arg value="--env=test"/>
         </exec>
+        <exec executable="php">
+            <arg value="${basedir}/../app/console"/>
+            <arg value="doctrine:schema:create"/>
+            <arg value="--env=test"/>
+        </exec>
         <exec executable="php">
             <arg value="${basedir}/../app/console"/>
             <arg value="cache:clear"/>
index 6593a2f06e2ce3a57281c74f2130e2bc7193775e..b8f38ff89151186ded8c84f3fac0bb43d9fca49e 100644 (file)
@@ -23,8 +23,9 @@
             <directory>../src</directory>
             <exclude>
                 <directory>../vendor</directory>
-                <directory>../src/Acme</directory>
-                <directory>../src/AppBundle</directory>
+                <directory>../src/Wallabag/CoreBundle/Resources</directory>
+                <directory>../src/Wallabag/CoreBundle/Tests</directory>
+                <directory>../src/Wallabag/CoreBundle/DataFixtures</directory>
             </exclude>
         </whitelist>
     </filter>
index 786ff811795bca28005c8c41ff110f6762d48df0..fde210c99d4ceec2cf70a5dcab0fed339c8dd206 100644 (file)
@@ -6,12 +6,89 @@ use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
 
 class EntryControllerTest extends WebTestCase
 {
-    public function testIndex()
+    public function testGetNew()
     {
         $client = static::createClient();
 
         $crawler = $client->request('GET', '/new');
 
         $this->assertEquals(200, $client->getResponse()->getStatusCode());
+
+        $this->assertCount(1, $crawler->filter('input[type=url]'));
+        $this->assertCount(1, $crawler->filter('button[type=submit]'));
+    }
+
+    public function testPostNewEmpty()
+    {
+        $client = static::createClient();
+
+        $crawler = $client->request('GET', '/new');
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+
+        $form = $crawler->filter('button[type=submit]')->form();
+
+        $crawler = $client->submit($form);
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+        $this->assertCount(1, $alert = $crawler->filter('form ul li')->extract(array('_text')));
+        $this->assertEquals('This value should not be blank.', $alert[0]);
+    }
+
+    public function testPostNewOk()
+    {
+        $client = static::createClient();
+
+        $crawler = $client->request('GET', '/new');
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+
+        $form = $crawler->filter('button[type=submit]')->form();
+
+        $data = array(
+            'form[url]' => 'https://www.mailjet.com/blog/mailjet-zapier-integrations-made-easy/',
+        );
+
+        $client->submit($form, $data);
+
+        $this->assertEquals(302, $client->getResponse()->getStatusCode());
+
+        $crawler = $client->followRedirect();
+
+        $this->assertCount(1, $alert = $crawler->filter('h2 a')->extract(array('_text')));
+        $this->assertContains('Mailjet', $alert[0]);
+    }
+
+    public function testArchive()
+    {
+        $client = static::createClient();
+
+        $crawler = $client->request('GET', '/archive');
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+    }
+
+    public function testStarred()
+    {
+        $client = static::createClient();
+
+        $crawler = $client->request('GET', '/starred');
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+    }
+
+    public function testView()
+    {
+        $client = static::createClient();
+
+        $content = $client->getContainer()
+            ->get('doctrine.orm.entity_manager')
+            ->getRepository('WallabagCoreBundle:Entry')
+            ->findOneByIsArchived(false);
+
+        $crawler = $client->request('GET', '/view/'.$content->getId());
+
+        $this->assertEquals(200, $client->getResponse()->getStatusCode());
+        $this->assertContains($content->getTitle(), $client->getResponse()->getContent());
     }
 }