3 namespace Drupal\Tests\views_ui\FunctionalJavascript;
5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
8 * Tests the JavaScript filtering of options in add handler form.
12 class FilterOptionsTest extends JavascriptTestBase {
17 public static $modules = ['node', 'views', 'views_ui', 'views_ui_test_field'];
22 public function setUp() {
25 $admin_user = $this->drupalCreateUser([
28 $this->drupalLogin($admin_user);
32 * Tests filtering options in the 'Add fields' dialog.
34 public function testFilterOptionsAddFields() {
35 $this->drupalGet('admin/structure/views/view/content');
37 $session = $this->getSession();
38 $web_assert = $this->assertSession();
39 $page = $session->getPage();
42 $page->clickLink('views-add-field');
44 // Wait for the popup to open and the search field to be available.
45 $options_search = $web_assert->waitForField('override[controls][options_search]');
47 // Test that the both special fields are visible.
48 $this->assertTrue($page->findField('name[views.views_test_field_1]')->isVisible());
49 $this->assertTrue($page->findField('name[views.views_test_field_2]')->isVisible());
51 // Test the ".title" field in search.
52 $options_search->setValue('FIELD_1_TITLE');
53 $page->waitFor(10, function () use ($page) {
54 return !$page->findField('name[views.views_test_field_2]')->isVisible();
56 $this->assertTrue($page->findField('name[views.views_test_field_1]')->isVisible());
57 $this->assertFalse($page->findField('name[views.views_test_field_2]')->isVisible());
59 // Test the ".description" field in search.
60 $options_search->setValue('FIELD_2_DESCRIPTION');
61 $page->waitFor(10, function () use ($page) {
62 return !$page->findField('name[views.views_test_field_1]')->isVisible();
64 $this->assertTrue($page->findField('name[views.views_test_field_2]')->isVisible());
65 $this->assertFalse($page->findField('name[views.views_test_field_1]')->isVisible());
67 // Test the "label" field not in search.
68 $options_search->setValue('FIELD_1_LABEL');
69 $page->waitFor(10, function () use ($page) {
70 return !$page->findField('name[views.views_test_field_2]')->isVisible();
72 $this->assertFalse($page->findField('name[views.views_test_field_2]')->isVisible());
73 $this->assertFalse($page->findField('name[views.views_test_field_1]')->isVisible());