DurationElementStatesTest.php in Duration Field 8.2
File
tests/src/FunctionalJavascript/DurationElementStatesTest.php
View source
<?php
namespace Drupal\Tests\duration_field\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class DurationElementStatesTest extends WebDriverTestBase {
protected static $modules = [
'system',
'user',
'duration_field',
'duration_field_form_test',
];
protected $defaultTheme = 'stark';
protected $testUser;
protected function setUp() {
parent::setUp();
$this->testUser = $this
->createUser();
$this
->drupalLogin($this->testUser);
}
public function testDurationStates() {
$this
->drupalGet('/duration-field-form-test/duration-element-states');
$page = $this
->getSession()
->getPage();
$assert_session = $this
->assertSession();
$trigger = $page
->findField('checkbox_trigger');
$this
->assertNotEmpty($trigger);
$duration_invisible_element = $assert_session
->elementExists('css', 'form div.js-form-item-duration-invisible-when-checkbox-trigger-checked');
$duration_invisible_element_label = $assert_session
->elementExists('css', 'form div.js-form-item-duration-invisible-when-checkbox-trigger-checked label');
$duration_invisible_element_days = $page
->findField('duration_invisible_when_checkbox_trigger_checked[d]');
$duration_invisible_element_hours = $page
->findField('duration_invisible_when_checkbox_trigger_checked[h]');
$duration_invisible_element_seconds = $page
->findField('duration_invisible_when_checkbox_trigger_checked[s]');
$this
->assertTrue($duration_invisible_element
->isVisible());
$this
->assertTrue($duration_invisible_element_label
->isVisible());
$this
->assertTrue($duration_invisible_element_days
->isVisible());
$this
->assertTrue($duration_invisible_element_hours
->isVisible());
$this
->assertTrue($duration_invisible_element_seconds
->isVisible());
$trigger
->check();
$this
->assertFalse($duration_invisible_element
->isVisible());
$this
->assertFalse($duration_invisible_element_label
->isVisible());
$this
->assertFalse($duration_invisible_element_days
->isVisible());
$this
->assertFalse($duration_invisible_element_hours
->isVisible());
$this
->assertFalse($duration_invisible_element_seconds
->isVisible());
}
}