aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag
diff options
context:
space:
mode:
authorNicolas LÅ“uillet <nicolas@loeuillet.org>2015-09-28 22:57:11 +0200
committerNicolas LÅ“uillet <nicolas@loeuillet.org>2015-09-28 22:57:11 +0200
commit917040d4a0b7694ca4f695c02243ffb4283d6901 (patch)
tree0bd70455b7748145a7b944d47c6845ba214b2b4d /src/Wallabag
parent4180fddac1aa011f121a1ab901f9f21aafa46112 (diff)
parentfef4124130484ebdb8194b83a3278e6f970a46fb (diff)
downloadwallabag-917040d4a0b7694ca4f695c02243ffb4283d6901.tar.gz
wallabag-917040d4a0b7694ca4f695c02243ffb4283d6901.tar.zst
wallabag-917040d4a0b7694ca4f695c02243ffb4283d6901.zip
Merge pull request #1434 from wallabag/travis-db
Add multiple database tests on Travis
Diffstat (limited to 'src/Wallabag')
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php13
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php3
-rw-r--r--src/Wallabag/CoreBundle/Helper/ContentProxy.php3
-rw-r--r--src/Wallabag/CoreBundle/Repository/EntryRepository.php18
-rw-r--r--src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php42
-rw-r--r--src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php6
-rw-r--r--src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php14
7 files changed, 66 insertions, 33 deletions
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
index dd316194..7e64c5e1 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
@@ -17,6 +17,8 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
17 { 17 {
18 $entry1 = new Entry($this->getReference('admin-user')); 18 $entry1 = new Entry($this->getReference('admin-user'));
19 $entry1->setUrl('http://0.0.0.0'); 19 $entry1->setUrl('http://0.0.0.0');
20 $entry1->setReadingTime(11);
21 $entry1->setDomainName('domain.io');
20 $entry1->setTitle('test title entry1'); 22 $entry1->setTitle('test title entry1');
21 $entry1->setContent('This is my content /o/'); 23 $entry1->setContent('This is my content /o/');
22 $entry1->setLanguage('en'); 24 $entry1->setLanguage('en');
@@ -27,6 +29,8 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
27 29
28 $entry2 = new Entry($this->getReference('admin-user')); 30 $entry2 = new Entry($this->getReference('admin-user'));
29 $entry2->setUrl('http://0.0.0.0'); 31 $entry2->setUrl('http://0.0.0.0');
32 $entry2->setReadingTime(1);
33 $entry2->setDomainName('domain.io');
30 $entry2->setTitle('test title entry2'); 34 $entry2->setTitle('test title entry2');
31 $entry2->setContent('This is my content /o/'); 35 $entry2->setContent('This is my content /o/');
32 $entry2->setLanguage('fr'); 36 $entry2->setLanguage('fr');
@@ -37,6 +41,8 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
37 41
38 $entry3 = new Entry($this->getReference('bob-user')); 42 $entry3 = new Entry($this->getReference('bob-user'));
39 $entry3->setUrl('http://0.0.0.0'); 43 $entry3->setUrl('http://0.0.0.0');
44 $entry3->setReadingTime(1);
45 $entry3->setDomainName('domain.io');
40 $entry3->setTitle('test title entry3'); 46 $entry3->setTitle('test title entry3');
41 $entry3->setContent('This is my content /o/'); 47 $entry3->setContent('This is my content /o/');
42 $entry3->setLanguage('en'); 48 $entry3->setLanguage('en');
@@ -55,6 +61,8 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
55 61
56 $entry4 = new Entry($this->getReference('admin-user')); 62 $entry4 = new Entry($this->getReference('admin-user'));
57 $entry4->setUrl('http://0.0.0.0'); 63 $entry4->setUrl('http://0.0.0.0');
64 $entry4->setReadingTime(12);
65 $entry4->setDomainName('domain.io');
58 $entry4->setTitle('test title entry4'); 66 $entry4->setTitle('test title entry4');
59 $entry4->setContent('This is my content /o/'); 67 $entry4->setContent('This is my content /o/');
60 $entry4->setLanguage('en'); 68 $entry4->setLanguage('en');
@@ -73,10 +81,13 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
73 81
74 $entry5 = new Entry($this->getReference('admin-user')); 82 $entry5 = new Entry($this->getReference('admin-user'));
75 $entry5->setUrl('http://0.0.0.0'); 83 $entry5->setUrl('http://0.0.0.0');
84 $entry5->setReadingTime(12);
85 $entry5->setDomainName('domain.io');
76 $entry5->setTitle('test title entry5'); 86 $entry5->setTitle('test title entry5');
77 $entry5->setContent('This is my content /o/'); 87 $entry5->setContent('This is my content /o/');
78 $entry5->setStarred(true); 88 $entry5->setStarred(true);
79 $entry5->setLanguage('fr'); 89 $entry5->setLanguage('fr');
90 $entry5->setPreviewPicture('http://0.0.0.0/image.jpg');
80 91
81 $manager->persist($entry5); 92 $manager->persist($entry5);
82 93
@@ -84,6 +95,8 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
84 95
85 $entry6 = new Entry($this->getReference('admin-user')); 96 $entry6 = new Entry($this->getReference('admin-user'));
86 $entry6->setUrl('http://0.0.0.0'); 97 $entry6->setUrl('http://0.0.0.0');
98 $entry6->setReadingTime(12);
99 $entry6->setDomainName('domain.io');
87 $entry6->setTitle('test title entry6'); 100 $entry6->setTitle('test title entry6');
88 $entry6->setContent('This is my content /o/'); 101 $entry6->setContent('This is my content /o/');
89 $entry6->setArchived(true); 102 $entry6->setArchived(true);
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 7108889e..9e81ba12 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -7,7 +7,6 @@ use Doctrine\ORM\Mapping as ORM;
7use Symfony\Component\Validator\Constraints as Assert; 7use Symfony\Component\Validator\Constraints as Assert;
8use Hateoas\Configuration\Annotation as Hateoas; 8use Hateoas\Configuration\Annotation as Hateoas;
9use JMS\Serializer\Annotation\XmlRoot; 9use JMS\Serializer\Annotation\XmlRoot;
10use Wallabag\CoreBundle\Tools\Utils;
11 10
12/** 11/**
13 * Entry. 12 * Entry.
@@ -279,8 +278,6 @@ class Entry
279 public function setContent($content) 278 public function setContent($content)
280 { 279 {
281 $this->content = $content; 280 $this->content = $content;
282 $this->readingTime = Utils::getReadingTime($content);
283 $this->domainName = parse_url($this->url, PHP_URL_HOST);
284 281
285 return $this; 282 return $this;
286 } 283 }
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
index 3de8828f..7fb41393 100644
--- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
@@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Helper;
4 4
5use Graby\Graby; 5use Graby\Graby;
6use Wallabag\CoreBundle\Entity\Entry; 6use Wallabag\CoreBundle\Entity\Entry;
7use Wallabag\CoreBundle\Tools\Utils;
7 8
8/** 9/**
9 * This kind of proxy class take care of getting the content from an url 10 * This kind of proxy class take care of getting the content from an url
@@ -51,6 +52,8 @@ class ContentProxy
51 $entry->setContent($html); 52 $entry->setContent($html);
52 $entry->setLanguage($content['language']); 53 $entry->setLanguage($content['language']);
53 $entry->setMimetype($content['content_type']); 54 $entry->setMimetype($content['content_type']);
55 $entry->setReadingTime(Utils::getReadingTime($html));
56 $entry->setDomainName(parse_url($entry->getUrl(), PHP_URL_HOST));
54 57
55 if (isset($content['open_graph']['og_image'])) { 58 if (isset($content['open_graph']['og_image'])) {
56 $entry->setPreviewPicture($content['open_graph']['og_image']); 59 $entry->setPreviewPicture($content['open_graph']['og_image']);
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
index 87b9befe..2286317c 100644
--- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
@@ -161,4 +161,22 @@ class EntryRepository extends EntityRepository
161 161
162 return $languages; 162 return $languages;
163 } 163 }
164
165 /**
166 * Used only in test case to get the right entry associated to the right user
167 *
168 * @param string $username
169 *
170 * @return Entry
171 */
172 public function findOneByUsernameAndNotArchived($username)
173 {
174 return $this->createQueryBuilder('e')
175 ->leftJoin('e.user', 'u')
176 ->where('u.username = :username')->setParameter('username', $username)
177 ->andWhere('e.isArchived = false')
178 ->setMaxResults(1)
179 ->getQuery()
180 ->getSingleResult();
181 }
164} 182}
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
index cbd84a97..e9c85a17 100644
--- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
@@ -7,6 +7,8 @@ use Doctrine\ORM\AbstractQuery;
7 7
8class EntryControllerTest extends WallabagCoreTestCase 8class EntryControllerTest extends WallabagCoreTestCase
9{ 9{
10 public $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';
11
10 public function testLogin() 12 public function testLogin()
11 { 13 {
12 $client = $this->getClient(); 14 $client = $this->getClient();
@@ -60,7 +62,7 @@ class EntryControllerTest extends WallabagCoreTestCase
60 $form = $crawler->filter('button[type=submit]')->form(); 62 $form = $crawler->filter('button[type=submit]')->form();
61 63
62 $data = array( 64 $data = array(
63 'entry[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', 65 'entry[url]' => $this->url,
64 ); 66 );
65 67
66 $client->submit($form, $data); 68 $client->submit($form, $data);
@@ -101,7 +103,7 @@ class EntryControllerTest extends WallabagCoreTestCase
101 $content = $client->getContainer() 103 $content = $client->getContainer()
102 ->get('doctrine.orm.entity_manager') 104 ->get('doctrine.orm.entity_manager')
103 ->getRepository('WallabagCoreBundle:Entry') 105 ->getRepository('WallabagCoreBundle:Entry')
104 ->findOneByIsArchived(false); 106 ->findOneByUrl($this->url);
105 107
106 $client->request('GET', '/view/'.$content->getId()); 108 $client->request('GET', '/view/'.$content->getId());
107 109
@@ -117,7 +119,7 @@ class EntryControllerTest extends WallabagCoreTestCase
117 $content = $client->getContainer() 119 $content = $client->getContainer()
118 ->get('doctrine.orm.entity_manager') 120 ->get('doctrine.orm.entity_manager')
119 ->getRepository('WallabagCoreBundle:Entry') 121 ->getRepository('WallabagCoreBundle:Entry')
120 ->findOneByIsArchived(false); 122 ->findOneByUrl($this->url);
121 123
122 $crawler = $client->request('GET', '/edit/'.$content->getId()); 124 $crawler = $client->request('GET', '/edit/'.$content->getId());
123 125
@@ -135,7 +137,7 @@ class EntryControllerTest extends WallabagCoreTestCase
135 $content = $client->getContainer() 137 $content = $client->getContainer()
136 ->get('doctrine.orm.entity_manager') 138 ->get('doctrine.orm.entity_manager')
137 ->getRepository('WallabagCoreBundle:Entry') 139 ->getRepository('WallabagCoreBundle:Entry')
138 ->findOneByIsArchived(false); 140 ->findOneByUrl($this->url);
139 141
140 $crawler = $client->request('GET', '/edit/'.$content->getId()); 142 $crawler = $client->request('GET', '/edit/'.$content->getId());
141 143
@@ -165,7 +167,7 @@ class EntryControllerTest extends WallabagCoreTestCase
165 $content = $client->getContainer() 167 $content = $client->getContainer()
166 ->get('doctrine.orm.entity_manager') 168 ->get('doctrine.orm.entity_manager')
167 ->getRepository('WallabagCoreBundle:Entry') 169 ->getRepository('WallabagCoreBundle:Entry')
168 ->findOneByIsArchived(false); 170 ->findOneByUrl($this->url);
169 171
170 $client->request('GET', '/archive/'.$content->getId()); 172 $client->request('GET', '/archive/'.$content->getId());
171 173
@@ -174,7 +176,7 @@ class EntryControllerTest extends WallabagCoreTestCase
174 $res = $client->getContainer() 176 $res = $client->getContainer()
175 ->get('doctrine.orm.entity_manager') 177 ->get('doctrine.orm.entity_manager')
176 ->getRepository('WallabagCoreBundle:Entry') 178 ->getRepository('WallabagCoreBundle:Entry')
177 ->findOneById($content->getId()); 179 ->find($content->getId());
178 180
179 $this->assertEquals($res->isArchived(), true); 181 $this->assertEquals($res->isArchived(), true);
180 } 182 }
@@ -187,7 +189,7 @@ class EntryControllerTest extends WallabagCoreTestCase
187 $content = $client->getContainer() 189 $content = $client->getContainer()
188 ->get('doctrine.orm.entity_manager') 190 ->get('doctrine.orm.entity_manager')
189 ->getRepository('WallabagCoreBundle:Entry') 191 ->getRepository('WallabagCoreBundle:Entry')
190 ->findOneByIsStarred(false); 192 ->findOneByUrl($this->url);
191 193
192 $client->request('GET', '/star/'.$content->getId()); 194 $client->request('GET', '/star/'.$content->getId());
193 195
@@ -209,7 +211,7 @@ class EntryControllerTest extends WallabagCoreTestCase
209 $content = $client->getContainer() 211 $content = $client->getContainer()
210 ->get('doctrine.orm.entity_manager') 212 ->get('doctrine.orm.entity_manager')
211 ->getRepository('WallabagCoreBundle:Entry') 213 ->getRepository('WallabagCoreBundle:Entry')
212 ->findOneByIsStarred(false); 214 ->findOneByUrl($this->url);
213 215
214 $client->request('GET', '/delete/'.$content->getId()); 216 $client->request('GET', '/delete/'.$content->getId());
215 217
@@ -222,21 +224,15 @@ class EntryControllerTest extends WallabagCoreTestCase
222 224
223 public function testViewOtherUserEntry() 225 public function testViewOtherUserEntry()
224 { 226 {
225 $this->logInAs('bob'); 227 $this->logInAs('admin');
226 $client = $this->getClient(); 228 $client = $this->getClient();
227 229
228 $content = $client->getContainer() 230 $content = $client->getContainer()
229 ->get('doctrine.orm.entity_manager') 231 ->get('doctrine.orm.entity_manager')
230 ->getRepository('WallabagCoreBundle:Entry') 232 ->getRepository('WallabagCoreBundle:Entry')
231 ->createQueryBuilder('e') 233 ->findOneByUsernameAndNotArchived('bob');
232 ->select('e.id')
233 ->leftJoin('e.user', 'u')
234 ->where('u.username != :username')->setParameter('username', 'bob')
235 ->setMaxResults(1)
236 ->getQuery()
237 ->getSingleResult(AbstractQuery::HYDRATE_ARRAY);
238 234
239 $client->request('GET', '/view/'.$content['id']); 235 $client->request('GET', '/view/'.$content->getId());
240 236
241 $this->assertEquals(403, $client->getResponse()->getStatusCode()); 237 $this->assertEquals(403, $client->getResponse()->getStatusCode());
242 } 238 }
@@ -334,11 +330,11 @@ class EntryControllerTest extends WallabagCoreTestCase
334 $crawler = $client->request('GET', '/unread/list'); 330 $crawler = $client->request('GET', '/unread/list');
335 $form = $crawler->filter('button[id=submit-filter]')->form(); 331 $form = $crawler->filter('button[id=submit-filter]')->form();
336 $data = array( 332 $data = array(
337 'entry_filter[domainName]' => 'monde', 333 'entry_filter[domainName]' => 'domain',
338 ); 334 );
339 335
340 $crawler = $client->submit($form, $data); 336 $crawler = $client->submit($form, $data);
341 $this->assertCount(1, $crawler->filter('div[class=entry]')); 337 $this->assertCount(5, $crawler->filter('div[class=entry]'));
342 338
343 $form = $crawler->filter('button[id=submit-filter]')->form(); 339 $form = $crawler->filter('button[id=submit-filter]')->form();
344 $data = array( 340 $data = array(
@@ -360,14 +356,14 @@ class EntryControllerTest extends WallabagCoreTestCase
360 $form['entry_filter[isStarred]']->untick(); 356 $form['entry_filter[isStarred]']->untick();
361 357
362 $crawler = $client->submit($form); 358 $crawler = $client->submit($form);
363 $this->assertCount(2, $crawler->filter('div[class=entry]')); 359 $this->assertCount(1, $crawler->filter('div[class=entry]'));
364 360
365 $form = $crawler->filter('button[id=submit-filter]')->form(); 361 $form = $crawler->filter('button[id=submit-filter]')->form();
366 $form['entry_filter[isArchived]']->untick(); 362 $form['entry_filter[isArchived]']->untick();
367 $form['entry_filter[isStarred]']->tick(); 363 $form['entry_filter[isStarred]']->tick();
368 364
369 $crawler = $client->submit($form); 365 $crawler = $client->submit($form);
370 $this->assertCount(2, $crawler->filter('div[class=entry]')); 366 $this->assertCount(1, $crawler->filter('div[class=entry]'));
371 } 367 }
372 368
373 public function testPreviewPictureFilter() 369 public function testPreviewPictureFilter()
@@ -391,11 +387,11 @@ class EntryControllerTest extends WallabagCoreTestCase
391 $crawler = $client->request('GET', '/unread/list'); 387 $crawler = $client->request('GET', '/unread/list');
392 $form = $crawler->filter('button[id=submit-filter]')->form(); 388 $form = $crawler->filter('button[id=submit-filter]')->form();
393 $data = array( 389 $data = array(
394 'entry_filter[language]' => 'de', 390 'entry_filter[language]' => 'fr',
395 ); 391 );
396 392
397 $crawler = $client->submit($form, $data); 393 $crawler = $client->submit($form, $data);
398 $this->assertCount(1, $crawler->filter('div[class=entry]')); 394 $this->assertCount(2, $crawler->filter('div[class=entry]'));
399 395
400 $form = $crawler->filter('button[id=submit-filter]')->form(); 396 $form = $crawler->filter('button[id=submit-filter]')->form();
401 $data = array( 397 $data = array(
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php
index d25b2db5..dc93dd6b 100644
--- a/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Controller/TagControllerTest.php
@@ -24,7 +24,7 @@ class TagControllerTest extends WallabagCoreTestCase
24 $entry = $client->getContainer() 24 $entry = $client->getContainer()
25 ->get('doctrine.orm.entity_manager') 25 ->get('doctrine.orm.entity_manager')
26 ->getRepository('WallabagCoreBundle:Entry') 26 ->getRepository('WallabagCoreBundle:Entry')
27 ->findOneBy(array()); 27 ->findOneByUsernameAndNotArchived('admin');
28 28
29 $crawler = $client->request('GET', '/view/'.$entry->getId()); 29 $crawler = $client->request('GET', '/view/'.$entry->getId());
30 30
@@ -46,7 +46,7 @@ class TagControllerTest extends WallabagCoreTestCase
46 $newEntry = $client->getContainer() 46 $newEntry = $client->getContainer()
47 ->get('doctrine.orm.entity_manager') 47 ->get('doctrine.orm.entity_manager')
48 ->getRepository('WallabagCoreBundle:Entry') 48 ->getRepository('WallabagCoreBundle:Entry')
49 ->findOneById($entry->getId()); 49 ->find($entry->getId());
50 50
51 $this->assertEquals(1, count($newEntry->getTags())); 51 $this->assertEquals(1, count($newEntry->getTags()));
52 52
@@ -61,7 +61,7 @@ class TagControllerTest extends WallabagCoreTestCase
61 $newEntry = $client->getContainer() 61 $newEntry = $client->getContainer()
62 ->get('doctrine.orm.entity_manager') 62 ->get('doctrine.orm.entity_manager')
63 ->getRepository('WallabagCoreBundle:Entry') 63 ->getRepository('WallabagCoreBundle:Entry')
64 ->findOneById($entry->getId()); 64 ->find($entry->getId());
65 65
66 $this->assertEquals(2, count($newEntry->getTags())); 66 $this->assertEquals(2, count($newEntry->getTags()));
67 } 67 }
diff --git a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php
index 30065d6b..0d338389 100644
--- a/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php
@@ -35,6 +35,8 @@ class ContentProxyTest extends KernelTestCase
35 $this->assertEmpty($entry->getPreviewPicture()); 35 $this->assertEmpty($entry->getPreviewPicture());
36 $this->assertEmpty($entry->getMimetype()); 36 $this->assertEmpty($entry->getMimetype());
37 $this->assertEmpty($entry->getLanguage()); 37 $this->assertEmpty($entry->getLanguage());
38 $this->assertEquals(0.0, $entry->getReadingTime());
39 $this->assertEquals('0.0.0.0', $entry->getDomainName());
38 } 40 }
39 41
40 public function testWithEmptyContentButOG() 42 public function testWithEmptyContentButOG()
@@ -59,14 +61,16 @@ class ContentProxyTest extends KernelTestCase
59 )); 61 ));
60 62
61 $proxy = new ContentProxy($graby); 63 $proxy = new ContentProxy($graby);
62 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0'); 64 $entry = $proxy->updateEntry(new Entry(new User()), 'http://domain.io');
63 65
64 $this->assertEquals('http://0.0.0.0', $entry->getUrl()); 66 $this->assertEquals('http://domain.io', $entry->getUrl());
65 $this->assertEquals('my title', $entry->getTitle()); 67 $this->assertEquals('my title', $entry->getTitle());
66 $this->assertEquals('<p>Unable to retrieve readable content.</p><p><i>But we found a short description: </i></p>desc', $entry->getContent()); 68 $this->assertEquals('<p>Unable to retrieve readable content.</p><p><i>But we found a short description: </i></p>desc', $entry->getContent());
67 $this->assertEmpty($entry->getPreviewPicture()); 69 $this->assertEmpty($entry->getPreviewPicture());
68 $this->assertEmpty($entry->getLanguage()); 70 $this->assertEmpty($entry->getLanguage());
69 $this->assertEmpty($entry->getMimetype()); 71 $this->assertEmpty($entry->getMimetype());
72 $this->assertEquals(0.0, $entry->getReadingTime());
73 $this->assertEquals('domain.io', $entry->getDomainName());
70 } 74 }
71 75
72 public function testWithContent() 76 public function testWithContent()
@@ -79,7 +83,7 @@ class ContentProxyTest extends KernelTestCase
79 $graby->expects($this->any()) 83 $graby->expects($this->any())
80 ->method('fetchContent') 84 ->method('fetchContent')
81 ->willReturn(array( 85 ->willReturn(array(
82 'html' => 'this is my content', 86 'html' => str_repeat('this is my content', 325),
83 'title' => 'this is my title', 87 'title' => 'this is my title',
84 'url' => 'http://1.1.1.1', 88 'url' => 'http://1.1.1.1',
85 'content_type' => 'text/html', 89 'content_type' => 'text/html',
@@ -96,9 +100,11 @@ class ContentProxyTest extends KernelTestCase
96 100
97 $this->assertEquals('http://1.1.1.1', $entry->getUrl()); 101 $this->assertEquals('http://1.1.1.1', $entry->getUrl());
98 $this->assertEquals('this is my title', $entry->getTitle()); 102 $this->assertEquals('this is my title', $entry->getTitle());
99 $this->assertEquals('this is my content', $entry->getContent()); 103 $this->assertContains('this is my content', $entry->getContent());
100 $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture()); 104 $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture());
101 $this->assertEquals('text/html', $entry->getMimetype()); 105 $this->assertEquals('text/html', $entry->getMimetype());
102 $this->assertEquals('fr', $entry->getLanguage()); 106 $this->assertEquals('fr', $entry->getLanguage());
107 $this->assertEquals(4.0, $entry->getReadingTime());
108 $this->assertEquals('1.1.1.1', $entry->getDomainName());
103 } 109 }
104} 110}