public function ProviderRepositoryTest::testCorruptProviderIgnored in Drupal 9
Tests a successful fetch but with a single corrupt item.
File
- core/
modules/ media/ tests/ src/ Unit/ ProviderRepositoryTest.php, line 206
Class
- ProviderRepositoryTest
- @coversDefaultClass \Drupal\media\OEmbed\ProviderRepository
Namespace
Drupal\Tests\media\UnitCode
public function testCorruptProviderIgnored() : void {
$body = <<<END
[
{
"provider_name": "YouTube",
"provider_url": "https:\\/\\/www.youtube.com\\/",
"endpoints": [
{
"schemes": [
"https:\\/\\/*.youtube.com\\/watch*",
"https:\\/\\/*.youtube.com\\/v\\/*"
],
"url": "https:\\/\\/www.youtube.com\\/oembed",
"discovery": true
}
]
},
{
"provider_name": "Uncle Rico's football videos",
"provider_url": "not a real url",
"endpoints": []
}
]
END;
$response = new Response(200, [], $body);
$this->responses
->append($response);
// The corrupt provider should cause a warning to be logged.
$this->logger
->log(RfcLogLevel::WARNING, "Provider Uncle Rico's football videos does not define a valid external URL.", Argument::type('array'))
->shouldBeCalled();
$youtube = $this->repository
->get('YouTube');
// The corrupt provider should not be stored.
$stored_data = [
'data' => [
'YouTube' => $youtube,
],
'expires' => $this->currentTime + 604800,
];
$this
->assertSame($stored_data, $this->keyValue
->get('oembed_providers'));
$this
->expectException('InvalidArgumentException');
$this->repository
->get("Uncle Rico's football videos");
}