]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Fix tests
authorJeremy Benoist <jeremy.benoist@gmail.com>
Mon, 26 Nov 2018 21:22:49 +0000 (22:22 +0100)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Wed, 28 Nov 2018 21:04:55 +0000 (22:04 +0100)
composer.json
tests/Wallabag/AnnotationBundle/Controller/AnnotationControllerTest.php
tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
tests/Wallabag/ApiBundle/WallabagApiTestCase.php
tests/Wallabag/ImportBundle/Command/ImportCommandTest.php

index 8b31085b6acf8663c8e89419eb4351e29027c196..4f60956767ebe8a0e7583fce11ed1924a364f840 100644 (file)
         "ext-tokenizer": "*",
         "ext-pdo": "*",
         "symfony/symfony": "3.4.*",
-        "doctrine/orm": "^2.5.12",
-        "doctrine/doctrine-bundle": "^1.8.0",
-        "doctrine/doctrine-cache-bundle": "^1.3.2",
-        "twig/extensions": "^1.5.1",
-        "symfony/swiftmailer-bundle": "^3.2.3",
-        "symfony/monolog-bundle": "^3.1.2",
-        "sensio/distribution-bundle": "^5.0.21",
-        "sensio/framework-extra-bundle": "^5.2.1",
-        "incenteev/composer-parameter-handler": "^2.1.2",
+        "doctrine/orm": "^2.6",
+        "doctrine/doctrine-bundle": "^1.9",
+        "doctrine/doctrine-cache-bundle": "^1.3",
+        "twig/extensions": "^1.5",
+        "symfony/swiftmailer-bundle": "^3.2",
+        "symfony/monolog-bundle": "^3.1",
+        "sensio/distribution-bundle": "^5.0",
+        "sensio/framework-extra-bundle": "^5.2",
+        "incenteev/composer-parameter-handler": "^2.1",
         "nelmio/cors-bundle": "~1.5",
         "friendsofsymfony/rest-bundle": "~2.1",
         "jms/serializer-bundle": "~2.2",
         "simplepie/simplepie": "~1.5",
         "willdurand/hateoas-bundle": "~1.3",
         "liip/theme-bundle": "^1.4.6",
-        "lexik/form-filter-bundle": "^5.0.4",
+        "lexik/form-filter-bundle": "^5.0",
         "j0k3r/graby": "^1.0",
         "friendsofsymfony/user-bundle": "2.0.*",
-        "friendsofsymfony/oauth-server-bundle": "^1.5.2",
+        "friendsofsymfony/oauth-server-bundle": "^1.5",
         "stof/doctrine-extensions-bundle": "^1.2",
-        "scheb/two-factor-bundle": "^2.14.0",
+        "scheb/two-factor-bundle": "^2.14",
         "grandt/phpepub": "dev-master",
-        "wallabag/php-mobi": "~1.0.0",
+        "wallabag/php-mobi": "~1.0",
         "kphoen/rulerz-bundle": "~0.13",
         "guzzlehttp/guzzle": "^5.3.1",
         "doctrine/doctrine-migrations-bundle": "^1.3",
-        "paragonie/random_compat": "^2.0.11",
         "craue/config-bundle": "~2.0",
         "mnapoli/piwik-twig-extension": "^1.0",
         "ocramius/proxy-manager": "^1.0.2",
-        "white-october/pagerfanta-bundle": "^1.1.0",
+        "white-october/pagerfanta-bundle": "^1.1",
         "php-amqplib/rabbitmq-bundle": "^1.14",
         "predis/predis": "v1.1.x-dev",
         "javibravo/simpleue": "^2.0",
