Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Components/Menu.php
<?php | <?php | ||||
namespace Tests\Browser\Components; | namespace Tests\Browser\Components; | ||||
use Laravel\Dusk\Component as BaseComponent; | use Laravel\Dusk\Component as BaseComponent; | ||||
use PHPUnit\Framework\Assert as PHPUnit; | use PHPUnit\Framework\Assert as PHPUnit; | ||||
class Menu extends BaseComponent | class Menu extends BaseComponent | ||||
{ | { | ||||
protected $mode; | |||||
/** | |||||
* Object constructor | |||||
* | |||||
* @param string $mode Menu mode ('header' or 'footer') | |||||
*/ | |||||
public function __construct($mode = 'header') | |||||
{ | |||||
$this->mode = $mode; | |||||
} | |||||
/** | /** | ||||
* Get the root selector for the component. | * Get the root selector for the component. | ||||
* | * | ||||
* @return string | * @return string | ||||
*/ | */ | ||||
public function selector() | public function selector() | ||||
{ | { | ||||
return '#primary-menu'; | return '#' . $this->mode . '-menu'; | ||||
} | } | ||||
/** | /** | ||||
* Assert that the browser page contains the component. | * Assert that the browser page contains the component. | ||||
* | * | ||||
* @param \Laravel\Dusk\Browser $browser | * @param \Laravel\Dusk\Browser $browser | ||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function assert($browser) | public function assert($browser) | ||||
{ | { | ||||
$browser->assertVisible($this->selector()); | $browser->assertVisible($this->selector()); | ||||
$browser->assertVisible('@brand'); | |||||
} | } | ||||
/** | /** | ||||
* Assert that menu contains only specified menu items. | * Assert that menu contains only specified menu items. | ||||
* | * | ||||
* @param \Laravel\Dusk\Browser $browser | * @param \Laravel\Dusk\Browser $browser | ||||
* @param array $items List of menu items | * @param array $items List of menu items | ||||
* | * | ||||
Show All 31 Lines | class Menu extends BaseComponent | ||||
* | * | ||||
* @return array | * @return array | ||||
*/ | */ | ||||
public function elements() | public function elements() | ||||
{ | { | ||||
$selector = $this->selector(); | $selector = $this->selector(); | ||||
return [ | return [ | ||||
'@list' => "$selector .navbar-nav", | '@list' => ".navbar-nav", | ||||
'@brand' => "$selector .navbar-brand", | '@brand' => ".navbar-brand", | ||||
'@toggler' => "$selector .navbar-toggler", | '@toggler' => ".navbar-toggler", | ||||
]; | ]; | ||||
} | } | ||||
} | } |