Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / views / tests / src / Unit / Plugin / argument_default / QueryParameterTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Unit\Plugin\argument_default;
4
5 use Drupal\Tests\UnitTestCase;
6 use Drupal\views\Plugin\views\argument_default\QueryParameter;
7 use Symfony\Component\HttpFoundation\Request;
8
9 /**
10  * @coversDefaultClass \Drupal\views\Plugin\views\argument_default\QueryParameter
11  * @group views
12  */
13 class QueryParameterTest extends UnitTestCase {
14
15   /**
16    * Test the getArgument() method.
17    *
18    * @covers ::getArgument
19    * @dataProvider providerGetArgument
20    */
21   public function testGetArgument($options, Request $request, $expected) {
22     $view = $this->getMockBuilder('Drupal\views\ViewExecutable')
23       ->disableOriginalConstructor()
24       ->setMethods(NULL)
25       ->getMock();
26     $view->setRequest($request);
27     $display_plugin = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
28       ->disableOriginalConstructor()
29       ->getMock();
30
31     $raw = new QueryParameter([], 'query_parameter', []);
32     $raw->init($view, $display_plugin, $options);
33     $this->assertEquals($expected, $raw->getArgument());
34   }
35
36   /**
37    * Provides data for testGetArgument().
38    *
39    * @return array
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.
44    */
45   public function providerGetArgument() {
46     $data = [];
47
48     $data[] = [
49       ['query_param' => 'test'],
50       new Request(['test' => 'data']),
51       'data',
52     ];
53
54     $data[] = [
55       ['query_param' => 'test', 'multiple' => 'and'],
56       new Request(['test' => ['data1', 'data2']]),
57       'data1,data2',
58     ];
59
60     $data[] = [
61       ['query_param' => 'test', 'multiple' => 'or'],
62       new Request(['test' => ['data1', 'data2']]),
63       'data1+data2',
64     ];
65
66     $data[] = [
67       ['query_param' => 'test', 'fallback' => 'blub'],
68       new Request([]),
69       'blub',
70     ];
71
72     return $data;
73   }
74
75 }