+++ /dev/null
-<?php
-
-namespace Drupal\system\Tests\Form;
-
-use Drupal\Component\Utility\SafeMarkup;
-use Drupal\simpletest\WebTestBase;
-use Drupal\Component\Serialization\Json;
-
-/**
- * Tests the vertical_tabs form element for expected behavior.
- *
- * @group Form
- */
-class ElementsVerticalTabsTest extends WebTestBase {
-
- /**
- * Modules to enable.
- *
- * @var array
- */
- public static $modules = ['form_test'];
-
- /**
- * A user with permission to access vertical_tab_test_tabs.
- *
- * @var \Drupal\user\UserInterface
- */
- protected $adminUser;
-
- /**
- * A normal user.
- *
- * @var \Drupal\user\UserInterface
- */
- protected $webUser;
-
- protected function setUp() {
- parent::setUp();
-
- $this->adminUser = $this->drupalCreateUser(['access vertical_tab_test tabs']);
- $this->webUser = $this->drupalCreateUser();
- $this->drupalLogin($this->adminUser);
- }
-
- /**
- * Ensures that vertical-tabs.js is included before collapse.js.
- *
- * Otherwise, collapse.js adds "SHOW" or "HIDE" labels to the tabs.
- */
- public function testJavaScriptOrdering() {
- $this->drupalGet('form_test/vertical-tabs');
- $position1 = strpos($this->content, 'core/misc/vertical-tabs.js');
- $position2 = strpos($this->content, 'core/misc/collapse.js');
- $this->assertTrue($position1 !== FALSE && $position2 !== FALSE && $position1 < $position2, 'vertical-tabs.js is included before collapse.js');
- }
-
- /**
- * Ensures that vertical tab markup is not shown if user has no tab access.
- */
- public function testWrapperNotShownWhenEmpty() {
- // Test admin user can see vertical tabs and wrapper.
- $this->drupalGet('form_test/vertical-tabs');
- $wrapper = $this->xpath("//div[@data-vertical-tabs-panes]");
- $this->assertTrue(isset($wrapper[0]), 'Vertical tab panes found.');
-
- // Test wrapper markup not present for non-privileged web user.
- $this->drupalLogin($this->webUser);
- $this->drupalGet('form_test/vertical-tabs');
- $wrapper = $this->xpath("//div[@data-vertical-tabs-panes]");
- $this->assertFalse(isset($wrapper[0]), 'Vertical tab wrappers are not displayed to unprivileged users.');
- }
-
- /**
- * Ensures that default vertical tab is correctly selected.
- */
- public function testDefaultTab() {
- $this->drupalGet('form_test/vertical-tabs');
- $this->assertFieldByName('vertical_tabs__active_tab', 'edit-tab3', t('The default vertical tab is correctly selected.'));
- }
-
- /**
- * Ensures that vertical tab form values are cleaned.
- */
- public function testDefaultTabCleaned() {
- $values = Json::decode($this->drupalPostForm('form_test/form-state-values-clean', [], t('Submit')));
- $this->assertFalse(isset($values['vertical_tabs__active_tab']), SafeMarkup::format('%element was removed.', ['%element' => 'vertical_tabs__active_tab']));
- }
-
-}