function AuthenticationCollectorTest::testAuthenticationCollector

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest::testAuthenticationCollector()
  2. 10 core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest::testAuthenticationCollector()
  3. 11.x core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest::testAuthenticationCollector()

Tests adding, getting, and order of priorities.

@covers ::addProvider @covers ::getSortedProviders @covers ::getProvider @covers ::isGlobal

File

core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php, line 29

Class

AuthenticationCollectorTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Authentication%21AuthenticationCollector.php/class/AuthenticationCollector/9" title="A collector class for authentication providers." class="local">\Drupal\Core\Authentication\AuthenticationCollector</a> @group Authentication

Namespace

Drupal\Tests\Core\Authentication

Code

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 = array_merge([], ...$providers);
    $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));
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.