3 namespace Drupal\media_test_oembed;
5 use Drupal\media\OEmbed\Provider;
6 use Drupal\media\OEmbed\ProviderRepository as BaseProviderRepository;
9 * Overrides the oEmbed provider repository service for testing purposes.
11 * This service does not use caching at all, and will always try to retrieve
12 * provider data from state before calling the parent methods.
14 class ProviderRepository extends BaseProviderRepository {
19 protected function cacheGet($cid) {
26 public function getAll() {
27 return \Drupal::state()->get(static::class) ?: parent::getAll();
33 public function get($provider_name) {
34 $providers = \Drupal::state()->get(static::class, []);
36 if (isset($providers[$provider_name])) {
37 return $providers[$provider_name];
39 return parent::get($provider_name);
43 * Stores an oEmbed provider value object in state.
45 * @param \Drupal\media\OEmbed\Provider $provider
46 * The provider to store.
48 public function setProvider(Provider $provider) {
49 $providers = \Drupal::state()->get(static::class, []);
50 $name = $provider->getName();
51 $providers[$name] = $provider;
52 \Drupal::state()->set(static::class, $providers);