ResourceFetcherTest.php

Same filename in this branch
  1. 10 core/modules/media/tests/src/Unit/ResourceFetcherTest.php
Same filename in other branches
  1. 9 core/modules/media/tests/src/Unit/ResourceFetcherTest.php
  2. 9 core/modules/media/tests/src/Kernel/ResourceFetcherTest.php
  3. 9 core/modules/media/tests/src/Functional/ResourceFetcherTest.php
  4. 8.9.x core/modules/media/tests/src/Functional/ResourceFetcherTest.php
  5. 11.x core/modules/media/tests/src/Unit/ResourceFetcherTest.php
  6. 11.x core/modules/media/tests/src/Functional/ResourceFetcherTest.php

Namespace

Drupal\Tests\media\Functional

File

core/modules/media/tests/src/Functional/ResourceFetcherTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\media\Functional;

use Drupal\media\OEmbed\Resource;
use Drupal\Tests\media\Traits\OEmbedTestTrait;
// cspell:ignore dailymotion Schipulcon

/**
 * Tests the oEmbed resource fetcher service.
 *
 * @coversDefaultClass \Drupal\media\OEmbed\ResourceFetcher
 *
 * @group media
 */
class ResourceFetcherTest extends MediaFunctionalTestBase {
    use OEmbedTestTrait;
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        $this->useFixtureProviders();
        $this->lockHttpClientToFixtures();
    }
    
    /**
     * Data provider for testFetchResource().
     *
     * @return array
     */
    public static function providerFetchResource() {
        return [
            'JSON resource' => [
                'video_vimeo.json',
                'Vimeo',
                'Drupal Rap Video - Schipulcon09',
            ],
            'XML resource' => [
                'video_dailymotion.xml',
                'Dailymotion',
                "#d8rules - Support the Rules module for Drupal 8",
            ],
        ];
    }
    
    /**
     * Tests resource fetching.
     *
     * @param string $resource_url
     *   The URL of the resource to fetch, relative to the base URL.
     * @param string $provider_name
     *   The expected name of the resource provider.
     * @param string $title
     *   The expected title of the resource.
     *
     * @covers ::fetchResource
     *
     * @dataProvider providerFetchResource
     */
    public function testFetchResource($resource_url, $provider_name, $title) : void {
        
        /** @var \Drupal\media\OEmbed\Resource $resource */
        $resource = $this->container
            ->get('media.oembed.resource_fetcher')
            ->fetchResource($resource_url);
        $this->assertInstanceOf(Resource::class, $resource);
        $this->assertSame($provider_name, $resource->getProvider()
            ->getName());
        $this->assertSame($title, $resource->getTitle());
    }

}

Classes

Title Deprecated Summary
ResourceFetcherTest Tests the oEmbed resource fetcher service.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.