3 namespace Drupal\Tests\views\Unit\Plugin\argument_default;
5 use Drupal\Tests\UnitTestCase;
6 use Drupal\views\Plugin\views\argument_default\QueryParameter;
7 use Symfony\Component\HttpFoundation\Request;
10 * @coversDefaultClass \Drupal\views\Plugin\views\argument_default\QueryParameter
13 class QueryParameterTest extends UnitTestCase {
16 * Test the getArgument() method.
18 * @covers ::getArgument
19 * @dataProvider providerGetArgument
21 public function testGetArgument($options, Request $request, $expected) {
22 $view = $this->getMockBuilder('Drupal\views\ViewExecutable')
23 ->disableOriginalConstructor()
26 $view->setRequest($request);
27 $display_plugin = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
28 ->disableOriginalConstructor()
31 $raw = new QueryParameter([], 'query_parameter', []);
32 $raw->init($view, $display_plugin, $options);
33 $this->assertEquals($expected, $raw->getArgument());
37 * Provides data for testGetArgument().
40 * An array of test data, with the following entries:
41 * - first entry: the options for the plugin.
42 * - second entry: the request object to test with.
43 * - third entry: the expected default argument value.
45 public function providerGetArgument() {
49 ['query_param' => 'test'],
50 new Request(['test' => 'data']),
55 ['query_param' => 'test', 'multiple' => 'and'],
56 new Request(['test' => ['data1', 'data2']]),
61 ['query_param' => 'test', 'multiple' => 'or'],
62 new Request(['test' => ['data1', 'data2']]),
67 ['query_param' => 'test', 'fallback' => 'blub'],