acquia_dam-1.0.0-rc1/tests/src/Kernel/UserAuthPageTest.php

tests/src/Kernel/UserAuthPageTest.php
<?php

namespace Drupal\Tests\acquia_dam\Kernel;

/**
 * Test AuthPage controller.
 *
 * @group acquia_dam
 */
class UserAuthPageTest extends AcquiaDamKernelTestBase {

  /**
   * Test permission of different users.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function testAuthPageAccess(): void {
    $user = $this->drupalSetUpCurrentUser();
    $admin_user = $this->drupalSetUpCurrentUser([], [], TRUE);

    $request = $this->getMockedRequest("/user/{$admin_user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(200, $response->getStatusCode());
    $request = $this->getMockedRequest("/user/{$user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(403, $response->getStatusCode());

    $this->setCurrentUser($user);
    $request = $this->getMockedRequest("/user/{$admin_user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(403, $response->getStatusCode());
    $request = $this->getMockedRequest("/user/{$user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(200, $response->getStatusCode());
  }

  /**
   * Test the auth page content.
   *
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function testAuthPageContent(): void {
    // Do not user drupalSetUpCurrentUser since it sets the user token.
    $admin_user = $this->drupalCreateUser([
      'administer site configuration',
    ]);

    $this->setCurrentUser($admin_user);
    $request = $this->getMockedRequest("/user/{$admin_user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(200, $response->getStatusCode());
    $this->assertStringContainsString('Connect to Acquia Dam', $response->getContent());

    $this->container->get('acquia_dam.authentication_service')->setUserData(
      (int) $admin_user->id(),
      [
        'acquia_dam_username' => $admin_user->getEmail(),
        'acquia_dam_token' => $this->randomString(),
      ]
    );

    $request = $this->getMockedRequest("/user/{$admin_user->id()}/acquia-dam", 'GET');
    $response = $this->processRequest($request);
    self::assertEquals(200, $response->getStatusCode());
    $this->assertStringContainsString('Disconnect from Acquia DAM', $response->getContent());
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc