UserSettingTest.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. use Encore\Admin\Auth\Database\Administrator;
  3. use Illuminate\Support\Facades\File;
  4. class UserSettingTest extends TestCase
  5. {
  6. public function setUp()
  7. {
  8. parent::setUp();
  9. $this->be(Administrator::first(), 'admin');
  10. }
  11. public function testVisitSettingPage()
  12. {
  13. $this->visit('admin/auth/setting')
  14. ->see('User setting')
  15. ->see('Username')
  16. ->see('Name')
  17. ->see('Avatar')
  18. ->see('Password')
  19. ->see('Password confirmation');
  20. $this->seeElement('input[value=Administrator]')
  21. ->seeInElement('.box-body', 'administrator');
  22. }
  23. public function testUpdateName()
  24. {
  25. $data = [
  26. 'name' => 'tester',
  27. ];
  28. $this->visit('admin/auth/setting')
  29. ->submitForm('Submit', $data)
  30. ->seePageIs('admin/auth/setting');
  31. $this->seeInDatabase('admin_users', ['name' => $data['name']]);
  32. }
  33. public function testUpdateAvatar()
  34. {
  35. File::cleanDirectory(public_path('uploads/images'));
  36. $this->visit('admin/auth/setting')
  37. ->attach(__DIR__.'/assets/test.jpg', 'avatar')
  38. ->press('Submit')
  39. ->seePageIs('admin/auth/setting');
  40. $avatar = Administrator::first()->avatar;
  41. $this->assertEquals('http://localhost:8000/uploads/images/test.jpg', $avatar);
  42. }
  43. public function testUpdatePasswordConfirmation()
  44. {
  45. $data = [
  46. 'password' => '123456',
  47. 'password_confirmation' => '123',
  48. ];
  49. $this->visit('admin/auth/setting')
  50. ->submitForm('Submit', $data)
  51. ->seePageIs('admin/auth/setting')
  52. ->see('The Password confirmation does not match.');
  53. }
  54. public function testUpdatePassword()
  55. {
  56. $data = [
  57. 'password' => '123456',
  58. 'password_confirmation' => '123456',
  59. ];
  60. $this->visit('admin/auth/setting')
  61. ->submitForm('Submit', $data)
  62. ->seePageIs('admin/auth/setting');
  63. $this->assertTrue(app('hash')->check($data['password'], Administrator::first()->makeVisible('password')->password));
  64. $this->visit('admin/auth/logout')
  65. ->seePageIs('admin/auth/login')
  66. ->dontSeeIsAuthenticated('admin');
  67. $credentials = ['username' => 'admin', 'password' => '123456'];
  68. $this->visit('admin/auth/login')
  69. ->see('login')
  70. ->submitForm('Login', $credentials)
  71. ->see('dashboard')
  72. ->seeCredentials($credentials, 'admin')
  73. ->seeIsAuthenticated('admin')
  74. ->seePageIs('admin');
  75. }
  76. }