public function testFindLinkXml() { $xml = '<feed xmlns="http://www.w3.org/2005/Atom"> <title>Blah blah blah</title> <link href="http://example.com/feed" rel="self" type="application/atom+xml"/> <link href="http://example.com" rel="alternate" type="text/html"/> <link rel="hub" href="http://example.com/hub" /> <updated>2015-02-03T13:08:02+01:00</updated> <id>http://blog.superfeedr.com/</id></feed>'; $this->assertSame('http://example.com/hub', HttpHelpers::findRelationFromXml($xml, 'hub')); $xml = '<?xml version="1.0"?> <rss xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <atom:link rel="hub" href="http://example.com/hub"/> </channel></rss>'; $this->assertSame('http://example.com/hub', HttpHelpers::findRelationFromXml($xml, 'hub')); $this->assertSame(FALSE, HttpHelpers::findRelationFromXml('', 'hub')); $this->assertSame(FALSE, HttpHelpers::findRelationFromXml(' ', 'hub')); }
/** * Finds a hub from a fetcher result. * * @param \Drupal\feeds\Result\FetcherResultInterface $fetcher_result * The fetcher result. * * @return string|null * The hub URL or null if one wasn't found. */ protected function findRelation(FetcherResultInterface $fetcher_result, $relation) { if ($fetcher_result instanceof HttpFetcherResultInterface) { if ($rel = HttpHelpers::findLinkHeader($fetcher_result->getHeaders(), $relation)) { return $rel; } } return HttpHelpers::findRelationFromXml($fetcher_result->getRaw(), $relation); }