summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-06-12 00:58:47 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-06-12 01:06:27 +0200
commitbb5a2a917b78fb13657ac9ebbcc067bd02b22126 (patch)
treecc0e41caa7577f5ceec02bb4b1e60a89b9a65664 /tests
parent2a5ee9512ee88da53dcba862a32279bdc7096bfb (diff)
downloadnextcloud-server-bb5a2a917b78fb13657ac9ebbcc067bd02b22126.tar.gz
nextcloud-server-bb5a2a917b78fb13657ac9ebbcc067bd02b22126.zip
test case library and start of filesystem test
Diffstat (limited to 'tests')
-rw-r--r--tests/index.php79
-rw-r--r--tests/lib/filesystem.php31
-rw-r--r--tests/templates/index.php11
3 files changed, 121 insertions, 0 deletions
diff --git a/tests/index.php b/tests/index.php
new file mode 100644
index 00000000000..5e0dbc2c838
--- /dev/null
+++ b/tests/index.php
@@ -0,0 +1,79 @@
+<?php
+/**
+* ownCloud
+*
+* @author Robin Appelman
+* @copyright 2010 Robin Appelman icewind1991@gmailc.om
+*
+* 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/>.
+*
+*/
+
+
+/**
+ * run all test cases
+ */
+ $RUNTIME_NOSETUPFS=true;
+require_once('../lib/base.php');
+require_once('testcase.php');
+require_once('template.php');
+
+$testCases=loadFiles(__DIR__,array('index.php','templates'));
+
+$testResults=array();
+foreach($testCases as $testCaseClass){
+ $testCase=new $testCaseClass();
+ $results=array();
+ foreach($testCase->getTests() as $test){
+ $testCase->setup();
+ try{
+ $testCase->$test();
+ $results[$test]='Ok';
+ }catch(Exception $e){
+ $results[$test]=$e->getMessage();
+ }
+ $testCase->tearDown();
+ }
+ $testResults[$testCaseClass]=$results;
+}
+
+$tmpl = new OC_TEMPLATE( 'tests', 'index');
+$tmpl->assign('tests',$testResults);
+$tmpl->printPage();
+
+/**
+ * recursively load all files in a folder
+ * @param string $path
+ * @param array $exclude list of files to exclude
+ */
+function loadFiles($path,$exclude=false){
+ $results=array();
+ if(!$exclude){
+ $exclude=array();
+ }
+ $dh=opendir($path);
+ while($file=readdir($dh)){
+ if($file!='.' && $file!='..' && array_search($file,$exclude)===false){
+ if(is_file($path.'/'.$file)){
+ $result=require_once($path.'/'.$file);
+ $results[]=$result;
+ }else{
+ $subResults=loadFiles($path.'/'.$file);
+ $results=array_merge($results,$subResults);
+ }
+ }
+ }
+ return $results;
+}
+?> \ No newline at end of file
diff --git a/tests/lib/filesystem.php b/tests/lib/filesystem.php
new file mode 100644
index 00000000000..a1ded471a65
--- /dev/null
+++ b/tests/lib/filesystem.php
@@ -0,0 +1,31 @@
+<?php
+class OC_FILEYSYSTEM_Test extends OC_TestCase
+{
+ public function setup(){
+ OC_UTIL::setupFS('testuser','testcase');
+ }
+
+ public function isDir(){
+ $this->assertEquals(true, OC_FILESYSTEM::is_dir('/'),'Root is not a directory');
+ }
+
+ public function fileExists(){
+ $this->assertEquals(false, OC_FILESYSTEM::file_exists('/dummy'),'Unexpected result with non-existing file');
+ OC_FILESYSTEM::file_put_contents('/dummy','foo');
+ $this->assertEquals(true, OC_FILESYSTEM::file_exists('/dummy'),'Unexpected result with existing file');
+ }
+
+ public function mkdir(){
+ OC_FILESYSTEM::mkdir('/dummy');
+ $this->assertEquals(true, OC_FILESYSTEM::file_exists('/dummy'),'No such file or directory after creating folder');
+ $this->assertEquals(true, OC_FILESYSTEM::is_dir('/dummy'),'File created instead of filder');
+ }
+
+ public function tearDown(){
+ OC_FILESYSTEM::chroot('');
+ OC_FILESYSTEM::delTree('/testuser');
+ OC_UTIL::tearDownFS();
+ }
+}
+return 'OC_FILEYSYSTEM_Test';
+?> \ No newline at end of file
diff --git a/tests/templates/index.php b/tests/templates/index.php
new file mode 100644
index 00000000000..b8d3dac0666
--- /dev/null
+++ b/tests/templates/index.php
@@ -0,0 +1,11 @@
+<?php foreach($_['tests'] as $name=>$results):?>
+ <h2><?php echo $name;?></h2>
+ <ul>
+ <?php foreach($results as $test=>$result):?>
+ <li>
+ <b><?php echo $test;?></b>
+ <?php echo $result;?>
+ </il>
+ <?php endforeach ?>
+ </ul>
+<?php endforeach ?> \ No newline at end of file