/** * 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)); } }
/** * @covers ::applyFilter */ public function testApplyFilterWithFilterprovider() { $auth_provider = $this->getMock('Drupal\\Tests\\Core\\Authentication\\TestAuthenticationProviderInterface'); $auth_provider->expects($this->once())->method('appliesToRoutedRequest')->willReturn(TRUE); $authentication_collector = new AuthenticationCollector(); $authentication_collector->addProvider($auth_provider, 'filtered', 0); $authentication_manager = new AuthenticationManager($authentication_collector); $request = new Request(); $this->assertTrue($authentication_manager->appliesToRoutedRequest($request, FALSE)); }