summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2015-11-10 09:45:00 +0100
committerRobin Appelman <robin@icewind.nl>2015-11-10 09:45:00 +0100
commit960c8cb5bce4449834cf6373601e7555743cb89f (patch)
treed949adb7a52e0faad89a343dd23aa78e9dff210a /tests/lib
parentf09db6451eca5684536e8046ec15b7127217e478 (diff)
parentd36e1bbab23253673339a2b1b6d81a906d83fa5b (diff)
downloadnextcloud-server-960c8cb5bce4449834cf6373601e7555743cb89f.tar.gz
nextcloud-server-960c8cb5bce4449834cf6373601e7555743cb89f.zip
Merge pull request #16604 from owncloud/cache-escape-like
escape like parameter in cache operations
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/files/cache/cache.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php
index 9a64375f4e3..c5395a97fd4 100644
--- a/tests/lib/files/cache/cache.php
+++ b/tests/lib/files/cache/cache.php
@@ -604,6 +604,54 @@ class Cache extends \Test\TestCase {
$this->assertNotEquals($fileId, $fileId2);
}
+ public function escapingProvider() {
+ return [
+ ['foo'],
+ ['o%'],
+ ['oth_r'],
+ ];
+ }
+
+ /**
+ * @param string $name
+ * @dataProvider escapingProvider
+ */
+ public function testEscaping($name) {
+ $data = array('size' => 100, 'mtime' => 50, 'mimetype' => 'text/plain');
+ $this->cache->put($name, $data);
+ $this->assertTrue($this->cache->inCache($name));
+ $retrievedData = $this->cache->get($name);
+ foreach ($data as $key => $value) {
+ $this->assertEquals($value, $retrievedData[$key]);
+ }
+ $this->cache->move($name, $name . 'asd');
+ $this->assertFalse($this->cache->inCache($name));
+ $this->assertTrue($this->cache->inCache($name . 'asd'));
+ $this->cache->remove($name . 'asd');
+ $this->assertFalse($this->cache->inCache($name . 'asd'));
+ $folderData = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory');
+ $this->cache->put($name, $folderData);
+ $this->cache->put('other', $folderData);
+ $childs = ['asd', 'bar', 'foo', 'sub/folder'];
+ $this->cache->put($name . '/sub/folder', $folderData);
+ $this->cache->put('other/sub/folder', $folderData);
+ foreach ($childs as $child) {
+ $this->cache->put($name . '/' . $child, $data);
+ $this->cache->put('other/' . $child, $data);
+ $this->assertTrue($this->cache->inCache($name . '/' . $child));
+ }
+ $this->cache->move($name, $name . 'asd');
+ foreach ($childs as $child) {
+ $this->assertTrue($this->cache->inCache($name . 'asd/' . $child));
+ $this->assertTrue($this->cache->inCache('other/' . $child));
+ }
+ foreach ($childs as $child) {
+ $this->cache->remove($name . 'asd/' . $child);
+ $this->assertFalse($this->cache->inCache($name . 'asd/' . $child));
+ $this->assertTrue($this->cache->inCache('other/' . $child));
+ }
+ }
+
protected function tearDown() {
if ($this->cache) {
$this->cache->clear();