aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--src/Wallabag/CoreBundle/Helper/ContentProxy.php10
-rw-r--r--src/Wallabag/ImportBundle/Controller/BrowserController.php12
-rw-r--r--tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php34
-rw-r--r--tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php2
5 files changed, 51 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml
index 60e7dd1c..6b279ed6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -27,6 +27,7 @@ php:
27 - 5.6 27 - 5.6
28 - 7.0 28 - 7.0
29 - 7.1 29 - 7.1
30 - 7.2
30 - nightly 31 - nightly
31 32
32node_js: 33node_js:
@@ -43,6 +44,7 @@ matrix:
43 - php: 7.0 44 - php: 7.0
44 env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite 45 env: CS_FIXER=run VALIDATE_TRANSLATION_FILE=run ASSETS=build DB=sqlite
45 allow_failures: 46 allow_failures:
47 - php: 7.2
46 - php: nightly 48 - php: nightly
47 49
48# exclude v1 branches 50# exclude v1 branches
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
index 656ac6ee..1ac7ad83 100644
--- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
@@ -126,11 +126,17 @@ class ContentProxy
126 126
127 // is it a timestamp? 127 // is it a timestamp?
128 if (filter_var($date, FILTER_VALIDATE_INT) !== false) { 128 if (filter_var($date, FILTER_VALIDATE_INT) !== false) {
129 $date = '@' . $value; 129 $date = '@' . $date;
130 } 130 }
131 131
132 try { 132 try {
133 $entry->setPublishedAt(new \DateTime($date)); 133 // is it already a DateTime?
134 // (it's inside the try/catch in case of fail to be parse time string)
135 if (!$date instanceof \DateTime) {
136 $date = new \DateTime($date);
137 }
138
139 $entry->setPublishedAt($date);
134 } catch (\Exception $e) { 140 } catch (\Exception $e) {
135 $this->logger->warning('Error while defining date', ['e' => $e, 'url' => $entry->getUrl(), 'date' => $value]); 141 $this->logger->warning('Error while defining date', ['e' => $e, 'url' => $entry->getUrl(), 'date' => $value]);
136 } 142 }
diff --git a/src/Wallabag/ImportBundle/Controller/BrowserController.php b/src/Wallabag/ImportBundle/Controller/BrowserController.php
index 0753e318..77a7a904 100644
--- a/src/Wallabag/ImportBundle/Controller/BrowserController.php
+++ b/src/Wallabag/ImportBundle/Controller/BrowserController.php
@@ -80,10 +80,10 @@ abstract class BrowserController extends Controller
80 */ 80 */
81 abstract protected function getImportService(); 81 abstract protected function getImportService();
82 82
83 /** 83 /**
84 * Return the template used for the form. 84 * Return the template used for the form.
85 * 85 *
86 * @return string 86 * @return string
87 */ 87 */
88 abstract protected function getImportTemplate(); 88 abstract protected function getImportTemplate();
89} 89}
diff --git a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
index c76be13d..2dc08be2 100644
--- a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
+++ b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
@@ -421,6 +421,16 @@ class EntryRestControllerTest extends WallabagApiTestCase
421 421
422 public function testPostSameEntry() 422 public function testPostSameEntry()
423 { 423 {
424 $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
425 $entry = new Entry($em->getReference(User::class, 1));
426 $entry->setUrl('http://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');
427 $entry->setArchived(true);
428 $entry->addTag((new Tag())->setLabel('google'));
429 $entry->addTag((new Tag())->setLabel('apple'));
430 $em->persist($entry);
431 $em->flush();
432 $em->clear();
433
424 $this->client->request('POST', '/api/entries.json', [ 434 $this->client->request('POST', '/api/entries.json', [
425 'url' => 'http://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', 435 'url' => 'http://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',
426 'archive' => '1', 436 'archive' => '1',
@@ -1046,4 +1056,28 @@ class EntryRestControllerTest extends WallabagApiTestCase
1046 $this->assertSame(400, $this->client->getResponse()->getStatusCode()); 1056 $this->assertSame(400, $this->client->getResponse()->getStatusCode());
1047 $this->assertContains('API limit reached', $this->client->getResponse()->getContent()); 1057 $this->assertContains('API limit reached', $this->client->getResponse()->getContent());
1048 } 1058 }
1059
1060 public function testRePostEntryAndReUsePublishedAt()
1061 {
1062 $em = $this->client->getContainer()->get('doctrine.orm.entity_manager');
1063 $entry = new Entry($em->getReference(User::class, 1));
1064 $entry->setTitle('Antoine de Caunes : « Je veux avoir le droit de tâtonner »');
1065 $entry->setContent('hihi');
1066 $entry->setUrl('http://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html');
1067 $entry->setPublishedAt(new \DateTime('2017-06-26T07:46:02+0200'));
1068 $em->persist($entry);
1069 $em->flush();
1070 $em->clear();
1071
1072 $this->client->request('POST', '/api/entries.json', [
1073 'url' => 'http://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html',
1074 ]);
1075
1076 $this->assertSame(200, $this->client->getResponse()->getStatusCode());
1077
1078 $content = json_decode($this->client->getResponse()->getContent(), true);
1079
1080 $this->assertGreaterThan(0, $content['id']);
1081 $this->assertSame('http://www.lemonde.fr/m-perso/article/2017/06/25/antoine-de-caunes-je-veux-avoir-le-droit-de-tatonner_5150728_4497916.html', $content['url']);
1082 }
1049} 1083}
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
index b1c6d53c..33bfa71e 100644
--- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
@@ -1300,7 +1300,7 @@ class EntryControllerTest extends WallabagCoreTestCase
1300 null, 1300 null,
1301 ], 1301 ],
1302 'es-ES' => [ 1302 'es-ES' => [
1303 'http://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google', 1303 'http://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google/',
1304 'es_ES', 1304 'es_ES',
1305 ], 1305 ],
1306 ]; 1306 ];