ContextualFilterTest.php in Drupal 9
File
core/modules/views/tests/src/FunctionalJavascript/Plugin/views/Handler/ContextualFilterTest.php
View source
<?php
namespace Drupal\Tests\views\FunctionalJavascript\Plugin\views\Handler;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\views\Tests\ViewTestData;
class ContextualFilterTest extends WebDriverTestBase {
protected static $modules = [
'node',
'views',
'views_ui',
'views_test_config',
];
protected $defaultTheme = 'stark';
public static $testViews = [
'test_field_body',
];
protected function setUp() : void {
parent::setUp();
ViewTestData::createTestViews(static::class, [
'views_test_config',
]);
\Drupal::configFactory()
->getEditable('views.settings')
->set('ui.show.advanced_column', TRUE)
->save();
\Drupal::configFactory()
->getEditable('views.settings')
->set('ui.always_live_preview', FALSE)
->save();
$account = $this
->drupalCreateUser([
'administer views',
]);
$this
->drupalLogin($account);
}
public function testAddContextualFilterUI() {
$this
->drupalGet('/admin/structure/views/view/test_field_body');
$web_assert = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$page
->clickLink('views-add-argument');
$field = $web_assert
->waitForField('name[node_field_data.nid]');
$this
->assertNotEmpty($field);
$field
->check();
$add_button = $page
->find('css', '.ui-dialog-buttonset .button--primary');
$add_button
->click();
$field_action = $web_assert
->waitForField('options[default_action]');
$this
->assertNotEmpty($field_action);
$field_action
->setValue('default');
$page
->selectFieldOption('options[default_argument_type]', 'node');
$add_button = $page
->find('css', '.ui-dialog-buttonset .button--primary');
$add_button
->click();
$page
->waitFor(10, function () use ($page) {
$field = $page
->find('css', '.ui-dialog-buttonset .button--primary');
return empty($field);
});
$page
->pressButton('edit-actions-submit');
$page
->clickLink('Content: ID');
$field_action = $web_assert
->waitForField('options[default_action]');
$this
->assertNotEmpty($field_action);
}
}