You are here

public function ConfigDependenciesTest::testOnDependencyRemovalRemoveAuthAndFormats in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/rest/tests/src/Kernel/Entity/ConfigDependenciesTest.php \Drupal\Tests\rest\Kernel\Entity\ConfigDependenciesTest::testOnDependencyRemovalRemoveAuthAndFormats()

@covers ::onDependencyRemoval @covers ::onDependencyRemovalForMethodGranularity

File

core/modules/rest/tests/src/Kernel/Entity/ConfigDependenciesTest.php, line 167

Class

ConfigDependenciesTest
@coversDefaultClass \Drupal\rest\Entity\ConfigDependencies

Namespace

Drupal\Tests\rest\Kernel\Entity

Code

public function testOnDependencyRemovalRemoveAuthAndFormats() {
  $config_dependencies = new ConfigDependencies([
    'hal_json' => 'hal',
    'json' => 'serialization',
  ], [
    'basic_auth' => 'basic_auth',
  ]);
  $rest_config = RestResourceConfig::create([
    'plugin_id' => 'entity:entity_test',
    'granularity' => RestResourceConfigInterface::METHOD_GRANULARITY,
    'configuration' => [
      'GET' => [
        'supported_auth' => [
          'cookie',
        ],
        'supported_formats' => [
          'json',
        ],
      ],
      'POST' => [
        'supported_auth' => [
          'basic_auth',
        ],
        'supported_formats' => [
          'hal_json',
        ],
      ],
    ],
  ]);
  $this
    ->assertTrue($config_dependencies
    ->onDependencyRemoval($rest_config, [
    'module' => [
      'basic_auth',
      'hal',
    ],
  ]));
  $this
    ->assertEquals([
    'json',
  ], $rest_config
    ->getFormats('GET'));
  $this
    ->assertEquals([
    'cookie',
  ], $rest_config
    ->getAuthenticationProviders('GET'));
  $this
    ->assertEquals([], $rest_config
    ->getFormats('POST'));
  $this
    ->assertEquals([], $rest_config
    ->getAuthenticationProviders('POST'));
  $this
    ->assertEquals([
    'GET' => [
      'supported_auth' => [
        'cookie',
      ],
      'supported_formats' => [
        'json',
      ],
    ],
  ], $rest_config
    ->get('configuration'));
}