Tests: Add couple of HTML editor tests (including bug #7230)
parent
38d6659384
commit
80a244756d
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Browser\Components;
|
||||
|
||||
use App;
|
||||
use Tests\Browser\Browser;
|
||||
use Laravel\Dusk\Component;
|
||||
|
||||
class HtmlEditor extends Component
|
||||
{
|
||||
const MODE_PLAIN = 'plain';
|
||||
const MODE_HTML = 'html';
|
||||
|
||||
public $id;
|
||||
|
||||
/**
|
||||
* Class constructor
|
||||
*/
|
||||
public function __construct($id)
|
||||
{
|
||||
$this->id = trim($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the root selector for the component.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function selector()
|
||||
{
|
||||
return '#' . $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert that the browser page contains the component.
|
||||
*
|
||||
* @param Browser $browser
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function assert($browser)
|
||||
{
|
||||
$browser->waitFor($this->selector() . '.html-editor');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the element shortcuts for the component.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function elements()
|
||||
{
|
||||
return [
|
||||
'@plain-toolbar' => '.editor-toolbar',
|
||||
'@plain-body' => 'textarea',
|
||||
'@html-editor' => '.mce-tinymce',
|
||||
'@html-toolbar' => '.mce-tinymce .mce-toolbar',
|
||||
'@html-body' => 'iframe',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert editor mode
|
||||
*/
|
||||
public function assertMode($browser, $mode)
|
||||
{
|
||||
if ($mode == self::MODE_PLAIN) {
|
||||
$browser->assertVisible('@plain-toolbar')
|
||||
->assertMissing('@html-body');
|
||||
}
|
||||
else {
|
||||
$browser->assertMissing('@plain-toolbar')
|
||||
->assertVisible('@html-body');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch editor mode
|
||||
*/
|
||||
public function switchMode($browser, $mode, $accept_warning = false)
|
||||
{
|
||||
if ($mode == self::MODE_HTML) {
|
||||
$browser->click('@plain-toolbar a.mce-i-html');
|
||||
if ($accept_warning) {
|
||||
$browser->waitForDialog()->acceptDialog();
|
||||
}
|
||||
$browser->waitFor('@html-body');
|
||||
}
|
||||
else {
|
||||
$browser->click('@html-toolbar .mce-i-plaintext');
|
||||
if ($accept_warning) {
|
||||
$browser->waitForDialog()->acceptDialog();
|
||||
}
|
||||
$browser->waitFor('@plain-body');
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue