aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php')
-rw-r--r--tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php77
1 files changed, 62 insertions, 15 deletions
diff --git a/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php b/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php
index 5d772602..5956b502 100644
--- a/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php
+++ b/tests/Wallabag/CoreBundle/Helper/ContentProxyTest.php
@@ -10,6 +10,8 @@ use Wallabag\UserBundle\Entity\User;
10 10
11class ContentProxyTest extends \PHPUnit_Framework_TestCase 11class ContentProxyTest extends \PHPUnit_Framework_TestCase
12{ 12{
13 private $fetchingErrorMessage = 'wallabag can\'t retrieve contents for this article. Please <a href="http://doc.wallabag.org/en/master/user/errors_during_fetching.html#how-can-i-help-to-fix-that">troubleshoot this issue</a>.';
14
13 public function testWithBadUrl() 15 public function testWithBadUrl()
14 { 16 {
15 $tagger = $this->getTaggerMock(); 17 $tagger = $this->getTaggerMock();
@@ -31,12 +33,12 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
31 'language' => '', 33 'language' => '',
32 ]); 34 ]);
33 35
34 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); 36 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
35 $entry = $proxy->updateEntry(new Entry(new User()), 'http://user@:80'); 37 $entry = $proxy->updateEntry(new Entry(new User()), 'http://user@:80');
36 38
37 $this->assertEquals('http://user@:80', $entry->getUrl()); 39 $this->assertEquals('http://user@:80', $entry->getUrl());
38 $this->assertEmpty($entry->getTitle()); 40 $this->assertEmpty($entry->getTitle());
39 $this->assertEquals('<p>Unable to retrieve readable content.</p>', $entry->getContent()); 41 $this->assertEquals($this->fetchingErrorMessage, $entry->getContent());
40 $this->assertEmpty($entry->getPreviewPicture()); 42 $this->assertEmpty($entry->getPreviewPicture());
41 $this->assertEmpty($entry->getMimetype()); 43 $this->assertEmpty($entry->getMimetype());
42 $this->assertEmpty($entry->getLanguage()); 44 $this->assertEmpty($entry->getLanguage());
@@ -65,12 +67,12 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
65 'language' => '', 67 'language' => '',
66 ]); 68 ]);
67 69
68 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); 70 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
69 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0'); 71 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
70 72
71 $this->assertEquals('http://0.0.0.0', $entry->getUrl()); 73 $this->assertEquals('http://0.0.0.0', $entry->getUrl());
72 $this->assertEmpty($entry->getTitle()); 74 $this->assertEmpty($entry->getTitle());
73 $this->assertEquals('<p>Unable to retrieve readable content.</p>', $entry->getContent()); 75 $this->assertEquals($this->fetchingErrorMessage, $entry->getContent());
74 $this->assertEmpty($entry->getPreviewPicture()); 76 $this->assertEmpty($entry->getPreviewPicture());
75 $this->assertEmpty($entry->getMimetype()); 77 $this->assertEmpty($entry->getMimetype());
76 $this->assertEmpty($entry->getLanguage()); 78 $this->assertEmpty($entry->getLanguage());
@@ -97,20 +99,22 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
97 'url' => '', 99 'url' => '',
98 'content_type' => '', 100 'content_type' => '',
99 'language' => '', 101 'language' => '',
102 'status' => '',
100 'open_graph' => [ 103 'open_graph' => [
101 'og_title' => 'my title', 104 'og_title' => 'my title',
102 'og_description' => 'desc', 105 'og_description' => 'desc',
103 ], 106 ],
104 ]); 107 ]);
105 108
106 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); 109 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
107 $entry = $proxy->updateEntry(new Entry(new User()), 'http://domain.io'); 110 $entry = $proxy->updateEntry(new Entry(new User()), 'http://domain.io');
108 111
109 $this->assertEquals('http://domain.io', $entry->getUrl()); 112 $this->assertEquals('http://domain.io', $entry->getUrl());
110 $this->assertEquals('my title', $entry->getTitle()); 113 $this->assertEquals('my title', $entry->getTitle());
111 $this->assertEquals('<p>Unable to retrieve readable content.</p><p><i>But we found a short description: </i></p>desc', $entry->getContent()); 114 $this->assertEquals($this->fetchingErrorMessage . '<p><i>But we found a short description: </i></p>desc', $entry->getContent());
112 $this->assertEmpty($entry->getPreviewPicture()); 115 $this->assertEmpty($entry->getPreviewPicture());
113 $this->assertEmpty($entry->getLanguage()); 116 $this->assertEmpty($entry->getLanguage());
117 $this->assertEmpty($entry->getHttpStatus());
114 $this->assertEmpty($entry->getMimetype()); 118 $this->assertEmpty($entry->getMimetype());
115 $this->assertEquals(0.0, $entry->getReadingTime()); 119 $this->assertEquals(0.0, $entry->getReadingTime());
116 $this->assertEquals('domain.io', $entry->getDomainName()); 120 $this->assertEquals('domain.io', $entry->getDomainName());
@@ -135,6 +139,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
135 'url' => 'http://1.1.1.1', 139 'url' => 'http://1.1.1.1',
136 'content_type' => 'text/html', 140 'content_type' => 'text/html',
137 'language' => 'fr', 141 'language' => 'fr',
142 'status' => '200',
138 'open_graph' => [ 143 'open_graph' => [
139 'og_title' => 'my OG title', 144 'og_title' => 'my OG title',
140 'og_description' => 'OG desc', 145 'og_description' => 'OG desc',
@@ -142,7 +147,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
142 ], 147 ],
143 ]); 148 ]);
144 149
145 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); 150 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
146 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0'); 151 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
147 152
148 $this->assertEquals('http://1.1.1.1', $entry->getUrl()); 153 $this->assertEquals('http://1.1.1.1', $entry->getUrl());
@@ -151,6 +156,48 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
151 $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture()); 156 $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture());
152 $this->assertEquals('text/html', $entry->getMimetype()); 157 $this->assertEquals('text/html', $entry->getMimetype());
153 $this->assertEquals('fr', $entry->getLanguage()); 158 $this->assertEquals('fr', $entry->getLanguage());
159 $this->assertEquals('200', $entry->getHttpStatus());
160 $this->assertEquals(4.0, $entry->getReadingTime());
161 $this->assertEquals('1.1.1.1', $entry->getDomainName());
162 }
163
164 public function testWithContentAndNoOgImage()
165 {
166 $tagger = $this->getTaggerMock();
167 $tagger->expects($this->once())
168 ->method('tag');
169
170 $graby = $this->getMockBuilder('Graby\Graby')
171 ->setMethods(['fetchContent'])
172 ->disableOriginalConstructor()
173 ->getMock();
174
175 $graby->expects($this->any())
176 ->method('fetchContent')
177 ->willReturn([
178 'html' => str_repeat('this is my content', 325),
179 'title' => 'this is my title',
180 'url' => 'http://1.1.1.1',
181 'content_type' => 'text/html',
182 'language' => 'fr',
183 'status' => '200',
184 'open_graph' => [
185 'og_title' => 'my OG title',
186 'og_description' => 'OG desc',
187 'og_image' => false,
188 ],
189 ]);
190
191 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
192 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
193
194 $this->assertEquals('http://1.1.1.1', $entry->getUrl());
195 $this->assertEquals('this is my title', $entry->getTitle());
196 $this->assertContains('this is my content', $entry->getContent());
197 $this->assertNull($entry->getPreviewPicture());
198 $this->assertEquals('text/html', $entry->getMimetype());
199 $this->assertEquals('fr', $entry->getLanguage());
200 $this->assertEquals('200', $entry->getHttpStatus());
154 $this->assertEquals(4.0, $entry->getReadingTime()); 201 $this->assertEquals(4.0, $entry->getReadingTime());
155 $this->assertEquals('1.1.1.1', $entry->getDomainName()); 202 $this->assertEquals('1.1.1.1', $entry->getDomainName());
156 } 203 }
@@ -163,7 +210,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
163 210
164 $graby = $this->getMockBuilder('Graby\Graby')->getMock(); 211 $graby = $this->getMockBuilder('Graby\Graby')->getMock();
165 212
166 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger()); 213 $proxy = new ContentProxy($graby, $tagger, $this->getTagRepositoryMock(), $this->getLogger(), $this->fetchingErrorMessage);
167 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [ 214 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [
168 'html' => str_repeat('this is my content', 325), 215 'html' => str_repeat('this is my content', 325),
169 'title' => 'this is my title', 216 'title' => 'this is my title',
@@ -193,7 +240,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
193 ->will($this->throwException(new \Exception())); 240 ->will($this->throwException(new \Exception()));
194 241
195 $tagRepo = $this->getTagRepositoryMock(); 242 $tagRepo = $this->getTagRepositoryMock();
196 $proxy = new ContentProxy($graby, $tagger, $tagRepo, $this->getLogger()); 243 $proxy = new ContentProxy($graby, $tagger, $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
197 244
198 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [ 245 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0', [
199 'html' => str_repeat('this is my content', 325), 246 'html' => str_repeat('this is my content', 325),
@@ -213,7 +260,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
213 ->getMock(); 260 ->getMock();
214 261
215 $tagRepo = $this->getTagRepositoryMock(); 262 $tagRepo = $this->getTagRepositoryMock();
216 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 263 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
217 264
218 $entry = new Entry(new User()); 265 $entry = new Entry(new User());
219 266
@@ -231,7 +278,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
231 ->getMock(); 278 ->getMock();
232 279
233 $tagRepo = $this->getTagRepositoryMock(); 280 $tagRepo = $this->getTagRepositoryMock();
234 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 281 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
235 282
236 $entry = new Entry(new User()); 283 $entry = new Entry(new User());
237 284
@@ -249,7 +296,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
249 ->getMock(); 296 ->getMock();
250 297
251 $tagRepo = $this->getTagRepositoryMock(); 298 $tagRepo = $this->getTagRepositoryMock();
252 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 299 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
253 300
254 $entry = new Entry(new User()); 301 $entry = new Entry(new User());
255 302
@@ -265,7 +312,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
265 ->getMock(); 312 ->getMock();
266 313
267 $tagRepo = $this->getTagRepositoryMock(); 314 $tagRepo = $this->getTagRepositoryMock();
268 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 315 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
269 316
270 $entry = new Entry(new User()); 317 $entry = new Entry(new User());
271 318
@@ -281,7 +328,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
281 ->getMock(); 328 ->getMock();
282 329
283 $tagRepo = $this->getTagRepositoryMock(); 330 $tagRepo = $this->getTagRepositoryMock();
284 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 331 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
285 332
286 $tagEntity = new Tag(); 333 $tagEntity = new Tag();
287 $tagEntity->setLabel('tag1'); 334 $tagEntity->setLabel('tag1');
@@ -306,7 +353,7 @@ class ContentProxyTest extends \PHPUnit_Framework_TestCase
306 $tagRepo->expects($this->never()) 353 $tagRepo->expects($this->never())
307 ->method('__call'); 354 ->method('__call');
308 355
309 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger()); 356 $proxy = new ContentProxy($graby, $this->getTaggerMock(), $tagRepo, $this->getLogger(), $this->fetchingErrorMessage);
310 357
311 $tagEntity = new Tag(); 358 $tagEntity = new Tag();
312 $tagEntity->setLabel('tag1'); 359 $tagEntity->setLabel('tag1');