getEditable('views.settings')->set('ui.always_live_preview', FALSE)->save(); $this->account = $this->drupalCreateUser(['administer views']); $this->drupalLogin($this->account); // Setup a node type that has the right fields for the test view. NodeType::create([ 'type' => 'page', ])->save(); FieldConfig::create([ 'entity_type' => 'node', 'field_name' => 'body', 'bundle' => 'page', ])->save(); } /** * Test if the right fields are shown and the right values set. */ public function testGroupedFilterValuesUI() { $web_assert = $this->assertSession(); $this->drupalGet('/admin/structure/views/view/test_exposed_admin_ui'); $page = $this->getSession()->getPage(); // Open the dialog for the grouped filter. $page->clickLink('Content: Authored on (grouped)'); $web_assert->assertWaitOnAjaxRequest(); // Test that the 'min' field is shown and that it contains the right value. $between_from = $page->findField('options[group_info][group_items][1][value][min]'); $this->assertNotEmpty($between_from->isVisible()); $this->assertEquals('2015-01-01', $between_from->getValue()); // Test that the 'max' field is shown and that it contains the right value. $between_to = $page->findField('options[group_info][group_items][1][value][max]'); $this->assertNotEmpty($between_to->isVisible()); $this->assertEquals('2016-01-01', $between_to->getValue()); $weight = $page->findField('options[group_info][group_items][1][weight]'); // If there are 3 items, values from -3 to 3 should be available. $this->assertFalse($weight->find('named', ['option', -4])); foreach (range(-3, 3) as $value) { $this->assertTrue($weight->find('named', ['option', $value])); } $this->assertFalse($weight->find('named', ['option', 4])); $page->pressButton("Add another item"); $web_assert->waitForField('options[group_info][group_items][4][title]'); // A new items was added, weight options should now be -4 to 4. $this->assertFalse($weight->find('named', ['option', -5])); foreach (range(-4, 4) as $value) { $this->assertTrue($weight->find('named', ['option', $value])); } $this->assertFalse($weight->find('named', ['option', 5])); } }