UserRouteTest.php in Username Enumeration Prevention 8
File
tests/src/Functional/UserRouteTest.php
View source
<?php
namespace Drupal\Tests\username_enumeration_prevention\Functional;
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
class UserRouteTest extends BrowserTestBase {
public static $modules = [
'user',
'shortcut',
];
public function testUserRoutes(string $routeId, array $routeParameters, array $modules, int $expectedStatus) {
$user = $this
->drupalCreateUser();
\Drupal::service('module_installer')
->install($modules);
$routeParameters['user'] = $user
->id();
$this
->drupalGet(Url::fromRoute($routeId, $routeParameters));
$this
->assertSession()
->statusCodeEquals($expectedStatus);
}
public function providerTestUserRoutes() : array {
$scenarios['user canonical'] = [
'entity.user.canonical',
];
$scenarios['user edit form'] = [
'entity.user.edit_form',
];
$scenarios['user cancel form'] = [
'entity.user.cancel_form',
];
$scenarios['cancel confirm 1'] = [
'user.cancel_confirm',
];
$scenarios['cancel confirm 2'] = [
'user.cancel_confirm',
[
'timestamp' => 0,
'hashed_pass' => 'foo',
],
];
$scenarios['contact user contact form'] = [
'entity.user.contact_form',
[],
[
'contact',
],
];
$scenarios['user shortcut list'] = [
'shortcut.set_switch',
];
$data = [];
foreach ($scenarios as $key => $scenario) {
$scenario = $scenario + array_fill_keys(range(1, 2), []);
$data['without uep ' . $key] = $scenario + [
3 => 403,
];
$scenario[2][] = 'username_enumeration_prevention';
$data['with uep ' . $key] = $scenario + [
3 => 404,
];
}
return $data;
}
}
Classes
Name |
Description |
UserRouteTest |
Performs integration tests on UserRouteEventSubscriber. |