]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
CS 3256/head
authorJeremy Benoist <jeremy.benoist@gmail.com>
Mon, 3 Jul 2017 11:56:39 +0000 (13:56 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Mon, 3 Jul 2017 11:56:39 +0000 (13:56 +0200)
src/Wallabag/ApiBundle/Controller/EntryRestController.php
src/Wallabag/CoreBundle/Helper/ContentProxy.php
tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php

index a2e913afebafa6b0f038d3c360a9bff68462ce43..8a2061243a98baeff54644ea84d98ff0ffc8e797 100644 (file)
@@ -354,11 +354,11 @@ class EntryRestController extends WallabagRestController
             ]);
         }
 
-        if (!is_null($data['isArchived'])) {
+        if (null !== $data['isArchived']) {
             $entry->setArchived((bool) $data['isArchived']);
         }
 
-        if (!is_null($data['isStarred'])) {
+        if (null !== $data['isStarred']) {
             $entry->setStarred((bool) $data['isStarred']);
         }
 
@@ -366,7 +366,7 @@ class EntryRestController extends WallabagRestController
             $this->get('wallabag_core.tags_assigner')->assignTagsToEntry($entry, $data['tags']);
         }
 
-        if (!is_null($data['isPublic'])) {
+        if (null !== $data['isPublic']) {
             if (true === (bool) $data['isPublic'] && null === $entry->getUid()) {
                 $entry->generateUid();
             } elseif (false === (bool) $data['isPublic']) {
@@ -457,11 +457,11 @@ class EntryRestController extends WallabagRestController
             $contentProxy->updatePublishedAt($entry, $data['publishedAt']);
         }
 
-        if (!is_null($data['isArchived'])) {
+        if (null !== $data['isArchived']) {
             $entry->setArchived((bool) $data['isArchived']);
         }
 
-        if (!is_null($data['isStarred'])) {
+        if (null !== $data['isStarred']) {
             $entry->setStarred((bool) $data['isStarred']);
         }
 
@@ -470,7 +470,7 @@ class EntryRestController extends WallabagRestController
             $this->get('wallabag_core.tags_assigner')->assignTagsToEntry($entry, $data['tags']);
         }
 
-        if (!is_null($data['isPublic'])) {
+        if (null !== $data['isPublic']) {
             if (true === (bool) $data['isPublic'] && null === $entry->getUid()) {
                 $entry->generateUid();
             } elseif (false === (bool) $data['isPublic']) {
index 5622cc83a4732f3b194334e3670715ce0d1c9e0d..656ac6eecb93b4430c2bf413787aaf680646a3c9 100644 (file)
@@ -66,6 +66,76 @@ class ContentProxy
         $this->stockEntry($entry, $content);
     }
 
+    /**
+     * Use a Symfony validator to ensure the language is well formatted.
+     *
+     * @param Entry  $entry
+     * @param string $value Language to validate and save
+     */
+    public function updateLanguage(Entry $entry, $value)
+    {
+        // some lang are defined as fr-FR, es-ES.
+        // replacing - by _ might increase language support
+        $value = str_replace('-', '_', $value);
+
+        $errors = $this->validator->validate(
+            $value,
+            (new LocaleConstraint())
+        );
+
+        if (0 === count($errors)) {
+            $entry->setLanguage($value);
+
+            return;
+        }
+
+        $this->logger->warning('Language validation failed. ' . (string) $errors);
+    }
+
+    /**
+     * Use a Symfony validator to ensure the preview picture is a real url.
+     *
+     * @param Entry  $entry
+     * @param string $value URL to validate and save
+     */
+    public function updatePreviewPicture(Entry $entry, $value)
+    {
+        $errors = $this->validator->validate(
+            $value,
+            (new UrlConstraint())
+        );
+
+        if (0 === count($errors)) {
+            $entry->setPreviewPicture($value);
+
+            return;
+        }
+
+        $this->logger->warning('PreviewPicture validation failed. ' . (string) $errors);
+    }
+
+    /**
+     * Update date.
+     *
+     * @param Entry  $entry
+     * @param string $value Date to validate and save
+     */
+    public function updatePublishedAt(Entry $entry, $value)
+    {
+        $date = $value;
+
+        // is it a timestamp?
+        if (filter_var($date, FILTER_VALIDATE_INT) !== false) {
+            $date = '@' . $value;
+        }
+
+        try {
+            $entry->setPublishedAt(new \DateTime($date));
+        } catch (\Exception $e) {
+            $this->logger->warning('Error while defining date', ['e' => $e, 'url' => $entry->getUrl(), 'date' => $value]);
+        }
+    }
+
     /**
      * Stock entry with fetched or imported content.
      * Will fall back to OpenGraph data if available.
@@ -155,74 +225,4 @@ class ContentProxy
     {
         return !empty($content['title']) && !empty($content['html']) && !empty($content['url']);
     }
-
-    /**
-     * Use a Symfony validator to ensure the language is well formatted.
-     *
-     * @param Entry  $entry
-     * @param string $value Language to validate and save
-     */
-    public function updateLanguage(Entry $entry, $value)
-    {
-        // some lang are defined as fr-FR, es-ES.
-        // replacing - by _ might increase language support
-        $value = str_replace('-', '_', $value);
-
-        $errors = $this->validator->validate(
-            $value,
-            (new LocaleConstraint())
-        );
-
-        if (0 === count($errors)) {
-            $entry->setLanguage($value);
-
-            return;
-        }
-
-        $this->logger->warning('Language validation failed. ' . (string) $errors);
-    }
-
-    /**
-     * Use a Symfony validator to ensure the preview picture is a real url.
-     *
-     * @param Entry  $entry
-     * @param string $value URL to validate and save
-     */
-    public function updatePreviewPicture(Entry $entry, $value)
-    {
-        $errors = $this->validator->validate(
-            $value,
-            (new UrlConstraint())
-        );
-
-        if (0 === count($errors)) {
-            $entry->setPreviewPicture($value);
-
-            return;
-        }
-
-        $this->logger->warning('PreviewPicture validation failed. ' . (string) $errors);
-    }
-
-    /**
-     * Update date.
-     *
-     * @param Entry  $entry
-     * @param string $value Date to validate and save
-     */
-    public function updatePublishedAt(Entry $entry, $value)
-    {
-        $date = $value;
-
-        // is it a timestamp?
-        if (filter_var($date, FILTER_VALIDATE_INT) !== false) {
-            $date = '@'.$value;
-        }
-
-        try {
-            $entry->setPublishedAt(new \DateTime($date));
-        } catch (\Exception $e) {
-            $this->logger->warning('Error while defining date', ['e' => $e, 'url' => $entry->getUrl(), 'date' => $value]);
-        }
-    }
 }
index 0647bb2399549fe09fee114f8352413c937c34fa..c76be13d52b8d2facfb1906b3a5712115bf3e7b2 100644 (file)
@@ -519,7 +519,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
             $this->markTestSkipped('No content found in db.');
         }
 
-        $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [
+        $this->client->request('PATCH', '/api/entries/' . $entry->getId() . '.json', [
             'title' => 'New awesome title',
             'tags' => 'new tag ' . uniqid(),
             'starred' => '1',
@@ -579,10 +579,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $this->assertSame($entry->getId(), $content['id']);
         $this->assertSame($entry->getUrl(), $content['url']);
         $this->assertGreaterThanOrEqual(1, count($content['tags']), 'We force only one tag');
-        $this->assertGreaterThan($nbTags, count($content['tags']));
         $this->assertEmpty($content['published_by'], 'Authors were not saved because of an array instead of a string');
-        $this->assertEquals($previousContent, $content['content'], 'Ensure content has not moved');
-        $this->assertEquals($previousLanguage, $content['language'], 'Ensure language has not moved');
+        $this->assertSame($previousContent, $content['content'], 'Ensure content has not moved');
+        $this->assertSame($previousLanguage, $content['language'], 'Ensure language has not moved');
     }
 
     public function testGetTagsEntry()
@@ -730,8 +729,8 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
         $previousTitle = $entry->getTitle();
 
-        $this->client->request('PATCH', '/api/entries/'.$entry->getId().'.json', [
-            'title' => $entry->getTitle().'++',
+        $this->client->request('PATCH', '/api/entries/' . $entry->getId() . '.json', [
+            'title' => $entry->getTitle() . '++',
         ]);
 
         $this->assertSame(200, $this->client->getResponse()->getStatusCode());
@@ -739,7 +738,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
         $this->assertSame(1, $content['is_archived']);
-        $this->assertEquals($previousTitle.'++', $content['title']);
+        $this->assertSame($previousTitle . '++', $content['title']);
     }
 
     public function testSaveIsStarredAfterPatch()
@@ -913,9 +912,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
     public function testPostEntriesTagsListActionNoList()
     {
-        $this->client->request('POST', '/api/entries/tags/lists?list='.json_encode([]));
+        $this->client->request('POST', '/api/entries/tags/lists?list=' . json_encode([]));
 
-        $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+        $this->assertSame(200, $this->client->getResponse()->getStatusCode());
 
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
@@ -950,9 +949,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
     public function testDeleteEntriesTagsListActionNoList()
     {
-        $this->client->request('DELETE', '/api/entries/tags/list?list='.json_encode([]));
+        $this->client->request('DELETE', '/api/entries/tags/list?list=' . json_encode([]));
 
-        $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+        $this->assertSame(200, $this->client->getResponse()->getStatusCode());
 
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
@@ -981,9 +980,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
     public function testPostEntriesListActionWithNoUrls()
     {
-        $this->client->request('POST', '/api/entries/lists?urls='.json_encode([]));
+        $this->client->request('POST', '/api/entries/lists?urls=' . json_encode([]));
 
-        $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+        $this->assertSame(200, $this->client->getResponse()->getStatusCode());
 
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
@@ -1017,9 +1016,9 @@ class EntryRestControllerTest extends WallabagApiTestCase
 
     public function testDeleteEntriesListActionWithNoUrls()
     {
-        $this->client->request('DELETE', '/api/entries/list?urls='.json_encode([]));
+        $this->client->request('DELETE', '/api/entries/list?urls=' . json_encode([]));
 
-        $this->assertEquals(200, $this->client->getResponse()->getStatusCode());
+        $this->assertSame(200, $this->client->getResponse()->getStatusCode());
 
         $content = json_decode($this->client->getResponse()->getContent(), true);
 
index c0b68d5366ce7cff4950f789ff116220680fa80e..f94c2137252d44f011c3eecd874576f8d983d952 100644 (file)
@@ -521,13 +521,13 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
         $entry = new Entry(new User());
         $proxy->updateEntry($entry, 'http://0.0.0.0');
 
-        $this->assertEquals('http://1.1.1.1/image.jpg', $entry->getUrl());
-        $this->assertEquals('this is my title', $entry->getTitle());
+        $this->assertSame('http://1.1.1.1/image.jpg', $entry->getUrl());
+        $this->assertSame('this is my title', $entry->getTitle());
         $this->assertContains('http://1.1.1.1/image.jpg', $entry->getContent());
         $this->assertSame('http://1.1.1.1/image.jpg', $entry->getPreviewPicture());
-        $this->assertEquals('image/jpeg', $entry->getMimetype());
-        $this->assertEquals('200', $entry->getHttpStatus());
-        $this->assertEquals('1.1.1.1', $entry->getDomainName());
+        $this->assertSame('image/jpeg', $entry->getMimetype());
+        $this->assertSame('200', $entry->getHttpStatus());
+        $this->assertSame('1.1.1.1', $entry->getDomainName());
     }
 
     private function getTaggerMock()