better_exposed_filters-8.x-4.x-dev/tests/src/Kernel/Plugin/filter/HiddenFilterWidgetKernelTest.php
tests/src/Kernel/Plugin/filter/HiddenFilterWidgetKernelTest.php
<?php namespace Drupal\Tests\better_exposed_filters\Kernel\Plugin\filter; use Drupal\Tests\better_exposed_filters\Kernel\BetterExposedFiltersKernelTestBase; use Drupal\views\Views; /** * Tests the options of a hidden filter widget. * * @group better_exposed_filters * * @see \Drupal\better_exposed_filters\Plugin\better_exposed_filters\filter\FilterWidgetBase */ class HiddenFilterWidgetKernelTest extends BetterExposedFiltersKernelTestBase { /** * {@inheritdoc} */ public static $testViews = ['bef_test']; /** * Tests hiding element with single option. */ public function testSingleExposedHiddenElement() { $view = Views::getView('bef_test'); $display = &$view->storage->getDisplay('default'); // Change exposed filter "field_bef_boolean" to hidden (i.e. 'bef_hidden'). $this->setBetterExposedOptions($view, [ 'filter' => [ 'field_bef_boolean_value' => [ 'plugin_id' => 'bef_hidden', ], ], ]); // Render the exposed form. $this->renderExposedForm($view); // Check our "FIELD_BEF_BOOLEAN" filter is rendered as a hidden element. $actual = $this->xpath('//form//input[@type="hidden" and starts-with(@name, "field_bef_boolean_value")]'); $this->assertCount(1, $actual, 'Exposed filter "FIELD_BEF_BOOLEAN" is hidden.'); $view->destroy(); } /** * Tests hiding element with multiple options. */ public function testMultipleExposedHiddenElement() { $view = Views::getView('bef_test'); $display = &$view->storage->getDisplay('default'); // Set filter to "multiple". $display['display_options']['filters']['field_bef_integer_value']['expose']['multiple'] = TRUE; // Change exposed filter "field_bef_integer" to hidden (i.e. 'bef_hidden'). $this->setBetterExposedOptions($view, [ 'filter' => [ 'field_bef_integer_value' => [ 'plugin_id' => 'bef_hidden', ], ], ]); // Render the exposed form. $this->renderExposedForm($view); // Check our "FIELD_BEF_INTEGER" filter is rendered as a hidden element. $actual = $this->xpath('//form//label[@type="label" and starts-with(@for, "edit-field-bef-integer-value")]'); $this->assertCount(0, $actual, 'Exposed filter "FIELD_BEF_INTEGER" is hidden.'); $actual = $this->xpath('//form//input[@type="hidden" and starts-with(@name, "field_bef_integer_value")]'); $this->assertCount(0, $actual, 'Exposed filter "FIELD_BEF_INTEGER" has no selected values.'); } }