public function FilterCriteriaTest::testOperatorLabels in Drupal 9
Tests operator labels.
File
- core/
modules/ views_ui/ tests/ src/ FunctionalJavascript/ FilterCriteriaTest.php, line 131
Class
- FilterCriteriaTest
- Tests the View UI filter criteria group dialog.
Namespace
Drupal\Tests\views_ui\FunctionalJavascriptCode
public function testOperatorLabels() {
// Open the "Frontpage" view.
$this
->drupalGet('admin/structure/views/view/frontpage');
$session = $this
->getSession();
$page = $session
->getPage();
// Open the "Rearrange filter criteria" dialog.
$this
->openFilterDialog();
// Get the last filter on the list.
$row = $page
->findAll('css', '.draggable');
$row_count = count($row);
$last_row = array_pop($row);
$penultimate_row = array_pop($row);
// Drag the last row before the penultimate row.
$drag_handle = $last_row
->find('css', '.tabledrag-handle');
$drag_handle
->dragTo($penultimate_row);
// Assert there are valid number of visible operator labels.
$operator_label = $page
->findAll('css', '.views-operator-label');
$this
->assertEquals($row_count - 1, count($operator_label), 'There are valid number of operator labels after drag.');
// Get the last filter on the rearranged list.
$row = $page
->findAll('css', '.draggable');
$last_row = array_pop($row);
$penultimate_row = array_pop($row);
// Assert the operator label in the penultimate row is shown.
$operator_label = $penultimate_row
->find('css', '.views-operator-label');
$this
->assertTrue($operator_label
->isVisible(), 'Operator label in the penultimate row is not visible after drag.');
// Assert the operator label in the last row is not shown.
$operator_label = $last_row
->find('css', '.views-operator-label');
$this
->assertNull($operator_label, 'Operator label in the last row is not visible after drag.');
// Remove the last filter.
$remove_link = $last_row
->find('css', '.views-remove-link');
$remove_link
->click();
// The current last filter shouldn't have the operator label.
$operator_label = $penultimate_row
->find('css', '.views-operator-label');
$this
->assertNull($operator_label, 'The penultimate filter has no operator label after the last filter is removed.');
}