cas_mock_server-8.x-1.0/tests/src/Kernel/ServiceResponseAlterTest.php

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

declare(strict_types=1);

namespace Drupal\Tests\cas_mock_server\Kernel;

use Drupal\Core\Url;
use Drupal\KernelTests\KernelTestBase;
use Symfony\Component\HttpFoundation\Request;

/**
 * Tests that modules can alter the responses returned by the mock server.
 *
 * @group cas_mock_server
 */
class ServiceResponseAlterTest extends KernelTestBase {

  /**
   * The state service.
   *
   * @var \Drupal\Core\State\StateInterface
   */
  protected $state;

  /**
   * The CAS mock user manager.
   *
   * @var \Drupal\cas_mock_server\UserManagerInterface
   */
  protected $userManager;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'cas',
    'cas_mock_server',
    'cas_mock_server_test',
    'externalauth',
    'system',
    'user',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $this->installConfig(['cas', 'cas_mock_server']);

    $this->userManager = $this->container->get('cas_mock_server.user_manager');
    $this->state = $this->container->get('state');
  }

  /**
   * Tests that modules can alter the service response.
   */
  public function testResponseAlter(): void {
    // Set up a test user with a service ticket.
    $ticket = 'ST-123456789';
    $user_data = [
      'username' => 'sharon',
      'email' => 'sharon@example.com',
      'password' => 'hunter2',
    ];
    $this->userManager->addUser($user_data);
    $this->userManager->assignServiceTicket('sharon', $ticket);

    // Enable altering of the response by the test module.
    $this->state->set('cas_mock_server_test.alter_response', TRUE);

    // Request to validate the ticket.
    $http_kernel = \Drupal::service('http_kernel');
    $request = Request::create(Url::fromRoute('cas_mock_server.validate', [], [
      'query' => [
        'ticket' => $ticket,
      ],
    ])->toString(TRUE)->getGeneratedUrl());

    // Check that the response has a custom element altered in.
    // @see \Drupal\cas_mock_server_test\EventSubscriber\CasMockServerTestSubscriber::alterResponse()
    $response = $http_kernel->handle($request);
    $this->assertEquals(200, $response->getStatusCode());
    $this->assertStringContainsString('<cas:custom>altered</cas:custom>', $response->getContent());
  }

}

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

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