‪TYPO3CMS  ‪main
IfHasStateViewHelperTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
24 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
25 use TYPO3Fluid\Fluid\View\TemplateView;
26 
27 final class ‪IfHasStateViewHelperTest extends FunctionalTestCase
28 {
29  protected bool ‪$initializeDatabase = false;
30 
31  protected TemplateView ‪$view;
32 
33  protected function ‪setUp(): void
34  {
35  parent::setUp();
36  $this->view = new TemplateView($this->get(RenderingContextFactory::class)->create());
37  $this->view->getRenderingContext()->getViewHelperResolver()->addNamespace('be', 'TYPO3\\CMS\\Backend\\ViewHelpers');
38  $this->view->getTemplatePaths()->setTemplatePathAndFilename('EXT:backend/Tests/Functional/ViewHelpers/Fixtures/Mfa/IfHasStateViewHelper.html');
39  $this->view->assign('provider', $this->get(MfaProviderRegistry::class)->getProvider('totp'));
40  }
41 
42  #[Test]
43  public function ‪renderReturnsInactive(): void
44  {
45  ‪$GLOBALS['BE_USER'] = $this->‪getBackendUser();
46  $result = $this->view->render();
47 
48  self::assertStringNotContainsString('isActive', $result);
49  self::assertStringContainsString('isInactive', $result);
50  self::assertStringNotContainsString('isLocked', $result);
51  self::assertStringNotContainsString('isUnlocked', $result);
52  }
53  #[Test]
54  public function ‪renderReturnsActive(): void
55  {
56  ‪$GLOBALS['BE_USER'] = $this->‪getBackendUser(true);
57  $result = $this->view->render();
58 
59  self::assertStringContainsString('isActive', $result);
60  self::assertStringNotContainsString('isInactive', $result);
61  self::assertStringNotContainsString('isLocked', $result);
62  self::assertStringContainsString('isUnlocked', $result);
63  }
64  #[Test]
65  public function ‪renderReturnsLocked(): void
66  {
67  ‪$GLOBALS['BE_USER'] = $this->‪getBackendUser(true, true);
68  $result = $this->view->render();
69 
70  self::assertStringContainsString('isActive', $result);
71  self::assertStringNotContainsString('isInactive', $result);
72  self::assertStringContainsString('isLocked', $result);
73  self::assertStringNotContainsString('isUnlocked', $result);
74  }
75 
76  protected function ‪getBackendUser(bool $activeProvider = false, bool $lockedProvider = false): ‪BackendUserAuthentication
77  {
78  $backendUser = new ‪BackendUserAuthentication();
79  $mfa = [
80  'totp' => [
81  'secret' => 'KRMVATZTJFZUC53FONXW2ZJB',
82  ],
83  ];
84 
85  if ($activeProvider) {
86  $mfa['totp']['active'] = true;
87  }
88  if ($lockedProvider) {
89  $mfa['totp']['attempts'] = 3;
90  }
91 
92  $backendUser->user['mfa'] = json_encode($mfa);
93  return $backendUser;
94  }
95 }
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\$view
‪TemplateView $view
Definition: IfHasStateViewHelperTest.php:31
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\setUp
‪setUp()
Definition: IfHasStateViewHelperTest.php:33
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\$initializeDatabase
‪bool $initializeDatabase
Definition: IfHasStateViewHelperTest.php:29
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\getBackendUser
‪getBackendUser(bool $activeProvider=false, bool $lockedProvider=false)
Definition: IfHasStateViewHelperTest.php:76
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\renderReturnsInactive
‪renderReturnsInactive()
Definition: IfHasStateViewHelperTest.php:43
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa
Definition: IfHasStateViewHelperTest.php:18
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\renderReturnsActive
‪renderReturnsActive()
Definition: IfHasStateViewHelperTest.php:54
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Fluid\Core\Rendering\RenderingContextFactory
Definition: RenderingContextFactory.php:51
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest\renderReturnsLocked
‪renderReturnsLocked()
Definition: IfHasStateViewHelperTest.php:65
‪TYPO3\CMS\Backend\Tests\Functional\ViewHelpers\Mfa\IfHasStateViewHelperTest
Definition: IfHasStateViewHelperTest.php:28
‪TYPO3\CMS\Core\Authentication\Mfa\MfaProviderRegistry
Definition: MfaProviderRegistry.php:28