Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Browser/Components/Dialog.php
- This file was copied from src/tests/Browser/Components/Error.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 Error extends BaseComponent | class Dialog extends BaseComponent | ||||
{ | { | ||||
protected $code; | protected $selector; | ||||
protected $message; | |||||
protected $messages_map = [ | |||||
404 => 'Not Found' | |||||
]; | |||||
public function __construct($code) | public function __construct($selector) | ||||
{ | { | ||||
$this->code = $code; | $this->selector = trim($selector); | ||||
$this->message = $this->messages_map[$code]; | |||||
} | } | ||||
/** | /** | ||||
* 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 '#error-page'; | return $this->selector; | ||||
} | } | ||||
/** | /** | ||||
* 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->waitFor($this->selector()) | $browser->waitFor($this->selector() . '.modal.show'); | ||||
->assertSeeIn('@code', $this->code) | |||||
->assertSeeIn('@message', $this->message); | |||||
} | } | ||||
/** | /** | ||||
* Get the element shortcuts for the component. | * Get the element shortcuts for the component. | ||||
* | * | ||||
* @return array | * @return array | ||||
*/ | */ | ||||
public function elements() | public function elements() | ||||
{ | { | ||||
$selector = $this->selector(); | |||||
return [ | return [ | ||||
'@code' => "$selector .code", | '@title' => '.modal-header .modal-title', | ||||
'@message' => "$selector .message", | '@body' => '.modal-body', | ||||
'@button-action' => '.modal-footer button.modal-action', | |||||
'@button-cancel' => '.modal-footer button.modal-cancel', | |||||
]; | ]; | ||||
} | } | ||||
} | } |