59 vfsStream::setup(
'Test');
61 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/', 0770, TRUE);
62 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/composer.json',
'{"name": "acme/myapp", "type": "flow-test"}');
63 $package1 = new \TYPO3\Flow\Package\Package($this->getMock(
'TYPO3\Flow\Package\PackageManager'),
'Acme.MyApp',
'vfs://Test/Packages/Application/Acme.MyApp/',
'Classes');
65 mkdir(
'vfs://Test/Packages/Application/Acme.MyAppAddon/Classes/', 0770, TRUE);
66 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyAppAddon/composer.json',
'{"name": "acme/myappaddon", "type": "flow-test"}');
67 $package2 = new \TYPO3\Flow\Package\Package($this->getMock(
'TYPO3\Flow\Package\PackageManager'),
'Acme.MyAppAddon',
'vfs://Test/Packages/Application/Acme.MyAppAddon/',
'Classes');
69 $mockClassAliasMap = $this->getMock(
'TYPO3\\CMS\\Core\\Core\\ClassAliasMap', array(
'setPackagesButDontBuildMappingFilesReturnClassNameToAliasMappingInstead',
'buildMappingFiles'), array(),
'', FALSE);
70 $mockClassAliasMap->expects($this->any())->method(
'setPackagesButDontBuildMappingFilesReturnClassNameToAliasMappingInstead')->will($this->returnValue(array()));
73 $this->classLoader = new \TYPO3\CMS\Core\Core\ClassLoader(\
TYPO3\CMS\Core\Core\Bootstrap::getInstance()->getApplicationContext());
74 $this->classLoader->injectClassAliasMap($mockClassAliasMap);
75 $this->classLoader->setPackages(array(
'Acme.MyApp' => $package1,
'Acme.MyAppAddon' => $package2));
83 $this->classLoader->injectClassAliasMap($this->orinalClassAliasMap);
94 $extKey = strtolower($this->
getUniqueId(
'testing'));
95 $absExtPath = PATH_site .
'typo3temp/' . $extKey .
'/';
96 $relPath =
'typo3temp/' . $extKey .
'/';
98 $GLOBALS[
'TYPO3_LOADED_EXT'][$extKey] = array(
99 'siteRelPath' => $relPath
101 $this->fakedExtensions[] = $extKey;
112 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/SubDirectory', 0770, TRUE);
113 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/SubDirectory/ClassInSubDirectory.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
115 self::$testClassWasLoaded = FALSE;
116 $this->classLoader->loadClass(
'Acme\MyApp\SubDirectory\ClassInSubDirectory');
117 $this->assertTrue(self::$testClassWasLoaded);
124 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/SubDirectory/A/B/C/D', 0770, TRUE);
125 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/SubDirectory/A/B/C/D/E.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
127 self::$testClassWasLoaded = FALSE;
128 $this->classLoader->loadClass(
'Acme\MyApp\SubDirectory\A\B\C\D\E');
129 $this->assertTrue(self::$testClassWasLoaded);
139 mkdir(
'vfs://Test/Packages/Application/Acme.MyAppAddon/Classes/Acme/MyAppAddon', 0770, TRUE);
140 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyAppAddon/Classes/Acme/MyAppAddon/Class.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
142 self::$testClassWasLoaded = FALSE;
143 $this->classLoader->loadClass(
'Acme\MyAppAddon\Class');
144 $this->assertTrue(self::$testClassWasLoaded);
153 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp', 0770, TRUE);
154 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/Foo.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
156 self::$testClassWasLoaded = FALSE;
157 $this->classLoader->loadClass(
'Acme\MyApp_Foo');
158 $this->assertTrue(self::$testClassWasLoaded);
167 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/My_Underscore', 0770, TRUE);
168 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/My_Underscore/Foo.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
170 self::$testClassWasLoaded = FALSE;
171 $this->classLoader->loadClass(
'Acme\MyApp\My_Underscore\Foo');
172 $this->assertTrue(self::$testClassWasLoaded);
181 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp', 0770, TRUE);
182 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/UnderscoredOnly.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
184 self::$testClassWasLoaded = FALSE;
185 $this->classLoader->loadClass(
'Acme_MyApp_UnderscoredOnly');
186 $this->assertTrue(self::$testClassWasLoaded);
193 mkdir(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp', 0770, TRUE);
194 file_put_contents(
'vfs://Test/Packages/Application/Acme.MyApp/Classes/Acme/MyApp/WithLeadingBackslash.php',
'<?php ' . __CLASS__ .
'::$testClassWasLoaded = TRUE; ?>');
196 self::$testClassWasLoaded = FALSE;
197 $this->classLoader->loadClass(
'\Acme\MyApp\WithLeadingBackslash');
198 $this->assertTrue(self::$testClassWasLoaded);
classesWithUnderscoresAreLoaded()
static clearExtensionKeyMap()
classesWithLeadingBackslashAreLoaded()
classesFromSubMatchingPackagesAreLoaded()
static $testClassWasLoaded
classesFromDeeplyNestedSubDirectoriesAreLoaded()
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
classesFromSubDirectoriesAreLoaded()
namespaceWithUnderscoresAreLoaded()
classesWithOnlyUnderscoresAreLoaded()