AuthenticationCollectorTest.php in Drupal 8
File
core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php
View source
<?php
namespace Drupal\Tests\Core\Authentication;
use Drupal\Core\Authentication\AuthenticationCollector;
use Drupal\Core\Authentication\AuthenticationProviderInterface;
use Drupal\Tests\UnitTestCase;
use Symfony\Component\HttpFoundation\Request;
class AuthenticationCollectorTest extends UnitTestCase {
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]);
}
krsort($providers);
$sorted_providers = [];
foreach ($providers as $providers_priority) {
$sorted_providers = array_merge($sorted_providers, $providers_priority);
}
$this
->assertEquals($sorted_providers, $authentication_collector
->getSortedProviders());
foreach ($sorted_providers as $provider) {
$this
->assertEquals($provider, $authentication_collector
->getProvider($provider->providerId));
$this
->assertEquals($global[$provider->providerId], $authentication_collector
->isGlobal($provider->providerId));
}
}
}
class TestAuthenticationProvider implements AuthenticationProviderInterface {
public $providerId;
public function __construct($provider_id) {
$this->providerId = $provider_id;
}
public function applies(Request $request) {
return TRUE;
}
public function authenticate(Request $request) {
return NULL;
}
}