You are here

public function RolesNegotiationFunctionalTest::setUp in Simple OAuth (OAuth2) & OpenID Connect 8.3

Same name and namespace in other branches
  1. 8.2 simple_oauth_extras/tests/src/Functional/RolesNegotiationFunctionalTest.php \Drupal\Tests\simple_oauth_extras\Functional\RolesNegotiationFunctionalTest::setUp()

Overrides BrowserTestBase::setUp

File

simple_oauth_extras/tests/src/Functional/RolesNegotiationFunctionalTest.php, line 63

Class

RolesNegotiationFunctionalTest
@group simple_oauth_extras

Namespace

Drupal\Tests\simple_oauth_extras\Functional

Code

public function setUp() {
  parent::setUp();
  $this->htmlOutputEnabled = FALSE;
  $this->tokenTestUrl = Url::fromRoute('oauth2_token.user_debug');
  $this->url = Url::fromRoute('oauth2_token.token');
  $this->user = $this
    ->drupalCreateUser();

  // Set up a HTTP client that accepts relative URLs.
  $this->httpClient = $this->container
    ->get('http_client_factory')
    ->fromOptions([
    'base_uri' => $this->baseUrl,
  ]);
  $this->clientSecret = $this
    ->getRandomGenerator()
    ->string();

  // Create a role 'foo' and add two permissions to it.
  $role = Role::create([
    'id' => 'foo',
    'label' => 'Foo',
    'is_admin' => FALSE,
  ]);
  $role
    ->grantPermission('view own simple_oauth entities');
  $role
    ->save();
  $role = Role::create([
    'id' => 'bar',
    'label' => 'Bar',
    'is_admin' => FALSE,
  ]);
  $role
    ->grantPermission('administer simple_oauth entities');
  $role
    ->save();
  $role = Role::create([
    'id' => 'oof',
    'label' => 'Oof',
    'is_admin' => FALSE,
  ]);
  $role
    ->grantPermission('delete own simple_oauth entities');
  $role
    ->save();
  $this->user
    ->addRole('foo');
  $this->user
    ->addRole('bar');
  $this->user
    ->save();

  // Create a Consumer.
  $this->client = Consumer::create([
    'owner_id' => 1,
    'user_id' => $this->user
      ->id(),
    'label' => $this
      ->getRandomGenerator()
      ->name(),
    'secret' => $this->clientSecret,
    'confidential' => TRUE,
    'roles' => [
      [
        'target_id' => 'oof',
      ],
    ],
  ]);
  $this->client
    ->save();
  $this
    ->setUpKeys();
}