/** * @param File $file * @param VersionProvider $versionProvider * @param int $levelsDown * @return string * @throws FilelibException */ public function getRelativePathToVersion(File $file, Version $version, VersionProvider $versionProvider, $levelsDown = 0) { $relativePath = $this->getRelativePathToRoot(); if (!$relativePath) { throw new LogicException('Relative path must be set!'); } $relativePath = str_repeat("../", $levelsDown) . $relativePath; $retrieved = $this->storage->retrieveVersion($versionProvider->getApplicableVersionable($file), $version); $path = preg_replace("[^{$this->adapter->getRoot()}]", $relativePath, $retrieved); return $path; }
/** * @test */ public function defaultsShouldProvideSaneStorage() { $root = ROOT_TESTS . '/data/files'; $storage = new FilesystemStorageAdapter($root); $this->assertSame(0700, $storage->getDirectoryPermission()); $this->assertSame(0600, $storage->getFilePermission()); $this->assertEquals($root, $storage->getRoot()); }