diff options
Diffstat (limited to 'vendor/fguillot/picofeed/tests')
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 – The Cookie">' . + '<img src="http://www.twogag.com/comics-rss/2015-04-17-TGAG_559_The_Cookie.jpg" alt="559 – The Cookie" class="comicthumbnail" 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!'; + + $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); + } +} |