]> git.immae.eu Git - github/wallabag/wallabag.git/blame_incremental - src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php
Add missing use statement
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Tests / Helper / ContentProxyTest.php
... / ...
CommitLineData
1<?php
2
3namespace Wallabag\CoreBundle\Tests\Helper;
4
5use Wallabag\CoreBundle\Entity\Entry;
6use Wallabag\UserBundle\Entity\User;
7use Wallabag\CoreBundle\Helper\ContentProxy;
8
9class ContentProxyTest extends \PHPUnit_Framework_TestCase
10{
11 public function testWithEmptyContent()
12 {
13 $graby = $this->getMockBuilder('Graby\Graby')
14 ->setMethods(array('fetchContent'))
15 ->disableOriginalConstructor()
16 ->getMock();
17
18 $graby->expects($this->any())
19 ->method('fetchContent')
20 ->willReturn(array(
21 'html' => false,
22 'title' => '',
23 'url' => '',
24 'content_type' => '',
25 'language' => '',
26 ));
27
28 $proxy = new ContentProxy($graby);
29 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
30
31 $this->assertEquals('http://0.0.0.0', $entry->getUrl());
32 $this->assertEmpty($entry->getTitle());
33 $this->assertEquals('<p>Unable to retrieve readable content.</p>', $entry->getContent());
34 $this->assertEmpty($entry->getPreviewPicture());
35 $this->assertEmpty($entry->getMimetype());
36 $this->assertEmpty($entry->getLanguage());
37 $this->assertEquals(0.0, $entry->getReadingTime());
38 $this->assertEquals('0.0.0.0', $entry->getDomainName());
39 }
40
41 public function testWithEmptyContentButOG()
42 {
43 $graby = $this->getMockBuilder('Graby\Graby')
44 ->setMethods(array('fetchContent'))
45 ->disableOriginalConstructor()
46 ->getMock();
47
48 $graby->expects($this->any())
49 ->method('fetchContent')
50 ->willReturn(array(
51 'html' => false,
52 'title' => '',
53 'url' => '',
54 'content_type' => '',
55 'language' => '',
56 'open_graph' => array(
57 'og_title' => 'my title',
58 'og_description' => 'desc',
59 ),
60 ));
61
62 $proxy = new ContentProxy($graby);
63 $entry = $proxy->updateEntry(new Entry(new User()), 'http://domain.io');
64
65 $this->assertEquals('http://domain.io', $entry->getUrl());
66 $this->assertEquals('my title', $entry->getTitle());
67 $this->assertEquals('<p>Unable to retrieve readable content.</p><p><i>But we found a short description: </i></p>desc', $entry->getContent());
68 $this->assertEmpty($entry->getPreviewPicture());
69 $this->assertEmpty($entry->getLanguage());
70 $this->assertEmpty($entry->getMimetype());
71 $this->assertEquals(0.0, $entry->getReadingTime());
72 $this->assertEquals('domain.io', $entry->getDomainName());
73 }
74
75 public function testWithContent()
76 {
77 $graby = $this->getMockBuilder('Graby\Graby')
78 ->setMethods(array('fetchContent'))
79 ->disableOriginalConstructor()
80 ->getMock();
81
82 $graby->expects($this->any())
83 ->method('fetchContent')
84 ->willReturn(array(
85 'html' => str_repeat('this is my content', 325),
86 'title' => 'this is my title',
87 'url' => 'http://1.1.1.1',
88 'content_type' => 'text/html',
89 'language' => 'fr',
90 'open_graph' => array(
91 'og_title' => 'my OG title',
92 'og_description' => 'OG desc',
93 'og_image' => 'http://3.3.3.3/cover.jpg',
94 ),
95 ));
96
97 $proxy = new ContentProxy($graby);
98 $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
99
100 $this->assertEquals('http://1.1.1.1', $entry->getUrl());
101 $this->assertEquals('this is my title', $entry->getTitle());
102 $this->assertContains('this is my content', $entry->getContent());
103 $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture());
104 $this->assertEquals('text/html', $entry->getMimetype());
105 $this->assertEquals('fr', $entry->getLanguage());
106 $this->assertEquals(4.0, $entry->getReadingTime());
107 $this->assertEquals('1.1.1.1', $entry->getDomainName());
108 }
109}