Set updated date for items in feeds

RSS doesn't support updated date for items, so we use the ATOM extension.
Updated dates also bump the global update
This commit is contained in:
ArthurHoaro 2016-08-03 09:45:28 +02:00
parent 9646b7da22
commit c6d876bb2a
5 changed files with 51 additions and 13 deletions

View file

@ -76,7 +76,7 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase
// Test headers (RSS)
$this->assertEquals(self::$RSS_LANGUAGE, $data['language']);
$this->assertEmpty($data['pubsubhub_url']);
$this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $data['last_update']);
$this->assertRegExp('/Wed, 03 Aug 2016 09:30:33 \+\d{4}/', $data['last_update']);
$this->assertEquals(true, $data['show_dates']);
$this->assertEquals('http://host.tld/index.php?do=feed', $data['self_link']);
$this->assertEquals('http://host.tld/', $data['index_url']);
@ -88,7 +88,10 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase
$this->assertEquals('20150310_114651', $link['linkdate']);
$this->assertEquals('http://host.tld/?WDWyig', $link['guid']);
$this->assertEquals('http://host.tld/?WDWyig', $link['url']);
$this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['iso_date']);
$this->assertRegExp('/Tue, 10 Mar 2015 11:46:51 \+\d{4}/', $link['pub_iso_date']);
$pub = DateTime::createFromFormat(DateTime::RSS, $link['pub_iso_date']);
$up = DateTime::createFromFormat(DateTime::ATOM, $link['up_iso_date']);
$this->assertEquals($pub, $up);
$this->assertContains('Stallman has a beard', $link['description']);
$this->assertContains('Permalink', $link['description']);
$this->assertContains('http://host.tld/?WDWyig', $link['description']);
@ -101,6 +104,9 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase
// Test multitags.
$this->assertEquals(5, count($data['links']['20141125_084734']['taglist']));
$this->assertEquals('css', $data['links']['20141125_084734']['taglist'][0]);
// Test update date
$this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['links']['20150310_114633']['up_iso_date']);
}
/**
@ -112,8 +118,10 @@ class FeedBuilderTest extends PHPUnit_Framework_TestCase
$feedBuilder->setLocale(self::$LOCALE);
$data = $feedBuilder->buildData();
$this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links']));
$this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['last_update']);
$link = array_shift($data['links']);
$this->assertRegExp('/2015-03-10T11:46:51\+\d{2}:+\d{2}/', $link['iso_date']);
$this->assertRegExp('/2015-03-10T11:46:51\+\d{2}:\d{2}/', $link['pub_iso_date']);
$this->assertRegExp('/2016-08-03T09:30:33\+\d{2}:\d{2}/', $data['links']['20150310_114633']['up_iso_date']);
}
/**

View file

@ -30,7 +30,8 @@ class ReferenceLinkDB
'Richard Stallman and the Free Software Revolution. Read this. #hashtag',
0,
'20150310_114633',
'free gnu software stallman -exclude stuff hashtag'
'free gnu software stallman -exclude stuff hashtag',
'20160803_093033'
);
$this->addLink(
@ -82,7 +83,7 @@ class ReferenceLinkDB
/**
* Adds a new link
*/
protected function addLink($title, $url, $description, $private, $date, $tags)
protected function addLink($title, $url, $description, $private, $date, $tags, $updated = '')
{
$link = array(
'title' => $title,
@ -91,6 +92,7 @@ class ReferenceLinkDB
'private' => $private,
'linkdate' => $date,
'tags' => $tags,
'updated' => $updated,
);
$this->_links[$date] = $link;