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 1
1
name : Tests
2
2
3
- on :
4
- push :
5
- pull_request :
6
- schedule :
7
- - cron : ' 13 4 * * *'
3
+ on : [ push, pull_request ]
8
4
9
5
jobs :
10
6
build :
Original file line number Diff line number Diff line change
1
+ /.ddev
1
2
/.php_cs.cache
2
3
/.idea
3
- /vendor
4
4
/composer.lock
5
+ /vendor
Original file line number Diff line number Diff line change @@ -120,7 +120,9 @@ public function loadClassWithAlias($className)
120
120
{
121
121
$ originalClassName = $ this ->getOriginalClassName ($ className );
122
122
123
- return $ originalClassName ? $ this ->loadOriginalClassAndSetAliases ($ originalClassName ) : $ this ->loadClass ($ className );
123
+ return $ originalClassName
124
+ ? $ this ->loadOriginalClassAndSetAliases ($ originalClassName )
125
+ : $ this ->loadClass ($ className );
124
126
}
125
127
126
128
/**
@@ -149,19 +151,19 @@ protected function getOriginalClassName($aliasOrClassName)
149
151
{
150
152
// Is an original class which has an alias
151
153
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
+ ;
156
158
}
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)
159
160
$ lowerCasedClassName = strtolower ($ aliasOrClassName );
160
161
if (array_key_exists ($ lowerCasedClassName , $ this ->aliasMap ['aliasToClassNameMapping ' ])) {
161
162
return $ this ->aliasMap ['aliasToClassNameMapping ' ][$ lowerCasedClassName ];
162
163
}
163
164
// 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 ;
165
167
}
166
168
167
169
/**
Original file line number Diff line number Diff line change 11
11
*/
12
12
13
13
use Composer \Autoload \ClassLoader as ComposerClassLoader ;
14
+ use PHPUnit \Framework \MockObject \MockObject ;
14
15
use TYPO3 \ClassAliasLoader \ClassAliasLoader ;
15
16
16
17
/**
@@ -24,7 +25,7 @@ class ClassAliasLoaderTest extends BaseTestCase
24
25
protected $ subject ;
25
26
26
27
/**
27
- * @var ComposerClassLoader|\ PHPUnit_Framework_MockObject_MockObject
28
+ * @var ComposerClassLoader|MockObject| PHPUnit_Framework_MockObject_MockObject
28
29
*/
29
30
protected $ composerClassLoaderMock ;
30
31
@@ -97,6 +98,19 @@ public function loadsClassIfNoAliasIsFound()
97
98
$ this ->assertTrue (class_exists ($ testClassName , false ));
98
99
}
99
100
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
+
100
114
/**
101
115
* @test
102
116
*/
You can’t perform that action at this time.
0 commit comments