Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / media / tests / modules / media_test_oembed / src / ProviderRepository.php
1 <?php
2
3 namespace Drupal\media_test_oembed;
4
5 use Drupal\media\OEmbed\Provider;
6 use Drupal\media\OEmbed\ProviderRepository as BaseProviderRepository;
7
8 /**
9  * Overrides the oEmbed provider repository service for testing purposes.
10  *
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.
13  */
14 class ProviderRepository extends BaseProviderRepository {
15
16   /**
17    * {@inheritdoc}
18    */
19   protected function cacheGet($cid) {
20     return FALSE;
21   }
22
23   /**
24    * {@inheritdoc}
25    */
26   public function getAll() {
27     return \Drupal::state()->get(static::class) ?: parent::getAll();
28   }
29
30   /**
31    * {@inheritdoc}
32    */
33   public function get($provider_name) {
34     $providers = \Drupal::state()->get(static::class, []);
35
36     if (isset($providers[$provider_name])) {
37       return $providers[$provider_name];
38     }
39     return parent::get($provider_name);
40   }
41
42   /**
43    * Stores an oEmbed provider value object in state.
44    *
45    * @param \Drupal\media\OEmbed\Provider $provider
46    *   The provider to store.
47    */
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);
53   }
54
55 }