write(self::$testDatastore); self::$linkDb = new LinkDB(self::$testDatastore, true, false); } /** * Attempt to export an invalid link selection * @expectedException Exception * @expectedExceptionMessageRegExp /Invalid export selection/ */ public function testFilterAndFormatInvalid() { NetscapeBookmarkUtils::filterAndFormat(self::$linkDb, 'derp'); } /** * Prepare all links for export */ public function testFilterAndFormatAll() { $links = NetscapeBookmarkUtils::filterAndFormat(self::$linkDb, 'all'); $this->assertEquals(self::$refDb->countLinks(), sizeof($links)); foreach ($links as $link) { $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); $this->assertEquals( $date->getTimestamp(), $link['timestamp'] ); $this->assertEquals( str_replace(' ', ',', $link['tags']), $link['taglist'] ); } } /** * Prepare private links for export */ public function testFilterAndFormatPrivate() { $links = NetscapeBookmarkUtils::filterAndFormat(self::$linkDb, 'private'); $this->assertEquals(self::$refDb->countPrivateLinks(), sizeof($links)); foreach ($links as $link) { $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); $this->assertEquals( $date->getTimestamp(), $link['timestamp'] ); $this->assertEquals( str_replace(' ', ',', $link['tags']), $link['taglist'] ); } } /** * Prepare public links for export */ public function testFilterAndFormatPublic() { $links = NetscapeBookmarkUtils::filterAndFormat(self::$linkDb, 'public'); $this->assertEquals(self::$refDb->countPublicLinks(), sizeof($links)); foreach ($links as $link) { $date = DateTime::createFromFormat(LinkDB::LINK_DATE_FORMAT, $link['linkdate']); $this->assertEquals( $date->getTimestamp(), $link['timestamp'] ); $this->assertEquals( str_replace(' ', ',', $link['tags']), $link['taglist'] ); } } }