diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-06-12 00:58:47 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-06-12 01:06:27 +0200 |
commit | bb5a2a917b78fb13657ac9ebbcc067bd02b22126 (patch) | |
tree | cc0e41caa7577f5ceec02bb4b1e60a89b9a65664 /tests | |
parent | 2a5ee9512ee88da53dcba862a32279bdc7096bfb (diff) | |
download | nextcloud-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.php | 79 | ||||
-rw-r--r-- | tests/lib/filesystem.php | 31 | ||||
-rw-r--r-- | tests/templates/index.php | 11 |
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 |