$rootView = new \OC\Files\View('');
$longPath = '';
- // 4000 is the maximum path length in file_cache.path
+ $ds = DIRECTORY_SEPARATOR;
+ /*
+ * 4096 is the maximum path length in file_cache.path in *nix
+ * 1024 is the max path length in mac
+ * 228 is the max path length in windows
+ */
$folderName = 'abcdefghijklmnopqrstuvwxyz012345678901234567890123456789';
- $depth = (4000 / 57);
+ $tmpdirLength = strlen(\OC_Helper::tmpFolder());
+ if (\OC_Util::runningOnWindows()) {
+ $this->markTestSkipped();
+ $depth = ((260 - $tmpdirLength) / 57);
+ }elseif(\OC_Util::runningOnMac()){
+ $depth = ((1024 - $tmpdirLength) / 57);
+ } else {
+ $depth = ((4000 - $tmpdirLength) / 57);
+ }
foreach (range(0, $depth - 1) as $i) {
- $longPath .= '/' . $folderName;
+ $longPath .= $ds . $folderName;
$result = $rootView->mkdir($longPath);
$this->assertTrue($result, "mkdir failed on $i - path length: " . strlen($longPath));
- $result = $rootView->file_put_contents($longPath . '/test.txt', 'lorem');
+ $result = $rootView->file_put_contents($longPath . "{$ds}test.txt", 'lorem');
$this->assertEquals(5, $result, "file_put_contents failed on $i");
$this->assertTrue($rootView->file_exists($longPath));
- $this->assertTrue($rootView->file_exists($longPath . '/test.txt'));
+ $this->assertTrue($rootView->file_exists($longPath . "{$ds}test.txt"));
}
$cache = $storage->getCache();
$this->assertTrue(is_array($cachedFile), "No cache entry for file at $i");
$this->assertEquals('test.txt', $cachedFile['name'], "Wrong cache entry for file at $i");
- $longPath .= '/' . $folderName;
+ $longPath .= $ds . $folderName;
}
}