You are here

public function BasicTest::testConfig in JSON Web Token Authentication (JWT) 8

Same name and namespace in other branches
  1. 8.0 tests/src/Kernel/BasicTest.php \Drupal\Tests\jwt\Kernel\BasicTest::testConfig()

Verify the test config was loaded as keys.

File

tests/src/Kernel/BasicTest.php, line 31

Class

BasicTest
Tests JWT config schema.

Namespace

Drupal\Tests\jwt\Kernel

Code

public function testConfig() {

  /** @var \Drupal\key\KeyRepositoryInterface $key_repository */
  $key_repository = $this->container
    ->get('key.repository');
  $key_hmac = $key_repository
    ->getKey('jwt_test_hmac');
  $this
    ->assertNotEmpty($key_hmac);
  $this
    ->assertEqual('jwt_hs', $key_hmac
    ->getKeyType()
    ->getPluginId());
  $key_rsa = $key_repository
    ->getKey('jwt_test_rsa');
  $this
    ->assertNotEmpty($key_rsa);
  $this
    ->assertEqual('jwt_rs', $key_rsa
    ->getKeyType()
    ->getPluginId());

  // The jwt_test module configures the jwt_test_hmac key to be used.

  /** @var \Drupal\jwt\Transcoder\JwtTranscoderInterface $transcoder */
  $transcoder = $this->container
    ->get('jwt.transcoder');
  $reflected = new \ReflectionClass($transcoder);
  $algorithm = $reflected
    ->getProperty('algorithm');
  $algorithm
    ->setAccessible(TRUE);
  $this
    ->assertEqual('HS256', $algorithm
    ->getValue($transcoder));
  $jwt = new JsonWebToken();
  $jwt
    ->setClaim([
    'drupal',
    'test',
  ], 1234);
  $encoded = $transcoder
    ->encode($jwt);
  $this
    ->assertNotEmpty($encoded);
  $this
    ->assertTrue(is_string($encoded));
  $decoded_jwt = $transcoder
    ->decode($encoded);
  $this
    ->assertEqual(1234, $decoded_jwt
    ->getClaim([
    'drupal',
    'test',
  ]));
}