ElementsVerticalTabsTest.php in Drupal 9
File
core/modules/system/tests/src/Functional/Form/ElementsVerticalTabsTest.php
View source
<?php
namespace Drupal\Tests\system\Functional\Form;
use Drupal\Component\Render\FormattableMarkup;
use Drupal\Component\Serialization\Json;
use Drupal\Tests\BrowserTestBase;
class ElementsVerticalTabsTest extends BrowserTestBase {
protected static $modules = [
'form_test',
];
protected $defaultTheme = 'stark';
protected $adminUser;
protected $webUser;
protected function setUp() : void {
parent::setUp();
$this->adminUser = $this
->drupalCreateUser([
'access vertical_tab_test tabs',
]);
$this->webUser = $this
->drupalCreateUser();
$this
->drupalLogin($this->adminUser);
}
public function testJavaScriptOrdering() {
$this
->drupalGet('form_test/vertical-tabs');
$content = $this
->getSession()
->getPage()
->getContent();
$position1 = strpos($content, 'core/misc/vertical-tabs.js');
$position2 = strpos($content, 'core/misc/collapse.js');
$this
->assertNotFalse($position1);
$this
->assertNotFalse($position2);
$this
->assertGreaterThan($position1, $position2, 'vertical-tabs.js is included before collapse.js');
}
public function testWrapperNotShownWhenEmpty() {
$this
->drupalGet('form_test/vertical-tabs');
$this
->assertSession()
->elementExists('xpath', "//div[@data-vertical-tabs-panes]");
$this
->drupalLogin($this->webUser);
$this
->drupalGet('form_test/vertical-tabs');
$this
->assertSession()
->elementNotExists('xpath', "//div[@data-vertical-tabs-panes]");
}
public function testDefaultTab() {
$this
->drupalGet('form_test/vertical-tabs');
$this
->assertSession()
->elementAttributeContains('css', 'input[name="vertical_tabs__active_tab"]', 'value', 'edit-tab3');
}
public function testDefaultTabCleaned() {
$this
->drupalGet('form_test/form-state-values-clean');
$this
->submitForm([], 'Submit');
$values = Json::decode($this
->getSession()
->getPage()
->getContent());
$this
->assertFalse(isset($values['vertical_tabs__active_tab']), new FormattableMarkup('%element was removed.', [
'%element' => 'vertical_tabs__active_tab',
]));
}
}