[BUGFIX] Adapt glitches of context patch 36/57436/3
authorChristian Kuhn <lolli@schwarzbu.ch>
Mon, 2 Jul 2018 08:54:28 +0000 (10:54 +0200)
committerAnja Leichsenring <aleichsenring@ab-softlab.de>
Mon, 2 Jul 2018 10:24:10 +0000 (12:24 +0200)
Some type hinting related and test changes from the main
context patch are fixed with the patch.

Resolves: #85447
Related: #85389
Releases: master
Change-Id: I674fd1cc253929643361a71ad7c5084d4429ddc5
Reviewed-on: https://review.typo3.org/57436
Reviewed-by: Mathias Brodala <mbrodala@pagemachine.de>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
typo3/sysext/core/Classes/Context/Context.php
typo3/sysext/core/Documentation/Changelog/master/Deprecation-85389-VariousPublicPropertiesInFavorOfContextAPI.rst
typo3/sysext/core/Documentation/Changelog/master/Feature-85389-ContextAPIForConsistentDataHandling.rst
typo3/sysext/core/Tests/Unit/Context/ContextTest.php
typo3/sysext/core/Tests/Unit/Context/DateTimeAspectTest.php
typo3/sysext/core/Tests/Unit/Context/UserAspectTest.php
typo3/sysext/core/Tests/Unit/Context/VisibilityAspectTest.php
typo3/sysext/core/Tests/Unit/Context/WorkspaceAspectTest.php
typo3/sysext/frontend/Classes/Configuration/TypoScript/ConditionMatching/ConditionMatcher.php

index 4f9da7a..1678cda 100644 (file)
@@ -56,9 +56,9 @@ class Context implements SingletonInterface
      *
      * @param array|null $defaultAspects
      */
-    public function __construct(array $defaultAspects = null)
+    public function __construct(array $defaultAspects = [])
     {
-        foreach ($defaultAspects ?? [] as $name => $defaultAspect) {
+        foreach ($defaultAspects as $name => $defaultAspect) {
             if ($defaultAspect instanceof AspectInterface) {
                 $this->aspects[$name] = $defaultAspect;
             }
index fdb132f..24716c6 100644 (file)
@@ -44,4 +44,4 @@ Use Context API / Aspects instead to read from this information:
 - :php:`$context->getPropertyFromAspect('backend.user', 'isLoggedIn')` instead of :php:`$TSFE->beUserLogin`
 - :php:`$context->getPropertyFromAspect('frontend.user', 'groupIds')` instead of :php:`$TSFE->gr_list`
 
-.. index:: Frontend, PHP-API, PartiallyScanned
\ No newline at end of file
+.. index:: Frontend, PHP-API, FullyScanned
\ No newline at end of file
index 14773f0..b572c3e 100644 (file)
@@ -47,7 +47,7 @@ override a certain aspect locally.
 A huge benefit when using the Context API is a strong decoupling of various architectural failures within
 TYPO3 Core, which are now "Context aware" and not depending if a certain global object is available.
 
-This will not unify the code quality, but also introduce a better standard, where hard intermingling within
+This will not only unify the code quality, but also introduce a better standard, where hard intermingling within
 Extbase, PageRepository and TypoScriptFrontendController can be found.
 
 Impact
index b501b3a..b106d7b 100644 (file)
@@ -108,6 +108,7 @@ class ContextTest extends UnitTestCase
         ]);
 
         $this->expectException(AspectNotFoundException::class);
+        $this->expectExceptionCode(1527777641);
         $subject->getAspect('uncoolio');
     }
 
@@ -135,6 +136,7 @@ class ContextTest extends UnitTestCase
         ]);
 
         $this->expectException(AspectNotFoundException::class);
+        $this->expectExceptionCode(1527777868);
         $subject->getPropertyFromAspect('uncoolio', 'does not matter');
     }
 
index 2118bf1..b24bd8d 100644 (file)
@@ -38,6 +38,7 @@ class DateTimeAspectTest extends UnitTestCase
     public function getThrowsExceptionOnInvalidArgument()
     {
         $this->expectException(AspectPropertyNotFoundException::class);
+        $this->expectExceptionCode(1527778767);
         $dateObject = new \DateTimeImmutable('2018-07-15', new \DateTimeZone('Europe/Moscow'));
         $subject = new DateTimeAspect($dateObject);
         $subject->get('football');
index 1293b1d..6976704 100644 (file)
@@ -202,6 +202,7 @@ class UserAspectTest extends UnitTestCase
     public function getThrowsExceptionOnInvalidArgument()
     {
         $this->expectException(AspectPropertyNotFoundException::class);
+        $this->expectExceptionCode(1529996567);
         $subject = new UserAspect();
         $subject->get('football');
     }
index fc487af..3947121 100644 (file)
@@ -60,6 +60,7 @@ class VisibilityAspectTest extends UnitTestCase
     public function getThrowsExceptionOnInvalidArgument()
     {
         $this->expectException(AspectPropertyNotFoundException::class);
+        $this->expectExceptionCode(1527780439);
         $subject = new VisibilityAspect();
         $subject->get('football');
     }
index c0e6ba7..f11d9d4 100644 (file)
@@ -53,6 +53,7 @@ class WorkspaceAspectTest extends UnitTestCase
     public function getThrowsExceptionOnInvalidArgument()
     {
         $this->expectException(AspectPropertyNotFoundException::class);
+        $this->expectExceptionCode(1527779447);
         $subject = new WorkspaceAspect();
         $subject->get('football');
     }
index 26cf36a..0a9cd41 100644 (file)
@@ -219,7 +219,7 @@ class ConditionMatcher extends AbstractConditionMatcher
      *
      * @return string The usergroup list of the current user
      */
-    protected function getGroupList()
+    protected function getGroupList(): string
     {
         /** @var UserAspect $userAspect */
         $userAspect = $this->context->getAspect('frontend.user');
@@ -261,7 +261,7 @@ class ConditionMatcher extends AbstractConditionMatcher
      *
      * @return int The id of the current user
      */
-    protected function getUserId()
+    protected function getUserId(): int
     {
         $userAspect = $this->context->getAspect('frontend.user');
         return $userAspect->get('id');
@@ -272,7 +272,7 @@ class ConditionMatcher extends AbstractConditionMatcher
      *
      * @return bool Determines if a user is logged in
      */
-    protected function isUserLoggedIn()
+    protected function isUserLoggedIn(): bool
     {
         /** @var UserAspect $userAspect */
         $userAspect = $this->context->getAspect('frontend.user');