function ExposedFormCheckboxesTest::testExposedIsAllOfFilter
Same name and namespace in other branches
- 11.x core/modules/views/tests/src/Functional/Plugin/ExposedFormCheckboxesTest.php \Drupal\Tests\views\Functional\Plugin\ExposedFormCheckboxesTest::testExposedIsAllOfFilter()
- 10 core/modules/views/tests/src/Functional/Plugin/ExposedFormCheckboxesTest.php \Drupal\Tests\views\Functional\Plugin\ExposedFormCheckboxesTest::testExposedIsAllOfFilter()
- 9 core/modules/views/tests/src/Functional/Plugin/ExposedFormCheckboxesTest.php \Drupal\Tests\views\Functional\Plugin\ExposedFormCheckboxesTest::testExposedIsAllOfFilter()
- main core/modules/views/tests/src/Functional/Plugin/ExposedFormCheckboxesTest.php \Drupal\Tests\views\Functional\Plugin\ExposedFormCheckboxesTest::testExposedIsAllOfFilter()
Tests that "is all of" filters work with checkboxes.
File
-
core/
modules/ views/ tests/ src/ Functional/ Plugin/ ExposedFormCheckboxesTest.php, line 118
Class
- ExposedFormCheckboxesTest
- Tests exposed forms functionality.
Namespace
Drupal\Tests\views\Functional\PluginCode
public function testExposedIsAllOfFilter() {
foreach ([
'Term 1',
'Term 2',
'Term 3',
] as $term_name) {
// Add a few terms to the new vocabulary.
$term = Term::create([
'name' => $term_name,
'vid' => $this->vocabulary
->id(),
]);
$term->save();
$this->terms[] = $term;
}
// Create a field.
$field_name = mb_strtolower($this->randomMachineName());
$handler_settings = [
'target_bundles' => [
$this->vocabulary
->id() => $this->vocabulary
->id(),
],
'auto_create' => FALSE,
];
$this->createEntityReferenceField('node', 'article', $field_name, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED);
// Add some test nodes.
$this->createNode([
'type' => 'article',
$field_name => [
$this->terms[0]
->id(),
$this->terms[1]
->id(),
],
]);
$this->createNode([
'type' => 'article',
$field_name => [
$this->terms[0]
->id(),
$this->terms[2]
->id(),
],
]);
// Use a test theme to convert multi-select elements into checkboxes.
\Drupal::service('theme_installer')->install([
'views_test_checkboxes_theme',
]);
$this->config('system.theme')
->set('default', 'views_test_checkboxes_theme')
->save();
$this->drupalGet('test_exposed_form_checkboxes');
// Ensure that all results are displayed.
$rows = $this->xpath("//div[contains(@class, 'views-row')]");
$this->assertCount(8, $rows, 'All rows are displayed by default on the first page when no options are checked.');
$this->assertNoText('An illegal choice has been detected. Please contact the site administrator.');
// Select one option and ensure we still have results.
$tid = $this->terms[0]
->id();
$this->drupalPostForm(NULL, [
"tid[{$tid}]" => $tid,
], t('Apply'));
// Ensure only nodes tagged with $tid are displayed.
$rows = $this->xpath("//div[contains(@class, 'views-row')]");
$this->assertCount(2, $rows, 'Correct rows are displayed when a tid is selected.');
$this->assertNoText('An illegal choice has been detected. Please contact the site administrator.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.