aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2015-03-26 12:15:02 +0100
committerVincent Petry <pvince81@owncloud.com>2015-03-26 12:15:02 +0100
commit43588fe2f78ff00586a45de9cbbadcadeaa03c4b (patch)
treea7cd3e3505d197457e93bce57e9174889a3022a4
parent285f9e32e59e309cdb95403d45d307b3c20dca43 (diff)
downloadnextcloud-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.php2
-rw-r--r--tests/lib/files/storage/storage.php34
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) {