function FilterOptionsTest::testFilterOptionsAddFields

Same name and namespace in other branches
  1. 9 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php \Drupal\Tests\views_ui\FunctionalJavascript\FilterOptionsTest::testFilterOptionsAddFields()
  2. 8.9.x core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php \Drupal\Tests\views_ui\FunctionalJavascript\FilterOptionsTest::testFilterOptionsAddFields()
  3. 10 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php \Drupal\Tests\views_ui\FunctionalJavascript\FilterOptionsTest::testFilterOptionsAddFields()

Tests filtering options in the 'Add fields' dialog.

File

core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php, line 46

Class

FilterOptionsTest
Tests the JavaScript filtering of options in add handler form.

Namespace

Drupal\Tests\views_ui\FunctionalJavascript

Code

public function testFilterOptionsAddFields() : void {
    $this->drupalGet('admin/structure/views/view/content');
    $session = $this->getSession();
    $web_assert = $this->assertSession();
    $page = $session->getPage();
    // Open the dialog.
    $page->clickLink('views-add-field');
    // Wait for the popup to open and the search field to be available.
    $options_search = $web_assert->waitForField('override[controls][options_search]');
    // Test that the both special fields are visible.
    $this->assertTrue($page->findField('name[views.views_test_field_1]')
        ->isVisible());
    $this->assertTrue($page->findField('name[views.views_test_field_2]')
        ->isVisible());
    // Test the ".title" field in search.
    $options_search->setValue('FIELD_1_TITLE');
    $page->waitFor(10, function () use ($page) {
        return !$page->findField('name[views.views_test_field_2]')
            ->isVisible();
    });
    $this->assertTrue($page->findField('name[views.views_test_field_1]')
        ->isVisible());
    $this->assertFalse($page->findField('name[views.views_test_field_2]')
        ->isVisible());
    // Test the ".description" field in search.
    $options_search->setValue('FIELD_2_DESCRIPTION');
    $page->waitFor(10, function () use ($page) {
        return !$page->findField('name[views.views_test_field_1]')
            ->isVisible();
    });
    $this->assertTrue($page->findField('name[views.views_test_field_2]')
        ->isVisible());
    $this->assertFalse($page->findField('name[views.views_test_field_1]')
        ->isVisible());
    // Test the "label" field not in search.
    $options_search->setValue('FIELD_1_LABEL');
    $page->waitFor(10, function () use ($page) {
        return !$page->findField('name[views.views_test_field_2]')
            ->isVisible();
    });
    $this->assertFalse($page->findField('name[views.views_test_field_2]')
        ->isVisible());
    $this->assertFalse($page->findField('name[views.views_test_field_1]')
        ->isVisible());
}

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