RolesTest.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. use Encore\Admin\Auth\Database\Administrator;
  3. use Encore\Admin\Auth\Database\Role;
  4. class RolesTest extends TestCase
  5. {
  6. public function setUp()
  7. {
  8. parent::setUp();
  9. $this->be(Administrator::first(), 'admin');
  10. }
  11. public function testRolesIndex()
  12. {
  13. $this->visit('admin/auth/roles')
  14. ->see('Roles')
  15. ->see('administrator');
  16. }
  17. public function testAddRole()
  18. {
  19. $this->visit('admin/auth/roles/create')
  20. ->see('Roles')
  21. ->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
  22. ->seePageIs('admin/auth/roles')
  23. ->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
  24. ->assertEquals(2, Role::count());
  25. }
  26. public function testAddRoleToUser()
  27. {
  28. $user = [
  29. 'username' => 'Test',
  30. 'name' => 'Name',
  31. 'password' => '123456',
  32. 'password_confirmation' => '123456',
  33. ];
  34. $this->visit('admin/auth/users/create')
  35. ->see('Create')
  36. ->submitForm('Submit', $user)
  37. ->seePageIs('admin/auth/users')
  38. ->seeInDatabase(config('admin.database.users_table'), ['username' => 'Test']);
  39. $this->assertEquals(1, Role::count());
  40. $this->visit('admin/auth/roles/create')
  41. ->see('Roles')
  42. ->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
  43. ->seePageIs('admin/auth/roles')
  44. ->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
  45. ->assertEquals(2, Role::count());
  46. $this->assertFalse(Administrator::find(2)->isRole('developer'));
  47. $this->visit('admin/auth/users/2/edit')
  48. ->see('Edit')
  49. ->submitForm('Submit', ['roles' => [2]])
  50. ->seePageIs('admin/auth/users')
  51. ->seeInDatabase(config('admin.database.role_users_table'), ['user_id' => 2, 'role_id' => 2]);
  52. $this->assertTrue(Administrator::find(2)->isRole('developer'));
  53. $this->assertFalse(Administrator::find(2)->inRoles(['editor', 'operator']));
  54. $this->assertTrue(Administrator::find(2)->inRoles(['developer', 'operator', 'editor']));
  55. }
  56. public function testDeleteRole()
  57. {
  58. $this->assertEquals(1, Role::count());
  59. $this->visit('admin/auth/roles/create')
  60. ->see('Roles')
  61. ->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
  62. ->seePageIs('admin/auth/roles')
  63. ->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
  64. ->assertEquals(2, Role::count());
  65. $this->delete('admin/auth/roles/2')
  66. ->assertEquals(1, Role::count());
  67. $this->delete('admin/auth/roles/1')
  68. ->assertEquals(0, Role::count());
  69. }
  70. public function testEditRole()
  71. {
  72. $this->visit('admin/auth/roles/create')
  73. ->see('Roles')
  74. ->submitForm('Submit', ['slug' => 'developer', 'name' => 'Developer...'])
  75. ->seePageIs('admin/auth/roles')
  76. ->seeInDatabase(config('admin.database.roles_table'), ['slug' => 'developer', 'name' => 'Developer...'])
  77. ->assertEquals(2, Role::count());
  78. $this->visit('admin/auth/roles/2/edit')
  79. ->see('Roles')
  80. ->submitForm('Submit', ['name' => 'blablabla'])
  81. ->seePageIs('admin/auth/roles')
  82. ->seeInDatabase(config('admin.database.roles_table'), ['name' => 'blablabla'])
  83. ->assertEquals(2, Role::count());
  84. }
  85. }