OpmlParserTest.php in Feeds 8.3
File
tests/src/Unit/Feeds/Parser/OpmlParserTest.php
View source
<?php
namespace Drupal\Tests\feeds\Unit\Feeds\Parser;
use Drupal\feeds\Exception\EmptyFeedException;
use Drupal\feeds\Feeds\Parser\OpmlParser;
use Drupal\feeds\Result\RawFetcherResult;
use Drupal\Tests\feeds\Unit\FeedsUnitTestCase;
class OpmlParserTest extends FeedsUnitTestCase {
protected $parser;
protected $feedType;
protected $feed;
protected $state;
public function setUp() {
parent::setUp();
$this->feedType = $this
->createMock('Drupal\\feeds\\FeedTypeInterface');
$configuration = [
'feed_type' => $this->feedType,
];
$this->parser = new OpmlParser($configuration, 'sitemap', []);
$this->parser
->setStringTranslation($this
->getStringTranslationStub());
$this->feed = $this
->createMock('Drupal\\feeds\\FeedInterface');
$this->feed
->expects($this
->any())
->method('getType')
->will($this
->returnValue($this->feedType));
$this->state = $this
->createMock('Drupal\\feeds\\StateInterface');
}
public function testParse() {
$file = dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . '/tests/resources/opml-example.xml';
$fetcher_result = new RawFetcherResult(file_get_contents($file), $this
->getMockFileSystem());
$result = $this->parser
->parse($this->feed, $fetcher_result, $this->state);
$this
->assertSame(count($result), 13);
$this
->assertSame($result[0]
->get('title'), 'CNET News.com');
$this
->assertSame($result[3]
->get('xmlurl'), 'http://rss.news.yahoo.com/rss/tech');
$this
->assertSame($result[7]
->get('htmlurl'), 'http://www.fool.com');
}
public function testEmptyFeed() {
$this
->expectException(EmptyFeedException::class);
$this->parser
->parse($this->feed, new RawFetcherResult('', $this
->getMockFileSystem()), $this->state);
}
public function testGetMappingSources() {
$this
->assertSame(count($this->parser
->getMappingSources()), 5);
}
}