Upgraded drupal core with security updates
[yaffs-website] / web / core / modules / views / tests / src / Unit / ViewExecutableFactoryTest.php
1 <?php
2
3 namespace Drupal\Tests\views\Unit;
4
5 use Drupal\Tests\UnitTestCase;
6 use Drupal\views\ViewExecutableFactory;
7 use Symfony\Component\HttpFoundation\Request;
8 use Symfony\Component\HttpFoundation\RequestStack;
9
10 /**
11  * @coversDefaultClass \Drupal\views\ViewExecutableFactory
12  * @group views
13  */
14 class ViewExecutableFactoryTest extends UnitTestCase {
15
16   /**
17    * The mock user object.
18    *
19    * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
20    */
21   protected $user;
22
23   /**
24    * The mock request stack object.
25    *
26    * @var \Symfony\Component\HttpFoundation\RequestStack
27    */
28   protected $requestStack;
29
30   /**
31    * The mock view entity.
32    *
33    * @var \Drupal\Core\Config\Entity\ConfigEntityInterface|\PHPUnit_Framework_MockObject_MockObject
34    */
35   protected $view;
36
37   /**
38    * The ViewExecutableFactory class under test.
39    *
40    * @var \Drupal\views\ViewExecutableFactory
41    */
42   protected $viewExecutableFactory;
43
44   /**
45    * The mocked views data.
46    *
47    * @var \Drupal\views\ViewsData|\PHPUnit_Framework_MockObject_MockObject
48    */
49   protected $viewsData;
50
51   /**
52    * The mocked route provider.
53    *
54    * @var \Drupal\Core\Routing\RouteProviderInterface|\PHPUnit_Framework_MockObject_MockObject
55    */
56   protected $routeProvider;
57
58   /**
59    * {@inheritdoc}
60    */
61   protected function setUp() {
62     parent::setUp();
63
64     $this->user = $this->getMock('Drupal\Core\Session\AccountInterface');
65     $this->requestStack = new RequestStack();
66     $this->view = $this->getMock('Drupal\views\ViewEntityInterface');
67     $this->viewsData = $this->getMockBuilder('Drupal\views\ViewsData')
68       ->disableOriginalConstructor()
69       ->getMock();
70     $this->routeProvider = $this->getMock('Drupal\Core\Routing\RouteProviderInterface');
71     $this->viewExecutableFactory = new ViewExecutableFactory($this->user, $this->requestStack, $this->viewsData, $this->routeProvider);
72   }
73
74   /**
75    * Tests the get method.
76    *
77    * @covers ::get
78    */
79   public function testGet() {
80     $request_1 = new Request();
81     $request_2 = new Request();
82
83     $this->requestStack->push($request_1);
84
85     $executable = $this->viewExecutableFactory->get($this->view);
86
87     $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
88     $this->assertSame($executable->getRequest(), $request_1);
89     $this->assertSame($executable->getUser(), $this->user);
90
91     // Call get() again to ensure a new executable is created with the other
92     // request object.
93     $this->requestStack->push($request_2);
94     $executable = $this->viewExecutableFactory->get($this->view);
95
96     $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
97     $this->assertSame($executable->getRequest(), $request_2);
98     $this->assertSame($executable->getUser(), $this->user);
99   }
100
101 }