diff options
Diffstat (limited to 'tests/FeedBuilderTest.php')
-rw-r--r-- | tests/FeedBuilderTest.php | 77 |
1 files changed, 62 insertions, 15 deletions
diff --git a/tests/FeedBuilderTest.php b/tests/FeedBuilderTest.php index 069b1581..06a44506 100644 --- a/tests/FeedBuilderTest.php +++ b/tests/FeedBuilderTest.php | |||
@@ -76,7 +76,7 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
76 | // Test headers (RSS) | 76 | // Test headers (RSS) |
77 | $this->assertEquals(self::$RSS_LANGUAGE, $data['language']); | 77 | $this->assertEquals(self::$RSS_LANGUAGE, $data['language']); |
78 | $this->assertEmpty($data['pubsubhub_url']); | 78 | $this->assertEmpty($data['pubsubhub_url']); |
79 | $this->assertEquals('Tue, 10 Mar 2015 11:46:51 +0100', $data['last_update']); | 79 | $this->assertRegExp('/Wed, 03 Aug 2016 09:30:33 \+\d{4}/', $data['last_update']); |
80 | $this->assertEquals(true, $data['show_dates']); | 80 | $this->assertEquals(true, $data['show_dates']); |
81 | $this->assertEquals('http://host.tld/index.php?do=feed', $data['self_link']); | 81 | $this->assertEquals('http://host.tld/index.php?do=feed', $data['self_link']); |
82 | $this->assertEquals('http://host.tld/', $data['index_url']); | 82 | $this->assertEquals('http://host.tld/', $data['index_url']); |
@@ -84,23 +84,30 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
84 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); | 84 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); |
85 | 85 | ||
86 | // Test first link (note link) | 86 | // Test first link (note link) |
87 | $link = array_shift($data['links']); | 87 | $link = reset($data['links']); |
88 | $this->assertEquals('20150310_114651', $link['linkdate']); | 88 | $this->assertEquals(41, $link['id']); |
89 | $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']); | ||
89 | $this->assertEquals('http://host.tld/?WDWyig', $link['guid']); | 90 | $this->assertEquals('http://host.tld/?WDWyig', $link['guid']); |
90 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); | 91 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); |
91 | $this->assertEquals('Tue, 10 Mar 2015 11:46:51 +0100', $link['iso_date']); | 92 | $this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['pub_iso_date']); |
93 | $pub = DateTime::createFromFormat(DateTime::RSS, $link['pub_iso_date']); | ||
94 | $up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']); | ||
95 | $this->assertEquals($pub, $up); | ||
92 | $this->assertContains('Stallman has a beard', $link['description']); | 96 | $this->assertContains('Stallman has a beard', $link['description']); |
93 | $this->assertContains('Permalink', $link['description']); | 97 | $this->assertContains('Permalink', $link['description']); |
94 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); | 98 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); |
95 | $this->assertEquals(1, count($link['taglist'])); | 99 | $this->assertEquals(1, count($link['taglist'])); |
96 | $this->assertEquals('stuff', $link['taglist'][0]); | 100 | $this->assertEquals('sTuff', $link['taglist'][0]); |
97 | 101 | ||
98 | // Test URL with external link. | 102 | // Test URL with external link. |
99 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $data['links']['20150310_114633']['url']); | 103 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $data['links'][8]['url']); |
100 | 104 | ||
101 | // Test multitags. | 105 | // Test multitags. |
102 | $this->assertEquals(5, count($data['links']['20141125_084734']['taglist'])); | 106 | $this->assertEquals(5, count($data['links'][6]['taglist'])); |
103 | $this->assertEquals('css', $data['links']['20141125_084734']['taglist'][0]); | 107 | $this->assertEquals('css', $data['links'][6]['taglist'][0]); |
108 | |||
109 | // Test update date | ||
110 | $this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['links'][8]['up_iso_date']); | ||
104 | } | 111 | } |
105 | 112 | ||
106 | /** | 113 | /** |
@@ -112,8 +119,10 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
112 | $feedBuilder->setLocale(self::$LOCALE); | 119 | $feedBuilder->setLocale(self::$LOCALE); |
113 | $data = $feedBuilder->buildData(); | 120 | $data = $feedBuilder->buildData(); |
114 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); | 121 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); |
115 | $link = array_shift($data['links']); | 122 | $this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['last_update']); |
116 | $this->assertEquals('2015-03-10T11:46:51+01:00', $link['iso_date']); | 123 | $link = reset($data['links']); |
124 | $this->assertRegExp('/2015-03-10T11:46:51\+\d{2}:\d{2}/', $link['pub_iso_date']); | ||
125 | $this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['links'][8]['up_iso_date']); | ||
117 | } | 126 | } |
118 | 127 | ||
119 | /** | 128 | /** |
@@ -130,7 +139,8 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
130 | $data = $feedBuilder->buildData(); | 139 | $data = $feedBuilder->buildData(); |
131 | $this->assertEquals(1, count($data['links'])); | 140 | $this->assertEquals(1, count($data['links'])); |
132 | $link = array_shift($data['links']); | 141 | $link = array_shift($data['links']); |
133 | $this->assertEquals('20150310_114651', $link['linkdate']); | 142 | $this->assertEquals(41, $link['id']); |
143 | $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']); | ||
134 | } | 144 | } |
135 | 145 | ||
136 | /** | 146 | /** |
@@ -146,7 +156,8 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
146 | $data = $feedBuilder->buildData(); | 156 | $data = $feedBuilder->buildData(); |
147 | $this->assertEquals(1, count($data['links'])); | 157 | $this->assertEquals(1, count($data['links'])); |
148 | $link = array_shift($data['links']); | 158 | $link = array_shift($data['links']); |
149 | $this->assertEquals('20150310_114651', $link['linkdate']); | 159 | $this->assertEquals(41, $link['id']); |
160 | $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']); | ||
150 | } | 161 | } |
151 | 162 | ||
152 | /** | 163 | /** |
@@ -162,15 +173,17 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
162 | $this->assertTrue($data['usepermalinks']); | 173 | $this->assertTrue($data['usepermalinks']); |
163 | // First link is a permalink | 174 | // First link is a permalink |
164 | $link = array_shift($data['links']); | 175 | $link = array_shift($data['links']); |
165 | $this->assertEquals('20150310_114651', $link['linkdate']); | 176 | $this->assertEquals(41, $link['id']); |
177 | $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']); | ||
166 | $this->assertEquals('http://host.tld/?WDWyig', $link['guid']); | 178 | $this->assertEquals('http://host.tld/?WDWyig', $link['guid']); |
167 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); | 179 | $this->assertEquals('http://host.tld/?WDWyig', $link['url']); |
168 | $this->assertContains('Direct link', $link['description']); | 180 | $this->assertContains('Direct link', $link['description']); |
169 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); | 181 | $this->assertContains('http://host.tld/?WDWyig', $link['description']); |
170 | // Second link is a direct link | 182 | // Second link is a direct link |
171 | $link = array_shift($data['links']); | 183 | $link = array_shift($data['links']); |
172 | $this->assertEquals('20150310_114633', $link['linkdate']); | 184 | $this->assertEquals(8, $link['id']); |
173 | $this->assertEquals('http://host.tld/?kLHmZg', $link['guid']); | 185 | $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114633'), $link['created']); |
186 | $this->assertEquals('http://host.tld/?RttfEw', $link['guid']); | ||
174 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $link['url']); | 187 | $this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $link['url']); |
175 | $this->assertContains('Direct link', $link['description']); | 188 | $this->assertContains('Direct link', $link['description']); |
176 | $this->assertContains('https://static.fsf.org/nosvn/faif-2.0.pdf', $link['description']); | 189 | $this->assertContains('https://static.fsf.org/nosvn/faif-2.0.pdf', $link['description']); |
@@ -209,4 +222,38 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase | |||
209 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); | 222 | $this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links'])); |
210 | $this->assertEquals('http://pubsubhub.io', $data['pubsubhub_url']); | 223 | $this->assertEquals('http://pubsubhub.io', $data['pubsubhub_url']); |
211 | } | 224 | } |
225 | |||
226 | /** | ||
227 | * Test buildData when Shaarli is served from a subdirectory | ||
228 | */ | ||
229 | public function testBuildDataServerSubdir() | ||
230 | { | ||
231 | $serverInfo = array( | ||
232 | 'HTTPS' => 'Off', | ||
233 | 'SERVER_NAME' => 'host.tld', | ||
234 | 'SERVER_PORT' => '8080', | ||
235 | 'SCRIPT_NAME' => '/~user/shaarli/index.php', | ||
236 | 'REQUEST_URI' => '/~user/shaarli/index.php?do=feed', | ||
237 | ); | ||
238 | $feedBuilder = new FeedBuilder( | ||
239 | self::$linkDB, | ||
240 | FeedBuilder::$FEED_ATOM, | ||
241 | $serverInfo, | ||
242 | null, | ||
243 | false | ||
244 | ); | ||
245 | $feedBuilder->setLocale(self::$LOCALE); | ||
246 | $data = $feedBuilder->buildData(); | ||
247 | |||
248 | $this->assertEquals( | ||
249 | 'http://host.tld:8080/~user/shaarli/index.php?do=feed', | ||
250 | $data['self_link'] | ||
251 | ); | ||
252 | |||
253 | // Test first link (note link) | ||
254 | $link = array_shift($data['links']); | ||
255 | $this->assertEquals('http://host.tld:8080/~user/shaarli/?WDWyig', $link['guid']); | ||
256 | $this->assertEquals('http://host.tld:8080/~user/shaarli/?WDWyig', $link['url']); | ||
257 | $this->assertContains('http://host.tld:8080/~user/shaarli/?addtag=hashtag', $link['description']); | ||
258 | } | ||
212 | } | 259 | } |