function ClaroViewsUiTest::testViewsUiDropButtonCssClasses

Same name in other branches
  1. 9 core/tests/Drupal/FunctionalJavascriptTests/Theme/ClaroViewsUiTest.php \Drupal\FunctionalJavascriptTests\Theme\ClaroViewsUiTest::testViewsUiDropButtonCssClasses()
  2. 8.9.x core/tests/Drupal/FunctionalJavascriptTests/Theme/ClaroViewsUiTest.php \Drupal\FunctionalJavascriptTests\Theme\ClaroViewsUiTest::testViewsUiDropButtonCssClasses()
  3. 11.x core/tests/Drupal/FunctionalJavascriptTests/Theme/ClaroViewsUiTest.php \Drupal\FunctionalJavascriptTests\Theme\ClaroViewsUiTest::testViewsUiDropButtonCssClasses()

Tests Views UI dropbutton CSS classes.

Ensures that the CSS classes added to the Views UI extra actions dropbutton in .views-display-top are preserved when Views UI is refreshed with AJAX.

File

core/tests/Drupal/FunctionalJavascriptTests/Theme/ClaroViewsUiTest.php, line 72

Class

ClaroViewsUiTest
Runs tests on Views UI using Claro.

Namespace

Drupal\FunctionalJavascriptTests\Theme

Code

public function testViewsUiDropButtonCssClasses() : void {
    $this->drupalGet('admin/structure/views/view/who_s_online');
    $assert_session = $this->assertSession();
    $extra_actions_dropbutton_list = $assert_session->elementExists('css', '#views-display-extra-actions.dropbutton--small');
    $list_item_selectors = [
        'li:first-child',
        'li:last-child',
    ];
    // Test list item CSS classes.
    foreach ($list_item_selectors as $list_item_selector) {
        $this->assertNotNull($extra_actions_dropbutton_list->find('css', "{$list_item_selector}.dropbutton__item"));
    }
    // Click on the Display name and wait for the Views UI dialog.
    $assert_session->elementExists('css', '#edit-display-settings-top .views-display-setting a')
        ->click();
    $this->assertNotNull($this->assertSession()
        ->waitForElement('css', '.js-views-ui-dialog'));
    // Click the Apply button of the dialog.
    $assert_session->elementExists('css', '.js-views-ui-dialog .ui-dialog-buttonpane')
        ->findButton('Apply')
        ->press();
    // Wait for AJAX to finish.
    $this->assertSession()
        ->assertWaitOnAjaxRequest();
    // Check that the drop button list still has the expected CSS classes.
    $this->assertTrue($extra_actions_dropbutton_list->hasClass('dropbutton--small'));
    // Check list item CSS classes.
    foreach ($list_item_selectors as $list_item_selector) {
        $this->assertNotNull($extra_actions_dropbutton_list->find('css', "{$list_item_selector}.dropbutton__item"));
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.