use DateTime;
use ReferenceLinkDB;
+use Shaarli\Bookmark\Bookmark;
+use Shaarli\Bookmark\BookmarkFileService;
use Shaarli\Bookmark\LinkDB;
+use Shaarli\Config\ConfigManager;
+use Shaarli\Formatter\FormatterFactory;
+use Shaarli\History;
/**
* FeedBuilderTest class.
protected static $testDatastore = 'sandbox/datastore.php';
- public static $linkDB;
+ public static $bookmarkService;
+
+ public static $formatter;
public static $serverInfo;
*/
public static function setUpBeforeClass()
{
- $refLinkDB = new ReferenceLinkDB();
+ $conf = new ConfigManager('tests/utils/config/configJson');
+ $conf->set('resource.datastore', self::$testDatastore);
+ $refLinkDB = new \ReferenceLinkDB();
$refLinkDB->write(self::$testDatastore);
- self::$linkDB = new LinkDB(self::$testDatastore, true, false);
+ $history = new History('sandbox/history.php');
+ $factory = new FormatterFactory($conf);
+ self::$formatter = $factory->getFormatter();
+ self::$bookmarkService = new BookmarkFileService($conf, $history, true);
+
self::$serverInfo = array(
'HTTPS' => 'Off',
'SERVER_NAME' => 'host.tld',
*/
public function testGetTypeLanguage()
{
- $feedBuilder = new FeedBuilder(null, FeedBuilder::$FEED_ATOM, null, null, false);
+ $feedBuilder = new FeedBuilder(null, self::$formatter, FeedBuilder::$FEED_ATOM, null, null, false);
$feedBuilder->setLocale(self::$LOCALE);
$this->assertEquals(self::$ATOM_LANGUAGUE, $feedBuilder->getTypeLanguage());
- $feedBuilder = new FeedBuilder(null, FeedBuilder::$FEED_RSS, null, null, false);
+ $feedBuilder = new FeedBuilder(null, self::$formatter, FeedBuilder::$FEED_RSS, null, null, false);
$feedBuilder->setLocale(self::$LOCALE);
$this->assertEquals(self::$RSS_LANGUAGE, $feedBuilder->getTypeLanguage());
- $feedBuilder = new FeedBuilder(null, FeedBuilder::$FEED_ATOM, null, null, false);
+ $feedBuilder = new FeedBuilder(null, self::$formatter, FeedBuilder::$FEED_ATOM, null, null, false);
$this->assertEquals('en', $feedBuilder->getTypeLanguage());
- $feedBuilder = new FeedBuilder(null, FeedBuilder::$FEED_RSS, null, null, false);
+ $feedBuilder = new FeedBuilder(null, self::$formatter, FeedBuilder::$FEED_RSS, null, null, false);
$this->assertEquals('en-en', $feedBuilder->getTypeLanguage());
}
*/
public function testRSSBuildData()
{
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_RSS, self::$serverInfo, null, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_RSS,
+ self::$serverInfo,
+ null,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$data = $feedBuilder->buildData();
// Test headers (RSS)
// Test first not pinned link (note link)
$link = $data['links'][array_keys($data['links'])[2]];
$this->assertEquals(41, $link['id']);
- $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
+ $this->assertEquals(DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
$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['pub_iso_date']);
*/
public function testAtomBuildData()
{
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, null, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ null,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$data = $feedBuilder->buildData();
$this->assertEquals(ReferenceLinkDB::$NB_LINKS_TOTAL, count($data['links']));
'searchtags' => 'stuff',
'searchterm' => 'beard',
);
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, $criteria, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ $criteria,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$data = $feedBuilder->buildData();
$this->assertEquals(1, count($data['links']));
$link = array_shift($data['links']);
$this->assertEquals(41, $link['id']);
- $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
+ $this->assertEquals(DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
}
/**
$criteria = array(
'nb' => '3',
);
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, $criteria, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ $criteria,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$data = $feedBuilder->buildData();
$this->assertEquals(3, count($data['links']));
$link = $data['links'][array_keys($data['links'])[2]];
$this->assertEquals(41, $link['id']);
- $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
+ $this->assertEquals(DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
}
/**
*/
public function testBuildDataPermalinks()
{
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, null, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ null,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$feedBuilder->setUsePermalinks(true);
$data = $feedBuilder->buildData();
// First link is a permalink
$link = $data['links'][array_keys($data['links'])[2]];
$this->assertEquals(41, $link['id']);
- $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
+ $this->assertEquals(DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, '20150310_114651'), $link['created']);
$this->assertEquals('http://host.tld/?WDWyig', $link['guid']);
$this->assertEquals('http://host.tld/?WDWyig', $link['url']);
$this->assertContains('Direct link', $link['description']);
// Second link is a direct link
$link = $data['links'][array_keys($data['links'])[3]];
$this->assertEquals(8, $link['id']);
- $this->assertEquals(DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, '20150310_114633'), $link['created']);
+ $this->assertEquals(DateTime::createFromFormat(Bookmark::LINK_DATE_FORMAT, '20150310_114633'), $link['created']);
$this->assertEquals('http://host.tld/?RttfEw', $link['guid']);
$this->assertEquals('https://static.fsf.org/nosvn/faif-2.0.pdf', $link['url']);
$this->assertContains('Direct link', $link['description']);
*/
public function testBuildDataHideDates()
{
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, null, false);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ null,
+ false
+ );
$feedBuilder->setLocale(self::$LOCALE);
$feedBuilder->setHideDates(true);
$data = $feedBuilder->buildData();
$this->assertFalse($data['show_dates']);
// Show dates while logged in
- $feedBuilder = new FeedBuilder(self::$linkDB, FeedBuilder::$FEED_ATOM, self::$serverInfo, null, true);
+ $feedBuilder = new FeedBuilder(
+ self::$bookmarkService,
+ self::$formatter,
+ FeedBuilder::$FEED_ATOM,
+ self::$serverInfo,
+ null,
+ true
+ );
$feedBuilder->setLocale(self::$LOCALE);
$feedBuilder->setHideDates(true);
$data = $feedBuilder->buildData();
'REQUEST_URI' => '/~user/shaarli/index.php?do=feed',
);
$feedBuilder = new FeedBuilder(
- self::$linkDB,
+ self::$bookmarkService,
+ self::$formatter,
FeedBuilder::$FEED_ATOM,
$serverInfo,
null,