
| Current Path : /var/www/html1/web/core/modules/views/tests/src/Unit/Plugin/argument_default/ |
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/html1/web/core/modules/views/tests/src/Unit/Plugin/argument_default/QueryParameterTest.php |
<?php
namespace Drupal\Tests\views\Unit\Plugin\argument_default;
use Drupal\Tests\UnitTestCase;
use Drupal\views\Plugin\views\argument_default\QueryParameter;
use Symfony\Component\HttpFoundation\Request;
/**
* @coversDefaultClass \Drupal\views\Plugin\views\argument_default\QueryParameter
* @group views
*/
class QueryParameterTest extends UnitTestCase {
/**
* Test the getArgument() method.
*
* @covers ::getArgument
* @dataProvider providerGetArgument
*/
public function testGetArgument($options, Request $request, $expected) {
$view = $this->getMockBuilder('Drupal\views\ViewExecutable')
->disableOriginalConstructor()
->setMethods(NULL)
->getMock();
$view->setRequest($request);
$display_plugin = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
->disableOriginalConstructor()
->getMock();
$raw = new QueryParameter([], 'query_parameter', []);
$raw->init($view, $display_plugin, $options);
$this->assertEquals($expected, $raw->getArgument());
}
/**
* Provides data for testGetArgument().
*
* @return array
* An array of test data, with the following entries:
* - first entry: the options for the plugin.
* - second entry: the request object to test with.
* - third entry: the expected default argument value.
*/
public function providerGetArgument() {
$data = [];
$data[] = [
['query_param' => 'test'],
new Request(['test' => 'data']),
'data',
];
$data[] = [
['query_param' => 'test', 'multiple' => 'and'],
new Request(['test' => ['data1', 'data2']]),
'data1,data2',
];
$data[] = [
['query_param' => 'test', 'multiple' => 'or'],
new Request(['test' => ['data1', 'data2']]),
'data1+data2',
];
$data[] = [
['query_param' => 'test', 'fallback' => 'blub'],
new Request([]),
'blub',
];
return $data;
}
}