-        "symfony/dom-crawler": "^3.3.13",
-        "friendsofsymfony/jsrouting-bundle": "^2.2.1",
+        "symfony/dom-crawler": "^3.4",
+        "friendsofsymfony/jsrouting-bundle": "^2.2",
         "bdunogier/guzzle-site-authenticator": "^1.0.0@dev",
         "defuse/php-encryption": "^2.1",
         "html2text/html2text": "^4.1"
     "require-dev": {
         "doctrine/doctrine-fixtures-bundle": "~3.0",
         "sensio/generator-bundle": "^3.0",
-        "symfony/phpunit-bridge": "3.4.x-dev",
-        "friendsofphp/php-cs-fixer": "~2.0",
-        "m6web/redis-mock": "^2.0",
-        "dama/doctrine-test-bundle": "^4.0"
+        "symfony/phpunit-bridge": "^3.4",
+        "friendsofphp/php-cs-fixer": "~2.13",
+        "m6web/redis-mock": "^4.1",
+        "dama/doctrine-test-bundle": "^5.0"
     },
     "scripts": {
         "post-cmd": [
index 964744684ef07c8e7ae52e8b4a274e04a82ddb19..537283f2539a8127a35a478d9a80f738f5180a62 100644 (file)
@@ -100,8 +100,7 @@ class AnnotationControllerTest extends WallabagAnnotationTestCase
         $this->assertSame('my quote', $content['quote']);
 
         /** @var Annotation $annotation */
-        $annotation = $this->client->getContainer()
-            ->get('doctrine.orm.entity_manager')
+        $annotation = $em
             ->getRepository('WallabagAnnotationBundle:Annotation')
             ->findLastAnnotationByPageId($entry->getId(), 1);
 
index 6b26376dbfb4a7709392a29e3d1dede3e3f3bc12..176da3cd8b7192eb8b146953a79fc23fdc99afa5 100644 (file)
@@ -15,7 +15,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isArchived' => false]);
+            ->findOneBy(['user' => $this->getUserId(), 'isArchived' => false]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -41,7 +41,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'url' => 'http://0.0.0.0/entry2']);
+            ->findOneBy(['user' => $this->getUserId(), 'url' => 'http://0.0.0.0/entry2']);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -60,7 +60,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isArchived' => false]);
+            ->findOneBy(['user' => $this->getUserId(), 'isArchived' => false]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -108,7 +108,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 2, 'isArchived' => false]);
+            ->findOneBy(['user' => $this->getUserId('bob'), 'isArchived' => false]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -185,7 +185,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -394,7 +394,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1, ['id' => 'asc']);
+            ->findOneByUser($this->getUserId(), ['id' => 'asc']);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -440,7 +440,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $this->assertNull($content['starred_at']);
         $this->assertNull($content['archived_at']);
         $this->assertSame('New title for my article', $content['title']);
-        $this->assertSame(1, $content['user_id']);
+        $this->assertSame($this->getUserId(), $content['user_id']);
         $this->assertCount(2, $content['tags']);
         $this->assertNull($content['origin_url']);
         $this->assertSame('my content', $content['content']);
@@ -455,7 +455,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     public function testPostSameEntry()
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
-        $entry = new Entry($em->getReference(User::class, 1));
+        $entry = new Entry($em->getReference(User::class, $this->getUserId()));
         $entry->setUrl('https://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html');
         $entry->setArchived(true);
         $entry->addTag((new Tag())->setLabel('google'));
@@ -535,7 +535,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $this->assertSame(1, $content['is_starred']);
         $this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
         $this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['archived_at']))->getTimestamp());
-        $this->assertSame(1, $content['user_id']);
+        $this->assertSame($this->getUserId(), $content['user_id']);
     }
 
     public function testPostArchivedAndStarredEntryWithoutQuotes()
@@ -584,7 +584,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -611,7 +611,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $this->assertSame($entry->getUrl(), $content['url']);
         $this->assertSame('New awesome title', $content['title']);
         $this->assertGreaterThanOrEqual(1, \count($content['tags']), 'We force only one tag');
-        $this->assertSame(1, $content['user_id']);
+        $this->assertSame($this->getUserId(), $content['user_id']);
         $this->assertSame('de_AT', $content['language']);
         $this->assertSame('http://preview.io/picture.jpg', $content['preview_picture']);
         $this->assertContains('sponge', $content['published_by']);
@@ -626,7 +626,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -660,7 +660,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -691,7 +691,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
         ->get('doctrine.orm.entity_manager')
         ->getRepository('WallabagCoreBundle:Entry')
