4 changed files with 133 additions and 0 deletions
-
37lib/cache/xcache.php
-
42tests/lib/cache.php
-
27tests/lib/cache/file.php
-
27tests/lib/cache/xcache.php
@ -0,0 +1,37 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
|
|||
class OC_Cache_XCache{ |
|||
/** |
|||
* entries in XCache gets namespaced to prevent collisions between owncloud instaces and users |
|||
*/ |
|||
protected function getNameSpace() { |
|||
return OC_Util::getInstanceId().'/'.OC_User::getUser().'/'; |
|||
} |
|||
|
|||
public function get($key) { |
|||
return xcache_get($this->getNamespace().$key); |
|||
} |
|||
|
|||
public function set($key, $value, $ttl=0) { |
|||
if($ttl>0){ |
|||
return xcache_set($this->getNamespace().$key,$value,$ttl); |
|||
}else{ |
|||
return xcache_set($this->getNamespace().$key,$value); |
|||
} |
|||
} |
|||
|
|||
public function remove($key) { |
|||
return xcache_unset($this->getNamespace().$key); |
|||
} |
|||
|
|||
public function clear(){ |
|||
return xcache_unset_by_prefix($this->getNamespace()); |
|||
} |
|||
} |
|||
@ -0,0 +1,42 @@ |
|||
<?php |
|||
/** |
|||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com> |
|||
* This file is licensed under the Affero General Public License version 3 or |
|||
* later. |
|||
* See the COPYING-README file. |
|||
*/ |
|||
|
|||
abstract class Test_Cache extends UnitTestCase { |
|||
/** |
|||
* @var OC_Cache cache; |
|||
*/ |
|||
protected $instance; |
|||
|
|||
public function tearDown(){ |
|||
$this->instance->clear(); |
|||
} |
|||
|
|||
function testSimple(){ |
|||
$this->assertNull($this->instance->get('value1')); |
|||
|
|||
$value='foobar'; |
|||
$this->instance->set('value1',$value); |
|||
$received=$this->instance->get('value1'); |
|||
$this->assertEqual($value,$received,'Value recieved from cache not equal to the original'); |
|||
$value='ipsum lorum'; |
|||
$this->instance->set('value1',$value); |
|||
$received=$this->instance->get('value1'); |
|||
$this->assertEqual($value,$received,'Value not overwritten by seccond set'); |
|||
|
|||
$value2='foobar'; |
|||
$this->instance->set('value2',$value2); |
|||
$received2=$this->instance->get('value2'); |
|||
$this->assertEqual($value,$received,'Value changed while setting other variable'); |
|||
$this->assertEqual($value2,$received2,'Seccond value not equal to original'); |
|||
|
|||
$this->assertNull($this->instance->get('not_set'),'Unset value not equal to null'); |
|||
} |
|||
|
|||
function testTTL(){ |
|||
} |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
<?php |
|||
/** |
|||
* ownCloud |
|||
* |
|||
* @author Robin Appelman |
|||
* @copyright 2012 Robin Appelman icewind@owncloud.com |
|||
* |
|||
* This library is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
* License as published by the Free Software Foundation; either |
|||
* version 3 of the License, or any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public |
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
class Test_Cache_File extends Test_Cache { |
|||
public function setUp(){ |
|||
$this->instance=new OC_Cache_File(); |
|||
} |
|||
} |
|||
@ -0,0 +1,27 @@ |
|||
<?php |
|||
/** |
|||
* ownCloud |
|||
* |
|||
* @author Robin Appelman |
|||
* @copyright 2012 Robin Appelman icewind@owncloud.com |
|||
* |
|||
* This library is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
|||
* License as published by the Free Software Foundation; either |
|||
* version 3 of the License, or any later version. |
|||
* |
|||
* This library is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
|||
* |
|||
* You should have received a copy of the GNU Affero General Public |
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
|||
* |
|||
*/ |
|||
|
|||
class Test_Cache_XCache extends Test_Cache { |
|||
public function setUp(){ |
|||
$this->instance=new OC_Cache_XCache(); |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue