MenuPage.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace Tests\Browser\Pages;
  3. use Laravel\Dusk\Browser;
  4. use Tests\Browser\Components\Form\MenuCreationForm;
  5. class MenuPage extends Page
  6. {
  7. /**
  8. * Get the URL for the page.
  9. *
  10. * @return string
  11. */
  12. public function url()
  13. {
  14. return admin_base_path('auth/menu');
  15. }
  16. /**
  17. * Assert that the browser is on the page.
  18. *
  19. * @param \Laravel\Dusk\Browser $browser
  20. * @return void
  21. */
  22. public function assert(Browser $browser)
  23. {
  24. $browser->assertSeeText(__('admin.expand'))
  25. ->assertSeeText(__('admin.collapse'))
  26. ->assertSeeText(__('admin.save'))
  27. ->assertSeeText(__('admin.new'))
  28. ->whenAvailable('@tree', function (Browser $browser) {
  29. $browser->assertSeeText('Menu')
  30. ->assertSeeText('Index')
  31. ->assertSeeText('Admin')
  32. ->assertSeeText('Users')
  33. ->assertSeeText('Roles')
  34. ->assertSeeText('Permission')
  35. ->assertSeeText('Menu')
  36. ->assertSeeText('Operation log');
  37. }, 1)
  38. ->within('@form', function (Browser $browser) {
  39. $browser->assertSeeText(__('admin.parent_id'))
  40. ->assertSeeText(__('admin.title'))
  41. ->assertSeeText(__('admin.icon'))
  42. ->assertSeeText(__('admin.uri'))
  43. ->assertSeeText(__('admin.roles'))
  44. ->assertSeeText(__('admin.permission'))
  45. ->assertSeeText(__('admin.selectall'))
  46. ->assertSeeText(__('admin.expand'))
  47. ->assertSelected('parent_id', 0)
  48. ->hasInput('title')
  49. ->hasInput('icon')
  50. ->hasInput('uri')
  51. ->assertButtonEnabled(__('admin.submit'))
  52. ->assertButtonEnabled(__('admin.reset'));
  53. });
  54. }
  55. /**
  56. * 创建.
  57. *
  58. * @param Browser $browser
  59. * @param array $input
  60. *
  61. * @return Browser
  62. */
  63. public function newMenu(Browser $browser, array $input)
  64. {
  65. return $browser->within(new MenuCreationForm(), function (Browser $browser) use ($input) {
  66. $browser->fill($input);
  67. $browser->pressAndWaitFor(__('admin.submit'), 2);
  68. $browser->waitForLocation($this->url(), 2);
  69. });
  70. }
  71. /**
  72. * Get the element shortcuts for the page.
  73. *
  74. * @return array
  75. */
  76. public function elements()
  77. {
  78. return [
  79. '@tree' => '.dd',
  80. '@form' => 'form[method="POST"]',
  81. ];
  82. }
  83. }