UsersTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace Tests\Feature;
  3. use Dcat\Admin\Models\Administrator;
  4. use Tests\TestCase;
  5. class UsersTest extends TestCase
  6. {
  7. protected $login = true;
  8. public function testUsersIndexPage()
  9. {
  10. $this->visit('admin/auth/users')
  11. ->see('Administrator');
  12. }
  13. public function testCreateUser()
  14. {
  15. $user = [
  16. 'username' => 'Test',
  17. 'name' => 'Name',
  18. 'password' => '123456',
  19. 'password_confirmation' => '123456',
  20. ];
  21. // create user
  22. $this->visit('admin/auth/users/create')
  23. ->see('Create')
  24. ->submitForm('Submit', $user)
  25. ->seePageIs('admin/auth/users')
  26. ->seeInDatabase(config('admin.database.users_table'), ['username' => $user['username'], 'name' => $user['name']]);
  27. // assign role to user
  28. $this->visit('admin/auth/users/2/edit')
  29. ->see('Edit')
  30. ->submitForm('Submit', ['roles' => [1]])
  31. ->seePageIs('admin/auth/users')
  32. ->seeInDatabase(config('admin.database.role_users_table'), ['user_id' => 2, 'role_id' => 1]);
  33. $this->visit('admin/auth/logout')
  34. ->dontSeeIsAuthenticated('admin')
  35. ->seePageIs('admin/auth/login')
  36. ->submitForm('Login', ['username' => $user['username'], 'password' => $user['password']])
  37. ->see('dashboard')
  38. ->seeIsAuthenticated('admin')
  39. ->seePageIs('admin');
  40. $this->assertTrue($this->app['auth']->guard('admin')->getUser()->isAdministrator());
  41. $this->see('<span>Users</span>')
  42. ->see('<span>Roles</span>')
  43. ->see('<span>Permission</span>')
  44. ->see('<span>Operation log</span>')
  45. ->see('<span>Menu</span>');
  46. }
  47. public function testUpdateUser()
  48. {
  49. $this->visit('admin/auth/users/'.$this->user->id.'/edit')
  50. ->see('Edit')
  51. ->submitForm('Submit', ['name' => 'test', 'roles' => [1]])
  52. ->seePageIs('admin/auth/users')
  53. ->seeInDatabase(config('admin.database.users_table'), ['name' => 'test']);
  54. }
  55. public function testResetPassword()
  56. {
  57. $password = 'odjwyufkglte';
  58. $data = [
  59. 'password' => $password,
  60. 'password_confirmation' => $password,
  61. 'roles' => [1],
  62. ];
  63. $this->visit('admin/auth/users/'.$this->user->id.'/edit')
  64. ->see('Edit')
  65. ->submitForm('Submit', $data)
  66. ->seePageIs('admin/auth/users')
  67. ->visit('admin/auth/logout')
  68. ->dontSeeIsAuthenticated('admin')
  69. ->seePageIs('admin/auth/login')
  70. ->submitForm('Login', ['username' => $this->user->username, 'password' => $password])
  71. ->see('dashboard')
  72. ->seeIsAuthenticated('admin')
  73. ->seePageIs('admin');
  74. }
  75. }