Browse Source

Fix resolving paths for views rooted in a file

tags/v8.0.0RC1
Robin Appelman 9 years ago
parent
commit
ddee63fa00
2 changed files with 17 additions and 1 deletions
  1. 1
    1
      lib/private/files/filesystem.php
  2. 16
    0
      tests/lib/files/view.php

+ 1
- 1
lib/private/files/filesystem.php View File

@@ -293,7 +293,7 @@ class Filesystem {
}
$mount = self::$mounts->find($path);
if ($mount) {
return array($mount->getStorage(), $mount->getInternalPath($path));
return array($mount->getStorage(), rtrim($mount->getInternalPath($path), '/'));
} else {
return array(null, null);
}

+ 16
- 0
tests/lib/files/view.php View File

@@ -729,6 +729,22 @@ class View extends \Test\TestCase {
);
}

public function testFileView() {
$storage = new Temporary(array());
$scanner = $storage->getScanner();
$storage->file_put_contents('foo.txt', 'bar');
\OC\Files\Filesystem::mount($storage, array(), '/test/');
$scanner->scan('');
$view = new \OC\Files\View('/test/foo.txt');

$this->assertEquals('bar', $view->file_get_contents(''));
$fh = tmpfile();
fwrite($fh, 'foo');
rewind($fh);
$view->file_put_contents('', $fh);
$this->assertEquals('foo', $view->file_get_contents(''));
}

/**
* @dataProvider tooLongPathDataProvider
* @expectedException \OCP\Files\InvalidPathException

Loading…
Cancel
Save