3 namespace Drupal\KernelTests\Core\Routing;
6 use Drupal\KernelTests\KernelTestBase;
7 use Drupal\user\Entity\Role;
8 use Drupal\user\Entity\User;
11 * Tests the URL object integration into the access system.
15 class UrlIntegrationTest extends KernelTestBase {
22 public static $modules = ['user', 'router_test', 'system'];
25 * Ensures that the access() method on \Drupal\Core\Url objects works.
27 public function testAccess() {
28 /** @var \Drupal\user\RoleInterface $role_with_access */
29 $role_with_access = Role::create(['id' => 'role_with_access']);
30 $role_with_access->grantPermission('administer users');
31 $role_with_access->save();
33 /** @var \Drupal\user\RoleInterface $role_without_access */
34 $role_without_access = Role::create(['id' => 'role_without_access']);
35 $role_without_access->save();
37 $user_with_access = User::create(['roles' => ['role_with_access']]);
38 $user_without_access = User::create(['roles' => ['role_without_access']]);
40 $url_always_access = new Url('router_test.1');
41 $this->assertTrue($url_always_access->access($user_with_access));
42 $this->assertTrue($url_always_access->access($user_without_access));
44 $url_none_access = new Url('router_test.15');
45 $this->assertFalse($url_none_access->access($user_with_access));
46 $this->assertFalse($url_none_access->access($user_without_access));
48 $url_access = new Url('router_test.16');
49 $this->assertTrue($url_access->access($user_with_access));
50 $this->assertFalse($url_access->access($user_without_access));