summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2013-09-27 20:03:00 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2013-09-27 20:03:16 +0200
commitd6066c382083dedf426abbfd5f2f1df725c68aaf (patch)
tree4406388c5a827ebe8ed62234e11e49c35e16f3a5
parent30080c220a3f5013875d6a52e4dfe634719cbeca (diff)
use seperate direcotires for article enhancers and fetchers
-rw-r--r--articleenhancer/articleenhancer.php (renamed from utility/articleenhancer/articleenhancer.php)2
-rw-r--r--articleenhancer/enhancer.php (renamed from utility/articleenhancer/enhancer.php)2
-rw-r--r--articleenhancer/regexarticleenhancer.php (renamed from utility/articleenhancer/regexarticleenhancer.php)2
-rw-r--r--articleenhancer/regexenhancers.json (renamed from utility/articleenhancer/regexenhancers.json)0
-rw-r--r--articleenhancer/xpatharticleenhancer.php (renamed from utility/articleenhancer/xpatharticleenhancer.php)2
-rw-r--r--articleenhancer/xpathenhancers.json (renamed from utility/articleenhancer/xpathenhancers.json)0
-rw-r--r--businesslayer/feedbusinesslayer.php7
-rw-r--r--dependencyinjection/dicontainer.php21
-rw-r--r--fetcher/feedfetcher.php (renamed from utility/feedfetcher.php)2
-rw-r--r--fetcher/fetcher.php (renamed from utility/fetcher.php)2
-rw-r--r--fetcher/fetcherexception.php (renamed from utility/fetcherexception.php)2
-rw-r--r--fetcher/ifeedfetcher.php (renamed from utility/ifeedfetcher.php)2
-rw-r--r--tests/unit/articleenhancer/EnhancerTest.php (renamed from tests/unit/utility/articleenhancer/EnhancerTest.php)6
-rw-r--r--tests/unit/articleenhancer/RegexArticleEnhancerTest.php (renamed from tests/unit/utility/articleenhancer/RegexArticleEnhancerTest.php)4
-rw-r--r--tests/unit/articleenhancer/XPathArticleEnhancerTest.php (renamed from tests/unit/utility/articleenhancer/XPathArticleEnhancerTest.php)4
-rw-r--r--tests/unit/businesslayer/FeedBusinessLayerTest.php8
-rw-r--r--tests/unit/controller/TwitterFetcherTest.php77
-rw-r--r--tests/unit/fetcher/FeedFetcherTest.php (renamed from tests/unit/utility/FeedFetcherTest.php)6
-rw-r--r--tests/unit/fetcher/FetcherTest.php (renamed from tests/unit/utility/FetcherTest.php)12
-rw-r--r--utility/twitterfetcher.php69
20 files changed, 39 insertions, 191 deletions
diff --git a/utility/articleenhancer/articleenhancer.php b/articleenhancer/articleenhancer.php
index 1842a0c02..53b2d6fa8 100644
--- a/utility/articleenhancer/articleenhancer.php
+++ b/articleenhancer/articleenhancer.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Db\Item;
diff --git a/utility/articleenhancer/enhancer.php b/articleenhancer/enhancer.php
index d7d96f6a9..7981751ea 100644
--- a/utility/articleenhancer/enhancer.php
+++ b/articleenhancer/enhancer.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
class Enhancer {
diff --git a/utility/articleenhancer/regexarticleenhancer.php b/articleenhancer/regexarticleenhancer.php
index dfd822c85..0742bc127 100644
--- a/utility/articleenhancer/regexarticleenhancer.php
+++ b/articleenhancer/regexarticleenhancer.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Utility\SimplePieFileFactory;
use \OCA\News\Db\Item;
diff --git a/utility/articleenhancer/regexenhancers.json b/articleenhancer/regexenhancers.json
index 95231985d..95231985d 100644
--- a/utility/articleenhancer/regexenhancers.json
+++ b/articleenhancer/regexenhancers.json
diff --git a/utility/articleenhancer/xpatharticleenhancer.php b/articleenhancer/xpatharticleenhancer.php
index c9cff238a..77a16f04d 100644
--- a/utility/articleenhancer/xpatharticleenhancer.php
+++ b/articleenhancer/xpatharticleenhancer.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Utility\SimplePieFileFactory;
use \OCA\News\Db\Item;
diff --git a/utility/articleenhancer/xpathenhancers.json b/articleenhancer/xpathenhancers.json
index 29296c79f..29296c79f 100644
--- a/utility/articleenhancer/xpathenhancers.json
+++ b/articleenhancer/xpathenhancers.json
diff --git a/businesslayer/feedbusinesslayer.php b/businesslayer/feedbusinesslayer.php
index e337e5785..b7ad5987a 100644
--- a/businesslayer/feedbusinesslayer.php
+++ b/businesslayer/feedbusinesslayer.php
@@ -33,10 +33,9 @@ use \OCA\News\Db\Feed;
use \OCA\News\Db\Item;
use \OCA\News\Db\FeedMapper;
use \OCA\News\Db\ItemMapper;
-use \OCA\News\Utility\Fetcher;
-use \OCA\News\Utility\FetcherException;
-
-use \OCA\News\Utility\ArticleEnhancer\Enhancer;
+use \OCA\News\Fetcher\Fetcher;
+use \OCA\News\Fetcher\FetcherException;
+use \OCA\News\ArticleEnhancer\Enhancer;
class FeedBusinessLayer extends BusinessLayer {
diff --git a/dependencyinjection/dicontainer.php b/dependencyinjection/dicontainer.php
index 4297e7113..ce095ccbf 100644
--- a/dependencyinjection/dicontainer.php
+++ b/dependencyinjection/dicontainer.php
@@ -53,16 +53,16 @@ use \OCA\News\External\FeedAPI;
use \OCA\News\External\ItemAPI;
use \OCA\News\Utility\Config;
-use \OCA\News\Utility\Fetcher;
-use \OCA\News\Utility\FeedFetcher;
-use \OCA\News\Utility\TwitterFetcher;
use \OCA\News\Utility\OPMLExporter;
use \OCA\News\Utility\Updater;
use \OCA\News\Utility\SimplePieFileFactory;
-use \OCA\News\Utility\ArticleEnhancer\Enhancer;
-use \OCA\News\Utility\ArticleEnhancer\XPathArticleEnhancer;
-use OCA\News\Utility\ArticleEnhancer\RegexArticleEnhancer;
+use \OCA\News\Fetcher\Fetcher;
+use \OCA\News\Fetcher\FeedFetcher;
+
+use \OCA\News\ArticleEnhancer\Enhancer;
+use \OCA\News\ArticleEnhancer\XPathArticleEnhancer;
+use \OCA\News\ArticleEnhancer\RegexArticleEnhancer;
use \OCA\News\Middleware\CORSMiddleware;
@@ -259,7 +259,7 @@ class DIContainer extends BaseContainer {
// register simple enhancers from config json file
$xpathEnhancerConfig = file_get_contents(
- __DIR__ . '/../utility/articleenhancer/xpathenhancers.json'
+ __DIR__ . '/../articleenhancer/xpathenhancers.json'
);
foreach(json_decode($xpathEnhancerConfig, true) as $feed => $config) {
@@ -273,7 +273,7 @@ class DIContainer extends BaseContainer {
}
$regexEnhancerConfig = file_get_contents(
- __DIR__ . '/../utility/articleenhancer/regexenhancers.json'
+ __DIR__ . '/../articleenhancer/regexenhancers.json'
);
foreach(json_decode($regexEnhancerConfig, true) as $feed => $config) {
foreach ($config as $matchArticleUrl => $regex) {
@@ -290,7 +290,6 @@ class DIContainer extends BaseContainer {
// register fetchers in order
// the most generic fetcher should be the last one
- $fetcher->registerFetcher($c['TwitterFetcher']); // twitter timeline
$fetcher->registerFetcher($c['FeedFetcher']);
return $fetcher;
@@ -308,10 +307,6 @@ class DIContainer extends BaseContainer {
$c['HTMLPurifier']);
});
- $this['TwitterFetcher'] = $this->share(function($c){
- return new TwitterFetcher($c['FeedFetcher']);
- });
-
$this['StatusFlag'] = $this->share(function($c){
return new StatusFlag();
});
diff --git a/utility/feedfetcher.php b/fetcher/feedfetcher.php
index e36fe3beb..fdc062d6c 100644
--- a/utility/feedfetcher.php
+++ b/fetcher/feedfetcher.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
use \OCA\AppFramework\Core\API;
use \OCA\AppFramework\Utility\FaviconFetcher;
diff --git a/utility/fetcher.php b/fetcher/fetcher.php
index 535e214de..c86db6b64 100644
--- a/utility/fetcher.php
+++ b/fetcher/fetcher.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
class Fetcher {
diff --git a/utility/fetcherexception.php b/fetcher/fetcherexception.php
index b03619d0e..a9082dd30 100644
--- a/utility/fetcherexception.php
+++ b/fetcher/fetcherexception.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
class FetcherException extends \Exception {
diff --git a/utility/ifeedfetcher.php b/fetcher/ifeedfetcher.php
index c37e82f31..5fa7fc678 100644
--- a/utility/ifeedfetcher.php
+++ b/fetcher/ifeedfetcher.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
interface IFeedFetcher {
diff --git a/tests/unit/utility/articleenhancer/EnhancerTest.php b/tests/unit/articleenhancer/EnhancerTest.php
index 769538740..84cbe2a7c 100644
--- a/tests/unit/utility/articleenhancer/EnhancerTest.php
+++ b/tests/unit/articleenhancer/EnhancerTest.php
@@ -23,11 +23,11 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Db\Item;
-require_once(__DIR__ . "/../../../classloader.php");
+require_once(__DIR__ . "/../../classloader.php");
class EnhancerTest extends \OCA\AppFramework\Utility\TestUtility {
@@ -39,7 +39,7 @@ class EnhancerTest extends \OCA\AppFramework\Utility\TestUtility {
protected function setUp(){
$this->enhancer = new Enhancer();
$this->articleEnhancer = $this->getMockBuilder(
- '\OCA\News\Utility\ArticleEnhancer\ArticleEnhancer')
+ '\OCA\News\ArticleEnhancer\ArticleEnhancer')
->disableOriginalConstructor()
->getMock();
$this->enhancer->registerEnhancer('test.com', $this->articleEnhancer);
diff --git a/tests/unit/utility/articleenhancer/RegexArticleEnhancerTest.php b/tests/unit/articleenhancer/RegexArticleEnhancerTest.php
index f775eac91..2d985edf1 100644
--- a/tests/unit/utility/articleenhancer/RegexArticleEnhancerTest.php
+++ b/tests/unit/articleenhancer/RegexArticleEnhancerTest.php
@@ -23,11 +23,11 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Db\Item;
-require_once(__DIR__ . "/../../../classloader.php");
+require_once(__DIR__ . "/../../classloader.php");
class RegexArticleEnhancerTest extends \OCA\AppFramework\Utility\TestUtility {
diff --git a/tests/unit/utility/articleenhancer/XPathArticleEnhancerTest.php b/tests/unit/articleenhancer/XPathArticleEnhancerTest.php
index b9c902147..a0f8db388 100644
--- a/tests/unit/utility/articleenhancer/XPathArticleEnhancerTest.php
+++ b/tests/unit/articleenhancer/XPathArticleEnhancerTest.php
@@ -23,11 +23,11 @@
*
*/
-namespace OCA\News\Utility\ArticleEnhancer;
+namespace OCA\News\ArticleEnhancer;
use \OCA\News\Db\Item;
-require_once(__DIR__ . "/../../../classloader.php");
+require_once(__DIR__ . "/../../classloader.php");
class XPathArticleEnhancerTest extends \OCA\AppFramework\Utility\TestUtility {
diff --git a/tests/unit/businesslayer/FeedBusinessLayerTest.php b/tests/unit/businesslayer/FeedBusinessLayerTest.php
index 550f37dcb..5e379525d 100644
--- a/tests/unit/businesslayer/FeedBusinessLayerTest.php
+++ b/tests/unit/businesslayer/FeedBusinessLayerTest.php
@@ -32,8 +32,8 @@ use \OCA\AppFramework\Db\DoesNotExistException;
use \OCA\News\Db\Feed;
use \OCA\News\Db\Item;
-use \OCA\News\Utility\Fetcher;
-use \OCA\News\Utility\FetcherException;
+use \OCA\News\Fetcher\Fetcher;
+use \OCA\News\Fetcher\FetcherException;
class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility {
@@ -63,13 +63,13 @@ class FeedBusinessLayerTest extends \OCA\AppFramework\Utility\TestUtility {
$this->feedMapper = $this->getMockBuilder('\OCA\News\Db\FeedMapper')
->disableOriginalConstructor()
->getMock();
- $this->fetcher = $this->getMockBuilder('\OCA\News\Utility\Fetcher')
+ $this->fetcher = $this->getMockBuilder('\OCA\News\Fetcher\Fetcher')
->disableOriginalConstructor()
->getMock();
$this->itemMapper = $this->getMockBuilder('\OCA\News\Db\ItemMapper')
->disableOriginalConstructor()
->getMock();
- $this->enhancer = $this->getMockBuilder('\OCA\News\Utility\ArticleEnhancer\Enhancer')
+ $this->enhancer = $this->getMockBuilder('\OCA\News\ArticleEnhancer\Enhancer')
->disableOriginalConstructor()
->getMock();
$this->feedBusinessLayer = new FeedBusinessLayer($this->feedMapper,
diff --git a/tests/unit/controller/TwitterFetcherTest.php b/tests/unit/controller/TwitterFetcherTest.php
deleted file mode 100644
index 9bda485bd..000000000
--- a/tests/unit/controller/TwitterFetcherTest.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Cosentino
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-namespace OCA\News\Utility;
-
-require_once(__DIR__ . "/../../classloader.php");
-
-
-class TwitterFetcherTest extends \OCA\AppFramework\Utility\TestUtility {
-
- private $fetcher;
- private $twitter;
-
- protected function setUp(){
- $this->fetcher = $this->getMockBuilder('\OCA\News\Utility\FeedFetcher')
- ->disableOriginalConstructor()
- ->getMock();
- $this->twitter = new TwitterFetcher($this->fetcher);
- }
-
-
- public function testCanHandle(){
- $urls = array(
- 'https://twitter.com/GeorgeTakei',
- 'https://www.twitter.com/GeorgeTakei',
- 'http://twitter.com/GeorgeTakei',
- 'http://www.twitter.com/GeorgeTakei',
- 'www.twitter.com/GeorgeTakei',
- 'twitter.com/GeorgeTakei'
- );
- foreach($urls as $url){
- $this->assertTrue($this->twitter->canHandle($url), $url);
- }
- }
-
-
- public function testCanHandleDoesNotUseApiUrls(){
- $url = 'https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=GeorgeTakei';
- $this->assertFalse($this->twitter->canHandle($url));
- }
-
-
- public function testFetch(){
- $inUrl = 'https://www.twitter.com/GeorgeTakei';
- $outUrl = 'https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=GeorgeTakei';
- $out = 'hi';
- $this->fetcher->expects($this->once())
- ->method('fetch')
- ->with($this->equalTo($outUrl))
- ->will($this->returnValue($out));
-
- $return = $this->twitter->fetch($inUrl);
- $this->assertEquals($out, $return);
- }
-} \ No newline at end of file
diff --git a/tests/unit/utility/FeedFetcherTest.php b/tests/unit/fetcher/FeedFetcherTest.php
index 3865bda9f..466bcc446 100644
--- a/tests/unit/utility/FeedFetcherTest.php
+++ b/tests/unit/fetcher/FeedFetcherTest.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
use \OCA\News\Db\Item;
use \OCA\News\Db\Feed;
@@ -143,7 +143,7 @@ class FeedFetcherTest extends \OCA\AppFramework\Utility\TestUtility {
$this->core->expects($this->once())
->method('set_cache_duration')
->with($this->equalTo($this->cacheDuration));
- $this->setExpectedException('\OCA\News\Utility\FetcherException');
+ $this->setExpectedException('\OCA\News\Fetcher\FetcherException');
$this->fetcher->fetch($this->url);
}
@@ -155,7 +155,7 @@ class FeedFetcherTest extends \OCA\AppFramework\Utility\TestUtility {
$this->core->expects($this->once())
->method('get_items')
->will($this->throwException(new \Exception('oh noes!')));
- $this->setExpectedException('\OCA\News\Utility\FetcherException');
+ $this->setExpectedException('\OCA\News\Fetcher\FetcherException');
$this->fetcher->fetch($this->url);
}
diff --git a/tests/unit/utility/FetcherTest.php b/tests/unit/fetcher/FetcherTest.php
index 8a57c9193..41f33129c 100644
--- a/tests/unit/utility/FetcherTest.php
+++ b/tests/unit/fetcher/FetcherTest.php
@@ -23,7 +23,7 @@
*
*/
-namespace OCA\News\Utility;
+namespace OCA\News\Fetcher;
require_once(__DIR__ . "/../../classloader.php");
@@ -39,7 +39,7 @@ class FetcherTest extends \OCA\AppFramework\Utility\TestUtility {
public function testFetch(){
$url = 'hi';
- $mockFetcher = $this->getMockBuilder('\OCA\News\Utility\IFeedFetcher')
+ $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher')
->disableOriginalConstructor()
->getMock();
$mockFetcher->expects($this->once())
@@ -54,14 +54,14 @@ class FetcherTest extends \OCA\AppFramework\Utility\TestUtility {
public function testMultipleFetchers(){
$url = 'hi';
- $mockFetcher = $this->getMockBuilder('\OCA\News\Utility\IFeedFetcher')
+ $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher')
->disableOriginalConstructor()
->getMock();
$mockFetcher->expects($this->once())
->method('canHandle')
->with($this->equalTo($url))
->will($this->returnValue(false));
- $mockFetcher2 = $this->getMockBuilder('\OCA\News\Utility\IFeedFetcher')
+ $mockFetcher2 = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher')
->disableOriginalConstructor()
->getMock();
$mockFetcher2->expects($this->once())
@@ -79,7 +79,7 @@ class FetcherTest extends \OCA\AppFramework\Utility\TestUtility {
public function testMultipleFetchersOnlyOneShouldHandle(){
$url = 'hi';
$return = 'zeas';
- $mockFetcher = $this->getMockBuilder('\OCA\News\Utility\IFeedFetcher')
+ $mockFetcher = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher')
->disableOriginalConstructor()
->getMock();
$mockFetcher->expects($this->once())
@@ -90,7 +90,7 @@ class FetcherTest extends \OCA\AppFramework\Utility\TestUtility {
->method('fetch')
->with($this->equalTo($url))
->will($this->returnValue($return));
- $mockFetcher2 = $this->getMockBuilder('\OCA\News\Utility\IFeedFetcher')
+ $mockFetcher2 = $this->getMockBuilder('\OCA\News\Fetcher\IFeedFetcher')
->disableOriginalConstructor()
->getMock();
$mockFetcher2->expects($this->never())
diff --git a/utility/twitterfetcher.php b/utility/twitterfetcher.php
deleted file mode 100644
index 22ff9ffde..000000000
--- a/utility/twitterfetcher.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-/**
-* ownCloud - News
-*
-* @author Alessandro Cosentino
-* @author Bernhard Posselt
-* @copyright 2012 Alessandro Cosentino cosenal@gmail.com
-* @copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*
-*/
-
-namespace OCA\News\Utility;
-
-
-class TwitterFetcher implements IFeedFetcher {
-
-
- private $fetcher;
- private $regex;
-
-
- public function __construct(FeedFetcher $fetcher){
- $this->fetcher = $fetcher;
-
- // matches the following urls and extracts the username
- // https://twitter.com/GeorgeTakei
- // https://www.twitter.com/GeorgeTakei
- // http://twitter.com/GeorgeTakei
- // http://www.twitter.com/GeorgeTakei
- // www.twitter.com/GeorgeTakei
- // twitter.com/GeorgeTakei
- $this->regex = '/^(?:https?:\/\/)?(?:www\.)?' .
- 'twitter.com\/([\pL\pN\pM]+)$/u';
- }
-
-
- public function canHandle($url){
- return preg_match($this->regex, $url) == true;
- }
-
-
- public function fetch($url, $getFavicon=true){
- preg_match($this->regex, $url, $match);
-
- // FIXME: implement twitter api to be future proof
- // deprecated Twitter RSS API
- $rssUrl = 'https://api.twitter.com/1/statuses/user_timeline.' .
- 'rss?screen_name=' . $match[1];
-
- // use transformed url to fetch the rss feeds with the default fetcher
- return $this->fetcher->fetch($rssUrl, $getFavicon);
- }
-
-
-} \ No newline at end of file