[TASK] Fix CGL errors
[Packages/TYPO3.CMS.git] / typo3 / sysext / backend / Tests / Unit / Controller / PageLayoutControllerTest.php
1 <?php
2 namespace TYPO3\CMS\Backend\Tests\Unit\Controller;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Backend\Controller\PageLayoutController;
18 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
19 use TYPO3\CMS\Core\Tests\UnitTestCase;
20 use TYPO3\CMS\Core\Type\Bitmask\Permission;
21
22 /**
23 * Class PageLayoutControllerTest
24 */
25 class PageLayoutControllerTest extends UnitTestCase
26 {
27 /**
28 * @test
29 * @dataProvider pageIsNotLockedForEditorsReturnsCorrectValueDataProvider
30 * @param bool $isAdmin
31 * @param int $permissions
32 * @param bool $editLock
33 * @param bool $expected
34 */
35 public function pageIsNotLockedForEditorsReturnsCorrectValue($isAdmin, $permissions, $editLock, $expected)
36 {
37 /** @var BackendUserAuthentication|\PHPUnit_Framework_MockObject_MockObject $beUserMock */
38 $beUserMock = $this->getMock(BackendUserAuthentication::class, ['isAdmin']);
39 $beUserMock->method('isAdmin')->will($this->returnValue($isAdmin));
40
41 /** @var PageLayoutController|\PHPUnit_Framework_MockObject_MockObject $pageController */
42 $pageController = $this->getMock(PageLayoutController::class, ['getBackendUser']);
43 $pageController->method('getBackendUser')->will($this->returnValue($beUserMock));
44
45 $pageController->CALC_PERMS = $permissions;
46 $pageController->pageinfo = ['editlock' => $editLock];
47
48 $this->assertTrue($pageController->pageIsNotLockedForEditors() === $expected);
49 }
50
51 /**
52 * @return array
53 */
54 public function pageIsNotLockedForEditorsReturnsCorrectValueDataProvider()
55 {
56 return [
57 'user is admin' => [ true, 0, false, true],
58 'user has permission' => [ false, Permission::PAGE_EDIT, false, true],
59 'page has permission, but editlock set' => [ false, Permission::PAGE_EDIT, true, false],
60 'user does not have permission' => [ false, 0, false, false],
61 ];
62 }
63 }