File tree Expand file tree Collapse file tree 4 files changed +28
-15
lines changed Expand file tree Collapse file tree 4 files changed +28
-15
lines changed Original file line number Diff line number Diff line change 11name : Tests
22
3- on :
4- push :
5- pull_request :
6- schedule :
7- - cron : ' 13 4 * * *'
3+ on : [ push, pull_request ]
84
95jobs :
106 build :
Original file line number Diff line number Diff line change 1+ /.ddev
12/.php_cs.cache
23/.idea
3- /vendor
44/composer.lock
5+ /vendor
Original file line number Diff line number Diff line change @@ -120,7 +120,9 @@ public function loadClassWithAlias($className)
120120 {
121121 $ originalClassName = $ this ->getOriginalClassName ($ className );
122122
123- return $ originalClassName ? $ this ->loadOriginalClassAndSetAliases ($ originalClassName ) : $ this ->loadClass ($ className );
123+ return $ originalClassName
124+ ? $ this ->loadOriginalClassAndSetAliases ($ originalClassName )
125+ : $ this ->loadClass ($ className );
124126 }
125127
126128 /**
@@ -149,19 +151,19 @@ protected function getOriginalClassName($aliasOrClassName)
149151 {
150152 // Is an original class which has an alias
151153 if (array_key_exists ($ aliasOrClassName , $ this ->aliasMap ['classNameToAliasMapping ' ])) {
152- if ( $ this ->aliasMap ['classNameToAliasMapping ' ][$ aliasOrClassName ] === null ) {
153- return null ;
154- }
155- return $ aliasOrClassName ;
154+ return $ this ->aliasMap ['classNameToAliasMapping ' ][$ aliasOrClassName ] === array ()
155+ ? null
156+ : $ aliasOrClassName
157+ ;
156158 }
157-
158- // Is an alias (we're graceful regarding casing for alias definitions)
159+ // Is an alias (we're graceful ignoring casing for alias definitions)
159160 $ lowerCasedClassName = strtolower ($ aliasOrClassName );
160161 if (array_key_exists ($ lowerCasedClassName , $ this ->aliasMap ['aliasToClassNameMapping ' ])) {
161162 return $ this ->aliasMap ['aliasToClassNameMapping ' ][$ lowerCasedClassName ];
162163 }
163164 // No alias registered for this class name, return and remember that info
164- return $ this ->aliasMap ['classNameToAliasMapping ' ][$ aliasOrClassName ] = null ;
165+ $ this ->aliasMap ['classNameToAliasMapping ' ][$ aliasOrClassName ] = array ();
166+ return null ;
165167 }
166168
167169 /**
Original file line number Diff line number Diff line change 1111 */
1212
1313use Composer \Autoload \ClassLoader as ComposerClassLoader ;
14+ use PHPUnit \Framework \MockObject \MockObject ;
1415use TYPO3 \ClassAliasLoader \ClassAliasLoader ;
1516
1617/**
@@ -24,7 +25,7 @@ class ClassAliasLoaderTest extends BaseTestCase
2425 protected $ subject ;
2526
2627 /**
27- * @var ComposerClassLoader|\ PHPUnit_Framework_MockObject_MockObject
28+ * @var ComposerClassLoader|MockObject| PHPUnit_Framework_MockObject_MockObject
2829 */
2930 protected $ composerClassLoaderMock ;
3031
@@ -97,6 +98,19 @@ public function loadsClassIfNoAliasIsFound()
9798 $ this ->assertTrue (class_exists ($ testClassName , false ));
9899 }
99100
101+ /**
102+ * @test
103+ */
104+ public function callingLoadClassMultipleTimesInEdgeCasesWillStillWork ()
105+ {
106+ $ this ->composerClassLoaderMock
107+ ->expects ($ this ->exactly (2 ))
108+ ->method ('loadClass ' )
109+ ->willReturnOnConsecutiveCalls (false , true );
110+ $ this ->assertFalse ($ this ->subject ->loadClassWithAlias ('TestClass ' ));
111+ $ this ->assertTrue ($ this ->subject ->loadClassWithAlias ('TestClass ' ));
112+ }
113+
100114 /**
101115 * @test
102116 */
You can’t perform that action at this time.
0 commit comments