diff options
Diffstat (limited to 'vendor/fguillot/picofeed/tests/Parser/ParserTest.php')
-rw-r--r-- | vendor/fguillot/picofeed/tests/Parser/ParserTest.php | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/vendor/fguillot/picofeed/tests/Parser/ParserTest.php b/vendor/fguillot/picofeed/tests/Parser/ParserTest.php index 41ee04b6d..7a2f161ab 100644 --- a/vendor/fguillot/picofeed/tests/Parser/ParserTest.php +++ b/vendor/fguillot/picofeed/tests/Parser/ParserTest.php @@ -23,14 +23,49 @@ class ParserTest extends PHPUnit_Framework_TestCase $this->assertFalse(Parser::isLanguageRTL('ru')); } - public function testNamespaceValue() + public function testFeedsWithInvalidCharacters() { - $xml = XmlParser::getSimpleXml(file_get_contents('tests/fixtures/rue89.xml')); - $this->assertNotFalse($xml); - $namespaces = $xml->getNamespaces(true); + $parser = new Rss20(file_get_contents('tests/fixtures/lincoln_loop.xml')); + $feed = $parser->execute(); + $this->assertNotEmpty($feed->items); - $parser = new Rss20(''); - $this->assertEquals('Blandine Grosjean', XmlParser::getNamespaceValue($xml->channel->item[0], $namespaces, 'creator')); - $this->assertEquals('Pierre-Carl Langlais', XmlParser::getNamespaceValue($xml->channel->item[1], $namespaces, 'creator')); + $parser = new Rss20(file_get_contents('tests/fixtures/next_inpact_full.xml')); + $feed = $parser->execute(); + $this->assertNotEmpty($feed->items); + } + + public function testFeedEncodingsAreSupported() + { + // windows-1251 + $parser = new Rss20(file_get_contents('tests/fixtures/ibash.ru.xml')); + $feed = $parser->execute(); + $this->assertEquals('<p>Хабр, обсуждение фейлов на работе: reaferon: Интернет-магазин с оборотом более 1 млн. в месяц. При округлении цены до двух знаков после запятой: $price = round($price,2); была допущена досадная опечатка $price = rand($price,2);</p>', $feed->items[0]->getContent()); + + // CP1251 + $parser = new Rss20(file_get_contents('tests/fixtures/xakep.ru.xml')); + $feed = $parser->execute(); + $this->assertEquals('Bug Bounty — другая сторона медали', $feed->items[23]->title); + $this->assertEquals('<p>Бывший директор АНБ, генерал Майкл Хэйден снова показал себя во всей красе.</p>', $feed->items[0]->getContent()); + } + + public function testXMLTagStrippingIsUsed() + { + $parser = new Rss20(file_get_contents('tests/fixtures/jeux-linux.fr.xml')); + $feed = $parser->execute(); + $this->assertNotEmpty($feed->items); + } + + public function testHTTPEncodingFallbackIsUsed() + { + $parser = new Rss20(file_get_contents('tests/fixtures/cercle.psy.xml'), 'iso-8859-1'); + $feed = $parser->execute(); + $this->assertNotEmpty($feed->items); + } + + public function testFeedURLFallbackIsUsed() + { + $parser = new Atom(file_get_contents('tests/fixtures/atom_empty_feed.xml'), '', 'https://feeds.wikipedia.org/category/Russian-language_literature.xml'); + $feed = $parser->execute(); + $this->assertEquals('https://feeds.wikipedia.org/category/Russian-language_literature.xml', $feed->getFeedUrl()); } } |