You are here

class AuthenticationCollectorTest in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest
  2. 10 core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest

@coversDefaultClass \Drupal\Core\Authentication\AuthenticationCollector @group Authentication

Hierarchy

Expanded class hierarchy of AuthenticationCollectorTest

File

core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php, line 19
Contains \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest.

Namespace

Drupal\Tests\Core\Authentication
View source
class AuthenticationCollectorTest extends UnitTestCase {

  /**
   * Tests adding, getting, and order of priorities.
   *
   * @covers ::addProvider
   * @covers ::getSortedProviders
   * @covers ::getProvider
   * @covers ::isGlobal
   */
  public function testAuthenticationCollector() {
    $providers = [];
    $global = [];
    $authentication_collector = new AuthenticationCollector();
    $priorities = [
      2,
      0,
      -8,
      10,
      1,
      3,
      -5,
      0,
      6,
      -10,
      -4,
    ];
    foreach ($priorities as $priority) {
      $provider_id = $this
        ->randomMachineName();
      $provider = new TestAuthenticationProvider($provider_id);
      $providers[$priority][$provider_id] = $provider;
      $global[$provider_id] = rand(0, 1) > 0.5;
      $authentication_collector
        ->addProvider($provider, $provider_id, $priority, $global[$provider_id]);
    }

    // Sort the $providers array by priority (highest number is lowest priority)
    // and compare with AuthenticationCollector::getSortedProviders().
    krsort($providers);

    // Merge nested providers from $providers into $sorted_providers.
    $sorted_providers = [];
    foreach ($providers as $providers_priority) {
      $sorted_providers = array_merge($sorted_providers, $providers_priority);
    }
    $this
      ->assertEquals($sorted_providers, $authentication_collector
      ->getSortedProviders());

    // Test AuthenticationCollector::getProvider() and
    // AuthenticationCollector::isGlobal().
    foreach ($sorted_providers as $provider) {
      $this
        ->assertEquals($provider, $authentication_collector
        ->getProvider($provider->providerId));
      $this
        ->assertEquals($global[$provider->providerId], $authentication_collector
        ->isGlobal($provider->providerId));
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AuthenticationCollectorTest::testAuthenticationCollector public function Tests adding, getting, and order of priorities.
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 340