/** * @test */ public function getRegisteredStreamWrappersReturnsRegisteredStreamWrappers() { $mockStreamWrapper1ClassName = get_class($this->mockStreamWrapper); $mockStreamWrapper2 = $this->getMock('TYPO3\\FLOW3\\Resource\\Streams\\StreamWrapperInterface'); $mockStreamWrapper2ClassName = get_class($mockStreamWrapper2); \TYPO3\FLOW3\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper('mockScheme1', $mockStreamWrapper1ClassName); \TYPO3\FLOW3\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper('mockScheme2', $mockStreamWrapper2ClassName); $registeredStreamWrappers = \TYPO3\FLOW3\Resource\Streams\StreamWrapperAdapter::getRegisteredStreamWrappers(); $this->assertSame($mockStreamWrapper1ClassName, $registeredStreamWrappers['mockScheme1']); $this->assertSame($mockStreamWrapper2ClassName, $registeredStreamWrappers['mockScheme2']); }
/** * Check for implementations of TYPO3\FLOW3\Resource\Streams\StreamWrapperInterface and * register them. * * @return void */ public function initialize() { $streamWrapperClassNames = $this->reflectionService->getAllImplementationClassNamesForInterface('TYPO3\\FLOW3\\Resource\\Streams\\StreamWrapperInterface'); foreach ($streamWrapperClassNames as $streamWrapperClassName) { $scheme = $streamWrapperClassName::getScheme(); if (in_array($scheme, stream_get_wrappers())) { stream_wrapper_unregister($scheme); } stream_wrapper_register($scheme, '\\TYPO3\\FLOW3\\Resource\\Streams\\StreamWrapperAdapter'); \TYPO3\FLOW3\Resource\Streams\StreamWrapperAdapter::registerStreamWrapper($scheme, $streamWrapperClassName); } // For now this URI is hardcoded, but might be manageable in the future // if additional persistent resources storages are supported. $this->persistentResourcesStorageBaseUri = FLOW3_PATH_DATA . 'Persistent/Resources/'; \TYPO3\FLOW3\Utility\Files::createDirectoryRecursively($this->persistentResourcesStorageBaseUri); $this->importedResources = new \SplObjectStorage(); }