summaryrefslogtreecommitdiffstats
path: root/lib
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 /lib
parent2a5ee9512ee88da53dcba862a32279bdc7096bfb (diff)
downloadnextcloud-server-bb5a2a917b78fb13657ac9ebbcc067bd02b22126.tar.gz
nextcloud-server-bb5a2a917b78fb13657ac9ebbcc067bd02b22126.zip
test case library and start of filesystem test
Diffstat (limited to 'lib')
-rw-r--r--lib/testcase.php93
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/testcase.php b/lib/testcase.php
new file mode 100644
index 00000000000..19494dc2f19
--- /dev/null
+++ b/lib/testcase.php
@@ -0,0 +1,93 @@
+<?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/>.
+*
+*/
+
+
+/**
+ * base class for unit tests
+ */
+class OC_TestCase{
+ private $tests; //array of all tests in this test case
+
+ public function __construct(){
+ $this->tests=array();
+ $this->results=array();
+ $functions=get_class_methods(get_class($this));
+ $exclude=get_class_methods('OC_TestCase');
+ foreach($functions as $function){
+ if(array_search($function,$exclude)===false){
+ $this->tests[]=$function;
+ }
+ }
+ }
+
+ public function getTests(){
+ return $this->tests;
+ }
+
+ /**
+ * function that gets called before each test
+ */
+ private function setup(){
+ }
+
+ /**
+ * function that gets called after each test
+ */
+ private function tearDown(){
+ }
+
+ /**
+ * check if the result equals the expected result
+ * @param mixed $expected the expected result
+ * @param mixed $result the actual result
+ * @param string $error (optional) the error message to display if the result isn't expected
+ */
+ protected function assertEquals($expected,$result,$error=''){
+ if($expected!==$result){
+ if($expected===true){
+ $expected='true';
+ }
+ if($expected===false){
+ $expected='false';
+ }
+ if($result===true){
+ $result='true';
+ }
+ if($result===false){
+ $result='false';
+ }
+ if($error==''){
+ $error="Unexpected result, expected '$expected' but was '$result'";
+ }
+ throw new Exception($error);
+ }
+ }
+
+ /**
+ * fail the test
+ * @param string $error the error message
+ */
+ protected function fail($error){
+ throw new Exception($error);
+ }
+} \ No newline at end of file