-        ->findOneByUser(1);
+        ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -723,7 +723,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -768,7 +768,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneByUser(1);
+            ->findOneByUser($this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -833,7 +833,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isArchived' => true]);
+            ->findOneBy(['user' => $this->getUserId(), 'isArchived' => true]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -855,7 +855,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isStarred' => true]);
+            ->findOneBy(['user' => $this->getUserId(), 'isStarred' => true]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -877,7 +877,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isArchived' => true]);
+            ->findOneBy(['user' => $this->getUserId(), 'isArchived' => true]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -903,7 +903,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $entry = $this->client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findOneBy(['user' => 1, 'isStarred' => true]);
+            ->findOneBy(['user' => $this->getUserId(), 'isStarred' => true]);
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -920,32 +920,27 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
     }
 
-    public function dataForEntriesExistWithUrl()
+    public function testGetEntriesExistsWithReturnId()
     {
-        return [
-            'with_id' => [
-                'url' => '/api/entries/exists?url=http://0.0.0.0/entry2&return_id=1',
-                'expectedValue' => 2,
-            ],
-            'without_id' => [
-                'url' => '/api/entries/exists?url=http://0.0.0.0/entry2',
-                'expectedValue' => true,
-            ],
-        ];
+        $this->client->request('GET', '/api/entries/exists?url=http://0.0.0.0/entry2&return_id=1');
+
+        $this->assertSame(200, $this->client->getResponse()->getStatusCode());
+
+        $content = json_decode($this->client->getResponse()->getContent(), true);
+
+        // it returns a database id, we don't know it, so we only check it's greater than the lowest possible value
+        $this->assertGreaterThan(1, $content['exists']);
     }
 
-    /**
-     * @dataProvider dataForEntriesExistWithUrl
-     */
-    public function testGetEntriesExists($url, $expectedValue)
+    public function testGetEntriesExistsWithoutReturnId()
     {
-        $this->client->request('GET', $url);
+        $this->client->request('GET', '/api/entries/exists?url=http://0.0.0.0/entry2');
 
         $this->assertSame(200, $this->client->getResponse()->getStatusCode());
 
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
-        $this->assertSame($expectedValue, $content['exists']);
+        $this->assertSame(true, $content['exists']);
     }
 
     public function testGetEntriesExistsWithManyUrls()
@@ -960,7 +955,8 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
         $this->assertArrayHasKey($url1, $content);
         $this->assertArrayHasKey($url2, $content);
-        $this->assertSame(2, $content[$url1]);
+        // it returns a database id, we don't know it, so we only check it's greater than the lowest possible value
+        $this->assertGreaterThan(1, $content[$url1]);
         $this->assertNull($content[$url2]);
     }
 
@@ -1002,7 +998,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     {
         $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
+            ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
 
         if (!$entry) {
             $this->markTestSkipped('No content found in db.');
@@ -1038,7 +1034,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     {
         $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
+            ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
 
         $tags = $entry->getTags();
 
@@ -1062,7 +1058,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
         $entry = $this->client->getContainer()->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
-            ->findByUrlAndUserId('http://0.0.0.0/entry4', 1);
+            ->findByUrlAndUserId('http://0.0.0.0/entry4', $this->getUserId());
 
         $tags = $entry->getTags();
         $this->assertCount(4, $tags);
@@ -1082,7 +1078,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     public function testDeleteEntriesTagsListAction()
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
-        $entry = new Entry($em->getReference(User::class, 1));
+        $entry = new Entry($em->getReference(User::class, $this->getUserId()));
         $entry->setUrl('http://0.0.0.0/test-entry');
         $entry->addTag((new Tag())->setLabel('foo-tag'));
         $entry->addTag((new Tag())->setLabel('bar-tag'));
@@ -1150,7 +1146,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     public function testDeleteEntriesListAction()
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
-        $em->persist((new Entry($em->getReference(User::class, 1)))->setUrl('http://0.0.0.0/test-entry1'));
+        $em->persist((new Entry($em->getReference(User::class, $this->getUserId())))->setUrl('http://0.0.0.0/test-entry1'));
 
         $em->flush();
         $em->clear();
@@ -1208,7 +1204,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
     public function testRePostEntryAndReUsePublishedAt()
     {
         $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
-        $entry = new Entry($em->getReference(User::class, 1));
+        $entry = new Entry($em->getReference(User::class, $this->getUserId()));
         $entry->setTitle('Antoine de Caunes : « Je veux avoir le droit de tâtonner »');
         $entry->setContent('hihi');
         $entry->setUrl('https://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html');
index 0c52aea06addf2deae3e94a45c0bd0b34530b87a..a0f2f889513e6f58a481ce01935db65ed11d2118 100644 (file)
@@ -48,4 +48,23 @@ abstract class WallabagApiTestCase extends WebTestCase
 
         return $client;
     }
+
+    /**
+     * Return the ID for the user admin.
+     * Used because on heavy testing we don't want to re-create the database on each run.
+     * Which means "admin" user won't have id 1 all the time.
+     *
+     * @param  string $username
+     *
+     * @return int
+     */
+    public function getUserId($username = 'admin')
+    {
+        return $this->client
+            ->getContainer()
+            ->get('doctrine.orm.entity_manager')
+            ->getRepository('WallabagUserBundle:User')
+            ->findOneByUserName($username)
+            ->getId();
+    }
 }
index f95320a4affae0f4968a4f592ea7e9115ef4cd31..8e1c528de3373177de03a06db0b1937c6142adc7 100644 (file)
@@ -84,6 +84,8 @@ class ImportCommandTest extends WallabagCoreTestCase
 
     public function testRunImportCommandWithUserId()
     {
+        $this->logInAs('admin');
+
         $application = new Application($this->getClient()->getKernel());
         $application->add(new ImportCommand());
 
@@ -92,7 +94,7 @@ class ImportCommandTest extends WallabagCoreTestCase
         $tester = new CommandTester($command);
         $tester->execute([
             'command' => $command->getName(),
-            'username' => 1,
+            'username' => $this->getLoggedInUserId(),
             'filepath' => $application->getKernel()->getContainer()->getParameter('kernel.project_dir') . '/tests/Wallabag/ImportBundle/fixtures/wallabag-v2-read.json',
             '--useUserId' => true,
             '--importer' => 'v2',