better_exposed_filters-8.x-4.x-dev/tests/src/Kernel/Plugin/sort/RadioButtonsSortWidgetKernelTest.php
tests/src/Kernel/Plugin/sort/RadioButtonsSortWidgetKernelTest.php
<?php
namespace Drupal\Tests\better_exposed_filters\Kernel\Plugin\sort;
use Drupal\Tests\better_exposed_filters\Kernel\BetterExposedFiltersKernelTestBase;
use Drupal\views\Views;
/**
* Tests the radio buttons sort widget (i.e. "bef").
*
* @group better_exposed_filters
*
* @see \Drupal\better_exposed_filters\Plugin\better_exposed_filters\sort\RadioButtons
*/
class RadioButtonsSortWidgetKernelTest extends BetterExposedFiltersKernelTestBase {
/**
* {@inheritdoc}
*/
public static $testViews = ['bef_test'];
/**
* Tests the exposed radio buttons sort widget.
*/
public function testExposedRadioButtons() {
$view = Views::getView('bef_test');
$display = &$view->storage->getDisplay('default');
// Change exposed sort to radio buttons (i.e. 'bef').
$this->setBetterExposedOptions($view, [
'sort' => [
'plugin_id' => 'bef',
],
]);
// Render the exposed form.
$this->renderExposedForm($view);
// Check our sort item "sort_by" is rendered as links.
$actual = $this->xpath('//form//input[@type="radio" and starts-with(@id, "edit-sort-by")]');
$this->assertCount(1, $actual, 'Exposed sort "sort_by" has correct number of exposed radio buttons.');
// Check our sort item "sort_order" is rendered as links.
$actual = $this->xpath('//form//input[@type="radio" and starts-with(@id, "edit-sort-order")]');
$this->assertCount(2, $actual, 'Exposed sort "sort_order" has correct number of exposed radio buttons.');
$view->destroy();
}
}
