32b1a400cb7b9fcc3aecd14343f07163f3e081bb
[yaffs-website] / web / core / modules / views_ui / tests / src / FunctionalJavascript / FilterOptionsTest.php
1 <?php
2
3 namespace Drupal\Tests\views_ui\FunctionalJavascript;
4
5 use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
6
7 /**
8  * Tests the JavaScript filtering of options in add handler form.
9  *
10  * @group views_ui
11  */
12 class FilterOptionsTest extends JavascriptTestBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public static $modules = ['node', 'views', 'views_ui', 'views_ui_test_field'];
18
19   /**
20    * {@inheritdoc}
21    */
22   public function setUp() {
23     parent::setUp();
24
25     $admin_user = $this->drupalCreateUser([
26       'administer views',
27     ]);
28     $this->drupalLogin($admin_user);
29   }
30
31   /**
32    * Tests filtering options in the 'Add fields' dialog.
33    */
34   public function testFilterOptionsAddFields() {
35     $this->drupalGet('admin/structure/views/view/content');
36
37     $session = $this->getSession();
38     $web_assert = $this->assertSession();
39     $page = $session->getPage();
40
41     // Open the dialog.
42     $page->clickLink('views-add-field');
43
44     // Wait for the popup to open and the search field to be available.
45     $options_search = $web_assert->waitForField('override[controls][options_search]');
46
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());
50
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();
55     });
56     $this->assertTrue($page->findField('name[views.views_test_field_1]')->isVisible());
57     $this->assertFalse($page->findField('name[views.views_test_field_2]')->isVisible());
58
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();
63     });
64     $this->assertTrue($page->findField('name[views.views_test_field_2]')->isVisible());
65     $this->assertFalse($page->findField('name[views.views_test_field_1]')->isVisible());
66
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();
71     });
72     $this->assertFalse($page->findField('name[views.views_test_field_2]')->isVisible());
73     $this->assertFalse($page->findField('name[views.views_test_field_1]')->isVisible());
74   }
75
76 }