
| Current Path : /var/www/html/dataninja.cn/core/modules/views/tests/src/Kernel/Handler/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/dataninja.cn/core/modules/views/tests/src/Kernel/Handler/SortTest.php |
<?php
namespace Drupal\Tests\views\Kernel\Handler;
use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
use Drupal\views\Views;
/**
* Tests for core Drupal\views\Plugin\views\sort\SortPluginBase handler.
*
* @group views
*/
class SortTest extends ViewsKernelTestBase {
/**
* Views used by this test.
*
* @var array
*/
public static $testViews = ['test_view'];
/**
* Tests numeric ordering of the result set.
*/
public function testNumericOrdering() {
$view = Views::getView('test_view');
$view->setDisplay();
// Change the ordering
$view->displayHandlers->get('default')->overrideOption('sorts', [
'age' => [
'order' => 'ASC',
'id' => 'age',
'table' => 'views_test_data',
'field' => 'age',
'relationship' => 'none',
],
]);
// Execute the view.
$this->executeView($view);
// Verify the result.
$this->assertEqual(count($this->dataSet()), count($view->result), 'The number of returned rows match.');
$this->assertIdenticalResultset($view, $this->orderResultSet($this->dataSet(), 'age'), [
'views_test_data_name' => 'name',
'views_test_data_age' => 'age',
]);
$view->destroy();
$view->setDisplay();
// Reverse the ordering
$view->displayHandlers->get('default')->overrideOption('sorts', [
'age' => [
'order' => 'DESC',
'id' => 'age',
'table' => 'views_test_data',
'field' => 'age',
'relationship' => 'none',
],
]);
// Execute the view.
$this->executeView($view);
// Verify the result.
$this->assertEqual(count($this->dataSet()), count($view->result), 'The number of returned rows match.');
$this->assertIdenticalResultset($view, $this->orderResultSet($this->dataSet(), 'age', TRUE), [
'views_test_data_name' => 'name',
'views_test_data_age' => 'age',
]);
}
/**
* Tests string ordering of the result set.
*/
public function testStringOrdering() {
$view = Views::getView('test_view');
$view->setDisplay();
// Change the ordering
$view->displayHandlers->get('default')->overrideOption('sorts', [
'name' => [
'order' => 'ASC',
'id' => 'name',
'table' => 'views_test_data',
'field' => 'name',
'relationship' => 'none',
],
]);
// Execute the view.
$this->executeView($view);
// Verify the result.
$this->assertEqual(count($this->dataSet()), count($view->result), 'The number of returned rows match.');
$this->assertIdenticalResultset($view, $this->orderResultSet($this->dataSet(), 'name'), [
'views_test_data_name' => 'name',
'views_test_data_age' => 'age',
]);
$view->destroy();
$view->setDisplay();
// Reverse the ordering
$view->displayHandlers->get('default')->overrideOption('sorts', [
'name' => [
'order' => 'DESC',
'id' => 'name',
'table' => 'views_test_data',
'field' => 'name',
'relationship' => 'none',
],
]);
// Execute the view.
$this->executeView($view);
// Verify the result.
$this->assertEqual(count($this->dataSet()), count($view->result), 'The number of returned rows match.');
$this->assertIdenticalResultset($view, $this->orderResultSet($this->dataSet(), 'name', TRUE), [
'views_test_data_name' => 'name',
'views_test_data_age' => 'age',
]);
}
}