diff options
Diffstat (limited to '3rdparty/fguillot/picofeed/tests/Parser/ParserTest.php')
-rw-r--r-- | 3rdparty/fguillot/picofeed/tests/Parser/ParserTest.php | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/3rdparty/fguillot/picofeed/tests/Parser/ParserTest.php b/3rdparty/fguillot/picofeed/tests/Parser/ParserTest.php new file mode 100644 index 000000000..3be864507 --- /dev/null +++ b/3rdparty/fguillot/picofeed/tests/Parser/ParserTest.php @@ -0,0 +1,75 @@ +<?php +namespace PicoFeed\Parser; + +use PHPUnit_Framework_TestCase; + + +class ParserTest extends PHPUnit_Framework_TestCase +{ + public function testParseDate() + { + $parser = new Rss20(''); + + date_default_timezone_set('UTC'); + + $this->assertEquals(1359066183, $parser->parseDate('Thu, 24 Jan 2013 22:23:03 +0000')); + $this->assertEquals(1362992761, $parser->parseDate('2013-03-11T09:06:01+00:00')); + $this->assertEquals(1363752990, $parser->parseDate('2013-03-20T04:16:30+00:00')); + $this->assertEquals(1359066183, $parser->parseDate('Thu, 24 Jan 2013 22:23:03 +0000')); + $this->assertEquals(1380929699, $parser->parseDate('Sat, 04 Oct 2013 02:34:59 +0300')); + $this->assertEquals(1054633161, $parser->parseDate('Tue, 03 Jun 2003 09:39:21 GMT')); + $this->assertEquals(1071340202, $parser->parseDate('2003-12-13T18:30:02Z')); + $this->assertEquals(1364234797, $parser->parseDate('Mon, 25 Mar 2013 19:06:37 +0100')); + $this->assertEquals(1360054941, $parser->parseDate('2013-02-05T09:02:21.880-08:00')); + $this->assertEquals(1286834400, $parser->parseDate('Tue, 12 Oct 2010 00:00:00 IST')); + $this->assertEquals('2012-05-15', date('Y-m-d', $parser->parseDate('Tue, 15 May 2012 24:05:00 UTC'))); + $this->assertEquals('2013-09-12', date('Y-m-d', $parser->parseDate('Thu, 12 Sep 2013 7:00:00 UTC'))); + $this->assertEquals('2012-01-31', date('Y-m-d', $parser->parseDate('01.31.2012'))); + $this->assertEquals('2012-01-31', date('Y-m-d', $parser->parseDate('01/31/2012'))); + $this->assertEquals('2012-01-31', date('Y-m-d', $parser->parseDate('2012-01-31'))); + $this->assertEquals('2010-02-24', date('Y-m-d', $parser->parseDate('2010-02-245T15:27:52Z'))); + $this->assertEquals('2010-08-20', date('Y-m-d', $parser->parseDate('2010-08-20Thh:08:ssZ'))); + $this->assertEquals(1288648057, $parser->parseDate('Mon, 01 Nov 2010 21:47:37 UT')); + $this->assertEquals(1346069615, $parser->parseDate('Mon Aug 27 2012 12:13:35 GMT-0700 (PDT)')); + $this->assertEquals(time(), $parser->parseDate('Tue, 3 Febuary 2010 00:00:00 IST')); + $this->assertEquals(time(), $parser->parseDate('############# EST')); + $this->assertEquals(time(), $parser->parseDate('Wed, 30 Nov -0001 00:00:00 +0000')); + $this->assertEquals(time(), $parser->parseDate('čet, 24 maj 2012 00:00:00')); + $this->assertEquals(time(), $parser->parseDate('-0-0T::Z')); + $this->assertEquals(time(), $parser->parseDate('Wed, 18 2012')); + $this->assertEquals(time(), $parser->parseDate("'2009-09-30 CDT16:09:54")); + $this->assertEquals(time(), $parser->parseDate('ary 8 Jan 2013 00:00:00 GMT')); + $this->assertEquals(time(), $parser->parseDate('Sat, 11 00:00:01 GMT')); + $this->assertEquals(1370631743, $parser->parseDate('Fri Jun 07 2013 19:02:23 GMT+0000 (UTC)')); + $this->assertEquals(1377412225, $parser->parseDate('25/08/2013 06:30:25 م')); + $this->assertEquals(time(), $parser->parseDate('+0400')); + } + + public function testChangeHashAlgo() + { + $parser = new Rss20(''); + $this->assertEquals('fb8e20fc2e4c3f248c60c39bd652f3c1347298bb977b8b4d5903b85055620603', $parser->generateId('a', 'b')); + + $parser->setHashAlgo('sha1'); + $this->assertEquals('da23614e02469a0d7c7bd1bdab5c9c474b1904dc', $parser->generateId('a', 'b')); + } + + public function testLangRTL() + { + $this->assertFalse(Parser::isLanguageRTL('fr-FR')); + $this->assertTrue(Parser::isLanguageRTL('ur')); + $this->assertTrue(Parser::isLanguageRTL('syr-**')); + $this->assertFalse(Parser::isLanguageRTL('ru')); + } + + public function testNamespaceValue() + { + $xml = XmlParser::getSimpleXml(file_get_contents('tests/fixtures/rue89.xml')); + $this->assertNotFalse($xml); + $namespaces = $xml->getNamespaces(true); + + $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')); + } +} |