diff --git a/typo3/sysext/core/Classes/FormProtection/AbstractFormProtection.php b/typo3/sysext/core/Classes/FormProtection/AbstractFormProtection.php
index a49cc6d135964c603971d710fbd74db6aa5e2a02..f32cccac11be4221f219ab4320fe1e6564689ae5 100644
--- a/typo3/sysext/core/Classes/FormProtection/AbstractFormProtection.php
+++ b/typo3/sysext/core/Classes/FormProtection/AbstractFormProtection.php
@@ -43,9 +43,7 @@ abstract class AbstractFormProtection
      */
     protected function getSessionToken()
     {
-        if ($this->sessionToken === null) {
-            $this->sessionToken = $this->retrieveSessionToken();
-        }
+        $this->sessionToken = $this->sessionToken ?? $this->retrieveSessionToken();
         return $this->sessionToken;
     }
 
diff --git a/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php b/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php
index fadebeacb88d18ac2d656c81c75ece2bed1e18e3..244caa698659f40ea2b7ced08bc2abebfe427fbe 100644
--- a/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php
+++ b/typo3/sysext/core/Tests/Unit/FormProtection/AbstractFormProtectionTest.php
@@ -1,4 +1,5 @@
 <?php
+declare(strict_types = 1);
 namespace TYPO3\CMS\Core\Tests\Unit\FormProtection;
 
 /*
@@ -14,24 +15,22 @@ namespace TYPO3\CMS\Core\Tests\Unit\FormProtection;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting;
+use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
+
 /**
  * Testcase
  */
