FilterOptionsTest.php

Same filename in other branches
  1. 9 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php
  2. 10 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php
  3. 11.x core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php

Namespace

Drupal\Tests\views_ui\FunctionalJavascript

File

core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php

View source
<?php

namespace Drupal\Tests\views_ui\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Tests the JavaScript filtering of options in add handler form.
 *
 * @group views_ui
 */
class FilterOptionsTest extends WebDriverTestBase {
    
    /**
     * {@inheritdoc}
     */
    public static $modules = [
        'node',
        'views',
        'views_ui',
        'views_ui_test_field',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    public function setUp() {
        parent::setUp();
        $admin_user = $this->drupalCreateUser([
            'administer views',
        ]);
        $this->drupalLogin($admin_user);
    }
    
    /**
     * Tests filtering options in the 'Add fields' dialog.
     */
    public function testFilterOptionsAddFields() {
        $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());
    }

}

Classes

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

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