From c18a2476b601bc6b9893462d9be680c2e13c89e8 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Mon, 3 Jul 2017 13:56:39 +0200 Subject: [PATCH] CS --- .../Controller/EntryRestController.php | 12 +- .../CoreBundle/Helper/ContentProxy.php | 140 +++++++++--------- .../Controller/EntryRestControllerTest.php | 29 ++-- .../CoreBundle/Helper/ContentProxyTest.php | 10 +- 4 files changed, 95 insertions(+), 96 deletions(-) diff --git a/src/Wallabag/ApiBundle/Controller/EntryRestController.php b/src/Wallabag/ApiBundle/Controller/EntryRestController.php index a2e913af..8a206124 100644 --- a/src/Wallabag/ApiBundle/Controller/EntryRestController.php +++ b/src/Wallabag/ApiBundle/Controller/EntryRestController.php @@ -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']) { diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php index 5622cc83..656ac6ee 100644 --- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php +++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php @@ -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]); - } - } } diff --git a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php index 0647bb23..c76be13d 100644 --- a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php +++ b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php @@ -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); diff --git a/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php b/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php index c0b68d53..f94c2137 100644 --- a/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php +++ b/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php @@ -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() -- 2.41.0