diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-03-26 12:15:02 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2015-03-26 12:15:02 +0100 |
commit | 43588fe2f78ff00586a45de9cbbadcadeaa03c4b (patch) | |
tree | a7cd3e3505d197457e93bce57e9174889a3022a4 | |
parent | 285f9e32e59e309cdb95403d45d307b3c20dca43 (diff) | |
download | nextcloud-server-43588fe2f78ff00586a45de9cbbadcadeaa03c4b.tar.gz nextcloud-server-43588fe2f78ff00586a45de9cbbadcadeaa03c4b.zip |
Properly quote file names in listFiles query for GDrive
-rw-r--r-- | apps/files_external/lib/google.php | 2 | ||||
-rw-r--r-- | tests/lib/files/storage/storage.php | 34 |
2 files changed, 19 insertions, 17 deletions
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php index 92351bc0886..bf0fa4815b1 100644 --- a/apps/files_external/lib/google.php +++ b/apps/files_external/lib/google.php @@ -103,7 +103,7 @@ class Google extends \OC\Files\Storage\Common { if (isset($this->driveFiles[$path])) { $parentId = $this->driveFiles[$path]->getId(); } else { - $q = "title='".$name."' and '".$parentId."' in parents and trashed = false"; + $q = "title='".rawurlencode($name)."' and '".$parentId."' in parents and trashed = false"; $result = $this->service->files->listFiles(array('q' => $q))->getItems(); if (!empty($result)) { // Google Drive allows files with the same name, ownCloud doesn't diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php index 30f403d60df..ad7522f1ea8 100644 --- a/tests/lib/files/storage/storage.php +++ b/tests/lib/files/storage/storage.php @@ -104,13 +104,14 @@ abstract class Storage extends \Test\TestCase { } public function directoryProvider() { - return array( - array('folder'), - array(' folder'), - array('folder '), - array('folder with space'), - array('spéciäl földer'), - ); + return [ + ['folder'], + [' folder'], + ['folder '], + ['folder with space'], + ['spéciäl földer'], + ['test single\'quote'], + ]; } function loremFileProvider() { @@ -163,15 +164,16 @@ abstract class Storage extends \Test\TestCase { public function copyAndMoveProvider() { - return array( - array('/source.txt', '/target.txt'), - array('/source.txt', '/target with space.txt'), - array('/source with space.txt', '/target.txt'), - array('/source with space.txt', '/target with space.txt'), - array('/source.txt', '/tärgét.txt'), - array('/sòurcē.txt', '/target.txt'), - array('/sòurcē.txt', '/tärgét.txt'), - ); + return [ + ['/source.txt', '/target.txt'], + ['/source.txt', '/target with space.txt'], + ['/source with space.txt', '/target.txt'], + ['/source with space.txt', '/target with space.txt'], + ['/source.txt', '/tärgét.txt'], + ['/sòurcē.txt', '/target.txt'], + ['/sòurcē.txt', '/tärgét.txt'], + ['/single \' quote.txt', '/tar\'get.txt'], + ]; } public function initSourceAndTarget ($source, $target = null) { |