aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/filestorage.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2012-02-12 18:06:32 +0100
committerRobin Appelman <icewind@owncloud.com>2012-02-12 18:07:58 +0100
commit357944693017572319334aa8943e888cde0e99c0 (patch)
treed5c7e79c674c3db637865e8f14356ef2235a81aa /tests/lib/filestorage.php
parent0917bdecddd74a48ee2b21f18e184c579d156b62 (diff)
downloadnextcloud-server-357944693017572319334aa8943e888cde0e99c0.tar.gz
nextcloud-server-357944693017572319334aa8943e888cde0e99c0.zip
use SimpleTest for unit testing
includes some tests for storage providers, more to come
Diffstat (limited to 'tests/lib/filestorage.php')
-rw-r--r--tests/lib/filestorage.php63
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/lib/filestorage.php b/tests/lib/filestorage.php
new file mode 100644
index 00000000000..edb029d916f
--- /dev/null
+++ b/tests/lib/filestorage.php
@@ -0,0 +1,63 @@
+<?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/>.
+*
+*/
+
+abstract class Test_FileStorage extends UnitTestCase {
+ /**
+ * @var OC_Filestorage instance
+ */
+ protected $instance;
+
+ /**
+ * the root folder of the storage should always exist, be readable and be recognized as a directory
+ */
+ public function testRoot(){
+ $this->assertTrue($this->instance->file_exists('/'),'Root folder does not exist');
+ $this->assertTrue($this->instance->is_readable('/'),'Root folder is not readable');
+ $this->assertTrue($this->instance->is_dir('/'),'Root folder is not a directory');
+ $this->assertFalse($this->instance->is_file('/'),'Root folder is a file');
+
+ //without this, any further testing would be useless, not an acutal requirement for filestorage though
+ $this->assertTrue($this->instance->is_writable('/'),'Root folder is not writable');
+ }
+
+ /**
+ * test the various uses of file_get_contents and file_put_contents
+ */
+ public function testGetPutContents(){
+ $sourceFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $sourceText=file_get_contents($sourceFile);
+
+ //fill a file with string data
+ $this->instance->file_put_contents('/lorem.txt',$sourceText);
+ $this->assertEqual($sourceText,$this->instance->file_get_contents('/lorem.txt'),'data returned from file_get_contents is not equal to the source data');
+
+ //fill a file with a stream
+ $this->instance->file_put_contents('/lorem.txt',fopen($sourceFile,'r'));
+ $this->assertEqual($sourceText,$this->instance->file_get_contents('/lorem.txt'),'data returned from file_get_contents is not equal to the source data');
+
+ //empty the file
+ $this->instance->file_put_contents('/lorem.txt','');
+ $this->assertEqual('',$this->instance->file_get_contents('/lorem.txt'),'file not emptied');
+ }
+}
+
+
class="nx">PHP_EOL; exit(0); } // only load apps if no update is due, // else only core commands will be available if (!\OCP\Util::needUpgrade()) { // load all apps to get all api routes properly setup OC_App::loadApps(); } $defaults = new OC_Defaults; $application = new Application($defaults->getName(), \OC_Util::getVersionString()); require_once 'core/register_command.php'; if (!\OCP\Util::needUpgrade()) { foreach(OC_App::getAllApps() as $app) { $file = OC_App::getAppPath($app).'/appinfo/register_command.php'; if(file_exists($file)) { require $file; } } } $application->run(); } catch (Exception $ex) { echo "An unhandled exception has been thrown:" . PHP_EOL; echo $ex; }