summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/tests
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-04-30 18:30:11 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2015-04-30 18:30:11 +0200
commiteb28c3b137c8a0d61377087c9a04b820151b0b7c (patch)
treec1ebf149f43fa653a4ef1c3f33df04557094e834 /vendor/fguillot/picofeed/tests
parent2e54780c1496bfa39cd035b9ac40ed851d2198f1 (diff)
update deps
Diffstat (limited to 'vendor/fguillot/picofeed/tests')
-rw-r--r--vendor/fguillot/picofeed/tests/Client/GrabberTest.php152
-rw-r--r--vendor/fguillot/picofeed/tests/Filter/HtmlFilterTest.php22
-rw-r--r--vendor/fguillot/picofeed/tests/Reader/ReaderTest.php2
-rw-r--r--vendor/fguillot/picofeed/tests/Scraper/RuleLoaderTest.php86
-rw-r--r--vendor/fguillot/picofeed/tests/Scraper/ScraperTest.php89
5 files changed, 198 insertions, 153 deletions
diff --git a/vendor/fguillot/picofeed/tests/Client/GrabberTest.php b/vendor/fguillot/picofeed/tests/Client/GrabberTest.php
deleted file mode 100644
index 9b057fc1f..000000000
--- a/vendor/fguillot/picofeed/tests/Client/GrabberTest.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-namespace PicoFeed\Client;
-
-use PHPUnit_Framework_TestCase;
-use PicoFeed\Reader\Reader;
-use PicoFeed\Config\Config;
-
-class GrabberTest extends PHPUnit_Framework_TestCase
-{
- public function testGetRulesFolders()
- {
- // No custom path
- $grabber = new Grabber('');
- $dirs = $grabber->getRulesFolders();
- $this->assertNotEmpty($dirs);
- $this->assertCount(1, $dirs);
- $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
-
- // Custom path
- $config = new Config;
- $config->setGrabberRulesFolder('/foobar/rules');
-
- $grabber = new Grabber('');
- $grabber->setConfig($config);
-
- $dirs = $grabber->getRulesFolders();
-
- $this->assertNotEmpty($dirs);
- $this->assertCount(2, $dirs);
- $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
- $this->assertEquals('/foobar/rules', $dirs[1]);
-
- // No custom path with empty config object
- $grabber = new Grabber('');
- $grabber->setConfig(new Config);
-
- $dirs = $grabber->getRulesFolders();
-
- $this->assertNotEmpty($dirs);
- $this->assertCount(1, $dirs);
- $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
- }
-
- public function testLoadRuleFile()
- {
- $grabber = new Grabber('');
- $dirs = $grabber->getRulesFolders();
-
- $this->assertEmpty($grabber->loadRuleFile($dirs[0], array('test')));
- $this->assertNotEmpty($grabber->loadRuleFile($dirs[0], array('test', 'xkcd.com')));
- }
-
- public function testGetRulesFileList()
- {
- $grabber = new Grabber('');
- $this->assertEquals(
- array('www.google.ca', 'google.ca', '.google.ca', 'www'),
- $grabber->getRulesFileList('www.google.ca')
- );
-
- $grabber = new Grabber('');
- $this->assertEquals(
- array('google.ca', '.google.ca', 'google'),
- $grabber->getRulesFileList('google.ca')
- );
-
- $grabber = new Grabber('');
- $this->assertEquals(
- array('a.b.c.d', 'b.c.d', '.b.c.d', 'a'),
- $grabber->getRulesFileList('a.b.c.d')
- );
-
- $grabber = new Grabber('');
- $this->assertEquals(
- array('localhost'),
- $grabber->getRulesFileList('localhost')
- );
- }
-
- public function testGetRules()
- {
- $grabber = new Grabber('http://www.egscomics.com/index.php?id=1690');
- $this->assertNotEmpty($grabber->getRules());
-
- $grabber = new Grabber('http://localhost/foobar');
- $this->assertEmpty($grabber->getRules());
- }
-
- /**
- * @group online
- */
- public function testGrabContentWithCandidates()
- {
- $grabber = new Grabber('http://theonion.com.feedsportal.com/c/34529/f/632231/s/309a7fe4/sc/20/l/0L0Stheonion0N0Carticles0Cobama0Ethrows0Eup0Eright0Ethere0Eduring0Esyria0Emeeting0H336850C/story01.htm');
- $grabber->download();
- $this->assertTrue($grabber->parse());
-
- $grabber = new Grabber('http://www.lemonde.fr/proche-orient/article/2013/08/30/la-france-nouvelle-plus-ancienne-alliee-des-etats-unis_3469218_3218.html');
- $grabber->download();
- $this->assertTrue($grabber->parse());
-
- $grabber = new Grabber('http://www.rue89.com/2013/08/30/faisait-boris-boillon-ex-sarko-boy-350-000-euros-gare-nord-245315');
- $grabber->download();
- $this->assertTrue($grabber->parse());
-
- $grabber = new Grabber('http://www.inc.com/suzanne-lucas/why-employee-turnover-is-so-costly.html');
- $grabber->download();
- $this->assertTrue($grabber->parse());
-
- $grabber = new Grabber('http://arstechnica.com/information-technology/2013/08/sysadmin-security-fail-nsa-finds-snowden-hijacked-officials-logins/');
- $grabber->download();
- $this->assertTrue($grabber->parse());
- }
-
- /**
- * @group online
- */
- public function testGetRules_afterRedirection()
- {
- $grabber = new Grabber('http://rss.feedsportal.com/c/629/f/502199/s/422f8c8a/sc/44/l/0L0S0A1net0N0Ceditorial0C640A3130Cces0E20A150Eimprimer0Eune0Epizza0Eet0Edes0Ebiscuits0Evideo0C0T0Dxtor0FRSS0E16/story01.htm');
- $grabber->download();
- $this->assertTrue(is_array($grabber->getRules()));
- }
-
- /**
- * @group online
- */
- public function testGrabContent()
- {
- $grabber = new Grabber('http://www.egscomics.com/index.php?id=1690');
- $grabber->download();
- $this->assertTrue($grabber->parse());
-
- $this->assertEquals('<img title="2013-08-22" src="comics/../comics/1377151029-2013-08-22.png" id="comic" border="0" />', $grabber->getContent());
- }
-
- /**
- * @group online
- */
- public function testRssGrabContent()
- {
- $reader = new Reader;
- $client = $reader->download('http://www.egscomics.com/rss.php');
- $parser = $reader->getParser($client->getUrl(), $client->getContent(), $client->getEncoding());
- $parser->enableContentGrabber();
- $feed = $parser->execute();
-
- $this->assertTrue(is_array($feed->items));
- $this->assertTrue(strpos($feed->items[0]->content, '<img') >= 0);
- }
-}
diff --git a/vendor/fguillot/picofeed/tests/Filter/HtmlFilterTest.php b/vendor/fguillot/picofeed/tests/Filter/HtmlFilterTest.php
index 03aeb33d5..9149e59bc 100644
--- a/vendor/fguillot/picofeed/tests/Filter/HtmlFilterTest.php
+++ b/vendor/fguillot/picofeed/tests/Filter/HtmlFilterTest.php
@@ -23,6 +23,22 @@ class HtmlFilterTest extends PHPUnit_Framework_TestCase
$this->assertEquals('<p>boo<br/><strong>foo</strong>.</p>', $filter->execute());
}
+ public function testFilterRules()
+ {
+ $html = '<p><a href="http://www.twogag.com/archives/3455" title="559 &#8211; The Cookie">' .
+ '<img src="http://www.twogag.com/comics-rss/2015-04-17-TGAG_559_The_Cookie.jpg" alt="559 &#8211; The Cookie" class="comicthumbnail" title="559 &#8211; The Cookie" /></a></p>'.
+ 'I always throw up in hindsight if I find out something I ate was vegan. Twogag&#8217;s super free but if you want to support the comic look no further than the Twogag patreon!';
+
+ $filter = new Html($html, 'http://www.twogag.com/');
+
+ $expected = '<p><a href="http://www.twogag.com/archives/3455" rel="noreferrer" target="_blank">' .
+ '<img src="http://www.twogag.com/comics/2015-04-17-TGAG_559_The_Cookie.jpg" alt="559 – The Cookie" title="559 – The Cookie"/></a></p>'.
+ 'I always throw up in hindsight if I find out something I ate was vegan. Twogag’s super free but if you want to support the comic look no further than the Twogag patreon!';
+
+ $this->assertEquals($expected, $filter->execute());
+ }
+
+
public function testIframe()
{
$data = '<iframe src="http://www.kickstarter.com/projects/lefnire/habitrpg-mobile/widget/video.html" height="480" width="640" frameborder="0"></iframe>';
@@ -148,4 +164,10 @@ x-amz-id-2: DDjqfqz2ZJufzqRAcj1mh+9XvSogrPohKHwXlo8IlkzH67G6w4wnjn9HYgbs4uI0
$f = new Html('<table><tr></tr></table>', 'http://blabla');
$this->assertEquals('', $f->execute());
}
+
+ public function testRemoveMultipleTags()
+ {
+ $f = new Html('<br/><br/><p>toto</p><br/><br/><br/><p>momo</p><br/><br/><br/><br/>', 'http://blabla');
+ $this->assertEquals('<br/><p>toto</p><br/><p>momo</p><br/>', $f->execute());
+ }
}
diff --git a/vendor/fguillot/picofeed/tests/Reader/ReaderTest.php b/vendor/fguillot/picofeed/tests/Reader/ReaderTest.php
index 821c6b9aa..55abe53bb 100644
--- a/vendor/fguillot/picofeed/tests/Reader/ReaderTest.php
+++ b/vendor/fguillot/picofeed/tests/Reader/ReaderTest.php
@@ -1,9 +1,9 @@
<?php
+
namespace PicoFeed\Reader;
use PHPUnit_Framework_TestCase;
-
class ReaderTest extends PHPUnit_Framework_TestCase
{
public function testPrependScheme()
diff --git a/vendor/fguillot/picofeed/tests/Scraper/RuleLoaderTest.php b/vendor/fguillot/picofeed/tests/Scraper/RuleLoaderTest.php
new file mode 100644
index 000000000..20f2bb2e6
--- /dev/null
+++ b/vendor/fguillot/picofeed/tests/Scraper/RuleLoaderTest.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace PicoFeed\Scraper;
+
+use PHPUnit_Framework_TestCase;
+use PicoFeed\Config\Config;
+
+class RuleLoaderTest extends PHPUnit_Framework_TestCase
+{
+ public function testGetRulesFolders()
+ {
+ // No custom path
+ $loader = new RuleLoader(new Config);
+ $dirs = $loader->getRulesFolders();
+ $this->assertNotEmpty($dirs);
+ $this->assertCount(1, $dirs);
+ $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
+
+ // Custom path
+ $config = new Config;
+ $config->setGrabberRulesFolder('/foobar/rules');
+
+ $loader = new RuleLoader($config);
+
+ $dirs = $loader->getRulesFolders();
+
+ $this->assertNotEmpty($dirs);
+ $this->assertCount(2, $dirs);
+ $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
+ $this->assertEquals('/foobar/rules', $dirs[1]);
+
+ // No custom path with empty config object
+ $loader = new RuleLoader(new Config);
+
+ $dirs = $loader->getRulesFolders();
+
+ $this->assertNotEmpty($dirs);
+ $this->assertCount(1, $dirs);
+ $this->assertTrue(strpos($dirs[0], '/../Rules') !== false);
+ }
+
+ public function testLoadRuleFile()
+ {
+ $loader = new RuleLoader(new Config);
+ $dirs = $loader->getRulesFolders();
+
+ $this->assertEmpty($loader->loadRuleFile($dirs[0], array('test')));
+ $this->assertNotEmpty($loader->loadRuleFile($dirs[0], array('test', 'xkcd.com')));
+ }
+
+ public function testGetRulesFileList()
+ {
+ $loader = new RuleLoader(new Config);
+ $this->assertEquals(
+ array('www.google.ca', 'google.ca', '.google.ca', 'www'),
+ $loader->getRulesFileList('www.google.ca')
+ );
+
+ $loader = new RuleLoader(new Config);
+ $this->assertEquals(
+ array('google.ca', '.google.ca', 'google'),
+ $loader->getRulesFileList('google.ca')
+ );
+
+ $loader = new RuleLoader(new Config);
+ $this->assertEquals(
+ array('a.b.c.d', 'b.c.d', '.b.c.d', 'a'),
+ $loader->getRulesFileList('a.b.c.d')
+ );
+
+ $loader = new RuleLoader(new Config);
+ $this->assertEquals(
+ array('localhost'),
+ $loader->getRulesFileList('localhost')
+ );
+ }
+
+ public function testGetRules()
+ {
+ $loader = new RuleLoader(new Config);
+ $this->assertNotEmpty($loader->getRules('http://www.egscomics.com/index.php?id=1690'));
+
+ $loader = new RuleLoader(new Config);
+ $this->assertEmpty($loader->getRules('http://localhost/foobar'));
+ }
+}
diff --git a/vendor/fguillot/picofeed/tests/Scraper/ScraperTest.php b/vendor/fguillot/picofeed/tests/Scraper/ScraperTest.php
new file mode 100644
index 000000000..9e4df5e3f
--- /dev/null
+++ b/vendor/fguillot/picofeed/tests/Scraper/ScraperTest.php
@@ -0,0 +1,89 @@
+<?php
+
+namespace PicoFeed\Scraper;
+
+use PHPUnit_Framework_TestCase;
+use PicoFeed\Reader\Reader;
+use PicoFeed\Config\Config;
+
+class ScraperTest extends PHPUnit_Framework_TestCase
+{
+ /**
+ * @group online
+ */
+ public function testUrlScraper()
+ {
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://theonion.com.feedsportal.com/c/34529/f/632231/s/309a7fe4/sc/20/l/0L0Stheonion0N0Carticles0Cobama0Ethrows0Eup0Eright0Ethere0Eduring0Esyria0Emeeting0H336850C/story01.htm');
+ $grabber->execute();
+ $this->assertTrue($grabber->hasRelevantContent());
+
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://www.lemonde.fr/proche-orient/article/2013/08/30/la-france-nouvelle-plus-ancienne-alliee-des-etats-unis_3469218_3218.html');
+ $grabber->execute();
+ $this->assertTrue($grabber->hasRelevantContent());
+
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://www.inc.com/suzanne-lucas/why-employee-turnover-is-so-costly.html');
+ $grabber->execute();
+ $this->assertTrue($grabber->hasRelevantContent());
+
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://arstechnica.com/information-technology/2013/08/sysadmin-security-fail-nsa-finds-snowden-hijacked-officials-logins/');
+ $grabber->execute();
+ $this->assertTrue($grabber->hasRelevantContent());
+
+ $grabber = new Scraper(new Config);
+ $grabber->disableCandidateParser();
+ $grabber->setUrl('http://linuxfr.org/news/grammalecte-correcteur-grammatical');
+ $grabber->execute();
+ $this->assertFalse($grabber->hasRelevantContent());
+ }
+
+ /**
+ * @group online
+ */
+ public function testRuleParser()
+ {
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://www.egscomics.com/index.php?id=1690');
+ $grabber->execute();
+ $this->assertTrue($grabber->hasRelevantContent());
+
+ $this->assertEquals('<img title="2013-08-22" src="comics/../comics/1377151029-2013-08-22.png" id="comic" border="0" />', $grabber->getRelevantContent());
+ }
+
+ /**
+ * @group online
+ */
+ public function testGrabContentRegex()
+ {
+ $grabber = new Scraper(new Config);
+ $grabber->setUrl('http://penny-arcade.com/comic/2015/04/13/101-part-one');
+ $grabber->execute();
+
+ $this->assertTrue($grabber->hasRelevantContent());
+ $this->assertEquals('<img src="http://art.penny-arcade.com/photos/i-tBMHkzG/0/1050x10000/i-tBMHkzG-1050x10000.jpg" alt="101, Part One"/>', $grabber->getRelevantContent());
+
+ $grabber->setUrl('http://penny-arcade.com/news/post/2015/04/15/101-part-two');
+ $grabber->execute();
+
+ $this->assertTrue($grabber->hasRelevantContent());
+ $this->assertContains('101, Part Two', $grabber->getRelevantContent());
+ }
+
+ /**
+ * @group online
+ */
+ public function testRssGrabContent()
+ {
+ $reader = new Reader;
+ $client = $reader->download('http://www.egscomics.com/rss.php');
+ $parser = $reader->getParser($client->getUrl(), $client->getContent(), $client->getEncoding());
+ $parser->enableContentGrabber();
+ $feed = $parser->execute();
+
+ $this->assertTrue(is_array($feed->items));
+ $this->assertTrue(strpos($feed->items[0]->content, '<img') >= 0);
+ }
+}