summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/tests/Parser/ParserTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fguillot/picofeed/tests/Parser/ParserTest.php')
-rw-r--r--vendor/fguillot/picofeed/tests/Parser/ParserTest.php49
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());
}
}