Upgraded drupal core with security updates
[yaffs-website] / web / core / modules / views / tests / src / Unit / Plugin / argument_default / RawTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Unit\Plugin\argument_default;
4
5 use Drupal\Core\Path\CurrentPathStack;
6 use Drupal\Tests\UnitTestCase;
7 use Drupal\views\Plugin\views\argument_default\Raw;
8 use Symfony\Component\HttpFoundation\Request;
9 use Symfony\Component\HttpFoundation\RequestStack;
10
11 /**
12  * @coversDefaultClass \Drupal\views\Plugin\views\argument_default\Raw
13  * @group views
14  */
15 class RawTest extends UnitTestCase {
16
17   /**
18    * Test the getArgument() method.
19    *
20    * @see \Drupal\views\Plugin\views\argument_default\Raw::getArgument()
21    */
22   public function testGetArgument() {
23     $view = $this->getMockBuilder('Drupal\views\ViewExecutable')
24       ->disableOriginalConstructor()
25       ->getMock();
26     $display_plugin = $this->getMockBuilder('Drupal\views\Plugin\views\display\DisplayPluginBase')
27       ->disableOriginalConstructor()
28       ->getMock();
29     $current_path = new CurrentPathStack(new RequestStack());
30
31     $request = new Request();
32     $current_path->setPath('/test/example', $request);
33     $view->expects($this->any())
34       ->method('getRequest')
35       ->will($this->returnValue($request));
36     $alias_manager = $this->getMock('Drupal\Core\Path\AliasManagerInterface');
37     $alias_manager->expects($this->never())
38       ->method('getAliasByPath');
39
40     // Don't use aliases. Check against NULL and nonexistent path component
41     // values in addition to valid ones.
42     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
43     $options = [
44       'use_alias' => FALSE,
45     ];
46     $raw->init($view, $display_plugin, $options);
47     $this->assertEquals(NULL, $raw->getArgument());
48
49     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
50     $options = [
51       'use_alias' => FALSE,
52       'index' => 0,
53     ];
54     $raw->init($view, $display_plugin, $options);
55     $this->assertEquals('test', $raw->getArgument());
56
57     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
58     $options = [
59       'use_alias' => FALSE,
60       'index' => 1,
61     ];
62     $raw->init($view, $display_plugin, $options);
63     $this->assertEquals('example', $raw->getArgument());
64
65     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
66     $options = [
67       'use_alias' => FALSE,
68       'index' => 2,
69     ];
70     $raw->init($view, $display_plugin, $options);
71     $this->assertEquals(NULL, $raw->getArgument());
72
73     // Setup an alias manager with a path alias.
74     $alias_manager = $this->getMock('Drupal\Core\Path\AliasManagerInterface');
75     $alias_manager->expects($this->any())
76       ->method('getAliasByPath')
77       ->with($this->equalTo('/test/example'))
78       ->will($this->returnValue('/other/example'));
79
80     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
81     $options = [
82       'use_alias' => TRUE,
83     ];
84     $raw->init($view, $display_plugin, $options);
85     $this->assertEquals(NULL, $raw->getArgument());
86
87     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
88     $options = [
89       'use_alias' => TRUE,
90       'index' => 0,
91     ];
92     $raw->init($view, $display_plugin, $options);
93     $this->assertEquals('other', $raw->getArgument());
94
95     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
96     $options = [
97       'use_alias' => TRUE,
98       'index' => 1,
99     ];
100     $raw->init($view, $display_plugin, $options);
101     $this->assertEquals('example', $raw->getArgument());
102
103     $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
104     $options = [
105       'use_alias' => TRUE,
106       'index' => 2,
107     ];
108     $raw->init($view, $display_plugin, $options);
109     $this->assertEquals(NULL, $raw->getArgument());
110   }
111
112 }