MenuPage.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. }, 1)
  37. ->within('@form', function (Browser $browser) {
  38. $browser->assertSeeText(__('admin.parent_id'))
  39. ->assertSeeText(__('admin.title'))
  40. ->assertSeeText(__('admin.icon'))
  41. ->assertSeeText(__('admin.uri'))
  42. ->assertSeeText(__('admin.roles'))
  43. ->assertSeeText(__('admin.permission'))
  44. ->assertSeeText(__('admin.selectall'))
  45. ->assertSeeText(__('admin.expand'))
  46. //->assertSelected('parent_id', 0)
  47. ->hasInput('title')
  48. ->hasInput('icon')
  49. ->hasInput('uri')
  50. ->assertButtonEnabled(__('admin.submit'))
  51. ->assertButtonEnabled(__('admin.reset'));
  52. });
  53. }
  54. /**
  55. * 创建.
  56. *
  57. * @param Browser $browser
  58. * @param array $input
  59. * @return Browser
  60. */
  61. public function newMenu(Browser $browser, array $input)
  62. {
  63. return $browser->within(new MenuCreationForm(), function (Browser $browser) use ($input) {
  64. $browser->fill($input);
  65. $browser->pressAndWaitFor(__('admin.submit'), 2);
  66. $browser->waitForLocation($this->url(), 2);
  67. });
  68. }
  69. /**
  70. * Get the element shortcuts for the page.
  71. *
  72. * @return array
  73. */
  74. public function elements()
  75. {
  76. return [
  77. '@tree' => '.dd',
  78. '@form' => 'form[method="POST"]',
  79. ];
  80. }
  81. }