You are here

class FilterOptionsTest in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php \Drupal\Tests\views_ui\FunctionalJavascript\FilterOptionsTest
  2. 9 core/modules/views_ui/tests/src/FunctionalJavascript/FilterOptionsTest.php \Drupal\Tests\views_ui\FunctionalJavascript\FilterOptionsTest

Tests the JavaScript filtering of options in add handler form.

@group views_ui

Hierarchy

Expanded class hierarchy of FilterOptionsTest

File

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

Namespace

Drupal\Tests\views_ui\FunctionalJavascript
View source
class FilterOptionsTest extends WebDriverTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'node',
    'views',
    'views_ui',
    'views_ui_test_field',
  ];

  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';

  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    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());
  }

}

Members