From ca74886f30da323f42aa4bd70461003f46ef299b Mon Sep 17 00:00:00 2001 From: VirtualTam Date: Thu, 12 Mar 2015 00:43:02 +0100 Subject: LinkDB: move to a proper file, add test coverage Relates to #71 LinkDB - move to application/LinkDB.php - code cleanup - indentation - whitespaces - formatting - comment cleanup - add missing documentation - unify formatting Test coverage for LinkDB - constructor - public / private access - link-related methods Shaarli utilities (LinkDB dependencies) - move startsWith() and endsWith() functions to application/Utils.php - add test coverage Dev utilities - Composer: add PHPUnit to dev dependencies - Makefile: - update lint targets - add test targets - generate coverage reports Signed-off-by: VirtualTam --- tests/utils/ReferenceLinkDB.php | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 tests/utils/ReferenceLinkDB.php (limited to 'tests/utils/ReferenceLinkDB.php') diff --git a/tests/utils/ReferenceLinkDB.php b/tests/utils/ReferenceLinkDB.php new file mode 100644 index 00000000..2cb05bae --- /dev/null +++ b/tests/utils/ReferenceLinkDB.php @@ -0,0 +1,128 @@ +addLink( + 'Free as in Freedom 2.0', + 'https://static.fsf.org/nosvn/faif-2.0.pdf', + 'Richard Stallman and the Free Software Revolution', + 0, + '20150310_114633', + 'free gnu software stallman' + ); + + $this->addLink( + 'MediaGoblin', + 'http://mediagoblin.org/', + 'A free software media publishing platform', + 0, + '20130614_184135', + 'gnu media web' + ); + + $this->addLink( + 'w3c-markup-validator', + 'https://dvcs.w3.org/hg/markup-validator/summary', + 'Mercurial repository for the W3C Validator', + 1, + '20141125_084734', + 'css html w3c web Mercurial' + ); + + $this->addLink( + 'UserFriendly - Web Designer', + 'http://ars.userfriendly.org/cartoons/?id=20121206', + 'Naming conventions...', + 0, + '20121206_142300', + 'dev cartoon web' + ); + + $this->addLink( + 'UserFriendly - Samba', + 'http://ars.userfriendly.org/cartoons/?id=20010306', + 'Tropical printing', + 0, + '20121206_172539', + 'samba cartoon web' + ); + + $this->addLink( + 'Geek and Poke', + 'http://geek-and-poke.com/', + '', + 1, + '20121206_182539', + 'dev cartoon' + ); + } + + /** + * Adds a new link + */ + protected function addLink($title, $url, $description, $private, $date, $tags) + { + $link = array( + 'title' => $title, + 'url' => $url, + 'description' => $description, + 'private' => $private, + 'linkdate' => $date, + 'tags' => $tags, + ); + $this->links[$date] = $link; + + if ($private) { + $this->privateCount++; + return; + } + $this->publicCount++; + } + + /** + * Writes data to the datastore + */ + public function write($filename, $prefix, $suffix) + { + file_put_contents( + $filename, + $prefix.base64_encode(gzdeflate(serialize($this->links))).$suffix + ); + } + + /** + * Returns the number of links in the reference data + */ + public function countLinks() + { + return $this->publicCount + $this->privateCount; + } + + /** + * Returns the number of public links in the reference data + */ + public function countPublicLinks() + { + return $this->publicCount; + } + + /** + * Returns the number of private links in the reference data + */ + public function countPrivateLinks() + { + return $this->privateCount; + } +} +?> -- cgit v1.2.3