-class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
+class AbstractFormProtectionTest extends UnitTestCase
 {
     /**
-     * Subject is not notice free, disable E_NOTICES
-     */
-    protected static $suppressNotices = true;
-
-    /**
-     * @var \TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting
+     * @var FormProtectionTesting
      */
     protected $subject;
 
-    protected function setUp()
+    protected function setUp(): void
     {
-        $this->subject = new \TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting();
+        $this->subject = new FormProtectionTesting();
     }
 
     /////////////////////////////////////////
@@ -40,9 +39,9 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenRetrievesTokenOnce()
+    public function generateTokenRetrievesTokenOnce(): void
     {
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['retrieveSessionToken'])
             ->getMock();
         $subject->expects($this->once())->method('retrieveSessionToken')->will($this->returnValue('token'));
@@ -53,9 +52,9 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenRetrievesTokenOnce()
+    public function validateTokenRetrievesTokenOnce(): void
     {
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['retrieveSessionToken'])
             ->getMock();
         $subject->expects($this->once())->method('retrieveSessionToken')->will($this->returnValue('token'));
@@ -66,7 +65,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function cleanMakesTokenInvalid()
+    public function cleanMakesTokenInvalid(): void
     {
         $formName = 'foo';
         $tokenId = $this->subject->generateToken($formName);
@@ -77,9 +76,9 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function cleanPersistsToken()
+    public function cleanPersistsToken(): void
     {
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['persistSessionToken'])
             ->getMock();
         $subject->expects($this->once())->method('persistSessionToken');
@@ -92,7 +91,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenFormForEmptyFormNameThrowsException()
+    public function generateTokenFormForEmptyFormNameThrowsException(): void
     {
         $this->expectException(\InvalidArgumentException::class);
         $this->expectExceptionCode(1294586643);
@@ -102,7 +101,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenFormForEmptyActionNotThrowsException()
+    public function generateTokenFormForEmptyActionNotThrowsException(): void
     {
         $this->subject->generateToken('foo', '', '42');
     }
@@ -110,7 +109,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenFormForEmptyFormInstanceNameNotThrowsException()
+    public function generateTokenFormForEmptyFormInstanceNameNotThrowsException(): void
     {
         $this->subject->generateToken('foo', 'edit', '');
     }
@@ -118,7 +117,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenFormForOmittedActionAndFormInstanceNameNotThrowsException()
+    public function generateTokenFormForOmittedActionAndFormInstanceNameNotThrowsException(): void
     {
         $this->subject->generateToken('foo');
     }
@@ -126,7 +125,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenReturns32CharacterHexToken()
+    public function generateTokenReturns32CharacterHexToken(): void
     {
         $this->assertRegExp('/^[0-9a-f]{40}$/', $this->subject->generateToken('foo'));
     }
@@ -134,7 +133,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function generateTokenCalledTwoTimesWithSameParametersReturnsSameTokens()
+    public function generateTokenCalledTwoTimesWithSameParametersReturnsSameTokens(): void
     {
         $this->assertEquals($this->subject->generateToken('foo', 'edit', 'bar'), $this->subject->generateToken('foo', 'edit', 'bar'));
     }
@@ -145,7 +144,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithFourEmptyParametersNotThrowsException()
+    public function validateTokenWithFourEmptyParametersNotThrowsException(): void
     {
         $this->subject->validateToken('', '', '', '');
     }
@@ -153,7 +152,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithTwoEmptyAndTwoMissingParametersNotThrowsException()
+    public function validateTokenWithTwoEmptyAndTwoMissingParametersNotThrowsException(): void
     {
         $this->subject->validateToken('', '');
     }
@@ -161,7 +160,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithDataFromGenerateTokenWithFormInstanceNameReturnsTrue()
+    public function validateTokenWithDataFromGenerateTokenWithFormInstanceNameReturnsTrue(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -172,7 +171,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithDataFromGenerateTokenWithMissingActionAndFormInstanceNameReturnsTrue()
+    public function validateTokenWithDataFromGenerateTokenWithMissingActionAndFormInstanceNameReturnsTrue(): void
     {
         $formName = 'foo';
         $this->assertTrue($this->subject->validateToken($this->subject->generateToken($formName), $formName));
@@ -181,7 +180,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithValidDataCalledTwoTimesReturnsTrueOnSecondCall()
+    public function validateTokenWithValidDataCalledTwoTimesReturnsTrueOnSecondCall(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -194,7 +193,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithMismatchingTokenIdReturnsFalse()
+    public function validateTokenWithMismatchingTokenIdReturnsFalse(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -206,7 +205,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithMismatchingFormNameReturnsFalse()
+    public function validateTokenWithMismatchingFormNameReturnsFalse(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -218,7 +217,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithMismatchingActionReturnsFalse()
+    public function validateTokenWithMismatchingActionReturnsFalse(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -230,7 +229,7 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenWithMismatchingFormInstanceNameReturnsFalse()
+    public function validateTokenWithMismatchingFormInstanceNameReturnsFalse(): void
     {
         $formName = 'foo';
         $action = 'edit';
@@ -242,10 +241,10 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenForValidTokenNotCallsCreateValidationErrorMessage()
+    public function validateTokenForValidTokenNotCallsCreateValidationErrorMessage(): void
     {
-        /** @var \PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting $subject */
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        /** @var \PHPUnit_Framework_MockObject_MockObject|FormProtectionTesting $subject */
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['createValidationErrorMessage'])
             ->getMock();
         $subject->expects($this->never())->method('createValidationErrorMessage');
@@ -260,10 +259,10 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenForInvalidTokenCallsCreateValidationErrorMessage()
+    public function validateTokenForInvalidTokenCallsCreateValidationErrorMessage(): void
     {
-        /** @var \PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting $subject */
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        /** @var \PHPUnit_Framework_MockObject_MockObject|FormProtectionTesting $subject */
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['createValidationErrorMessage'])
             ->getMock();
         $subject->expects($this->once())->method('createValidationErrorMessage');
@@ -278,10 +277,10 @@ class AbstractFormProtectionTest extends \TYPO3\TestingFramework\Core\Unit\UnitT
     /**
      * @test
      */
-    public function validateTokenForInvalidFormNameCallsCreateValidationErrorMessage()
+    public function validateTokenForInvalidFormNameCallsCreateValidationErrorMessage(): void
     {
-        /** @var \PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting $subject */
-        $subject = $this->getMockBuilder(\TYPO3\CMS\Core\Tests\Unit\FormProtection\Fixtures\FormProtectionTesting::class)
+        /** @var \PHPUnit_Framework_MockObject_MockObject|FormProtectionTesting $subject */
+        $subject = $this->getMockBuilder(FormProtectionTesting::class)
             ->setMethods(['createValidationErrorMessage'])
             ->getMock();
         $subject->expects($this->once())->method('createValidationErrorMessage');