Commit e09cc82fc09e7d4db54396da002bfcb41aa4ebac

Authored by kevin_fourie
1 parent ff00441f

Merged in from STABLE trunk...

"KTS-2113"
"Split KTAPI into seperate files based on classes"
Implemented.

Reviewed By: Kevin Fourie

"KTS-2114"
"kt3template.inc.php did not find the PluginRegistry."
Fixed. Added require_once statement.

Reviewed By: Kevin Fourie

"KTS-2116"
"Document object does var_dump() on pear error."
Fixed.

Reviewed By: Kevin Fourie

"KTS-2117"
"upgrade simpletest"
Upgraded.

Reviewed By: Kevin Fourie

"KTS-2118"
"FolderUtil allows duplicate folders to be added"
Fixed.

Reviewed By: Kevin Fourie

"KTS-2115"
"create unit tests for ktapi"
Fixed.

Reviewed By: Kevin Fourie

"KTS-2115"
"create unit tests for ktapi"
Implemented. Some basic unit tests for the KTAPI have been implemented.

Reviewed By: Kevin Fourie

"KTS-2119"
"Error message in upload.php: "get_session() should be overloaded!"
Fixed.

Reviewed By: Kevin Fourie


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/STABLE/trunk@6816 c91229c3-7414-0410-bfa2-8a42b809f60b
tests/api/authentication.php 0 → 100644
  1 +<?
  2 +
  3 +
  4 +
  5 +require_once(dirname(__FILE__) . '/../test.php');
  6 +require_once(KT_DIR . '/ktapi/ktapi.inc.php');
  7 +
  8 +
  9 +class APIAuthenticationTestCase extends KTUnitTestCase
  10 +{
  11 + function testAdmin()
  12 + {
  13 + $ktapi = new KTAPI();
  14 +
  15 + $session = $ktapi->start_session('admin','admin');
  16 + $this->assertTrue(is_a($session,'KTAPI_UserSession'));
  17 + $this->assertTrue($session->is_active());
  18 +
  19 + $session->logout();
  20 + $this->assertFalse($session->is_active());
  21 + }
  22 +
  23 + function testSystemLogin()
  24 + {
  25 + $ktapi = new KTAPI();
  26 +
  27 + $session = $ktapi->start_system_session();
  28 + $this->assertTrue(is_a($session,'KTAPI_SystemSession'));
  29 + $this->assertTrue($session->is_active());
  30 +
  31 + $session->logout();
  32 + $this->assertFalse($session->is_active());
  33 + }
  34 +
  35 + function testAnonymousLogin()
  36 + {
  37 + $ktapi = new KTAPI();
  38 +
  39 + $session = $ktapi->start_anonymous_session();
  40 + $this->assertTrue(is_a($session,'KTAPI_AnonymousSession'));
  41 + $this->assertTrue($session->is_active());
  42 +
  43 + $session->logout();
  44 + $this->assertFalse($session->is_active());
  45 + }
  46 +
  47 +}
  48 +?>
0 49 \ No newline at end of file
... ...
tests/api/document.php 0 → 100644
  1 +<?
  2 +
  3 +
  4 +
  5 +require_once(dirname(__FILE__) . '/../test.php');
  6 +require_once(KT_DIR . '/ktapi/ktapi.inc.php');
  7 +
  8 +class APIDocumentHelper
  9 +{
  10 + function createRandomFile($content='this is some text')
  11 + {
  12 + $temp = tempnam(dirname(__FILE__),'myfile');
  13 + $fp = fopen($temp, 'wt');
  14 + fwrite($fp, $content);
  15 + fclose($fp);
  16 +
  17 + return $temp;
  18 + }
  19 +
  20 +
  21 +}
  22 +
  23 +
  24 +class APIDocumentTestCase extends KTUnitTestCase
  25 +{
  26 + /**
  27 + * @var KTAPI
  28 + */
  29 + var $ktapi;
  30 +
  31 + /**
  32 + * @var KTAPI_Folder
  33 + */
  34 + var $root;
  35 +
  36 + var $session;
  37 +
  38 + function setUp()
  39 + {
  40 + $this->ktapi = new KTAPI();
  41 + $this->session=$this->ktapi->start_system_session();
  42 +
  43 + $this->root = $this->ktapi->get_root_folder();
  44 + $this->assertTrue(is_a($this->root,'KTAPI_Folder'));
  45 +
  46 + }
  47 +
  48 + function tearDown()
  49 + {
  50 + $this->session->logout();
  51 + }
  52 +
  53 +
  54 +
  55 +
  56 + function testAddDocument()
  57 + {
  58 +
  59 + return;
  60 + $randomFile = APIDocumentHelper::createRandomFile();
  61 + $this->assertTrue(is_file($randomFile));
  62 +
  63 + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile);
  64 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  65 +
  66 + @unlink($randomFile);
  67 +
  68 + $documentid = $document->get_documentid();
  69 +
  70 + // get document
  71 + $document = $this->ktapi->get_document_by_id($documentid);
  72 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  73 + $this->assertEqual($document->get_title(),'testtitle.txt');
  74 +
  75 + $document->delete('because we can');
  76 +
  77 + // check if document still exists
  78 + $document = $this->ktapi->get_document_by_id($documentid);
  79 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  80 + $this->assertTrue($document->is_deleted());
  81 +
  82 + $document->expunge();
  83 +
  84 + // check if document still exists
  85 + $document = $this->ktapi->get_document_by_id($documentid);
  86 + $this->assertFalse(is_a($document, 'KTAPI_Document'));
  87 +
  88 +
  89 + }
  90 +
  91 + function testCheckinDocument()
  92 + {
  93 + return;
  94 +
  95 + $randomFile = APIDocumentHelper::createRandomFile();
  96 + $this->assertTrue(is_file($randomFile));
  97 +
  98 + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile);
  99 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  100 +
  101 + @unlink($randomFile);
  102 + $documentid = $document->get_documentid();
  103 +
  104 + // document should be checked in
  105 + $document = $this->ktapi->get_document_by_id($documentid);
  106 + $this->assertFalse($document->is_checked_out());
  107 +
  108 + $document->checkout('because');
  109 +
  110 + // document should now be checked out
  111 + $document = $this->ktapi->get_document_by_id($documentid);
  112 + $this->assertTrue($document->is_checked_out());
  113 +
  114 + $document->undo_checkout('because we want to undo it');
  115 +
  116 + // document should be checked in
  117 + $document = $this->ktapi->get_document_by_id($documentid);
  118 + $this->assertFalse($document->is_checked_out());
  119 +
  120 + $document->checkout('because');
  121 +
  122 + // document should now be checked out
  123 + $document = $this->ktapi->get_document_by_id($documentid);
  124 + $this->assertTrue($document->is_checked_out());
  125 +
  126 + // create another random file
  127 + $randomFile = APIDocumentHelper::createRandomFile('updating the previous content');
  128 + $this->assertTrue(is_file($randomFile));
  129 +
  130 + $document->checkin('testname.txt','updating', $randomFile);
  131 + @unlink($randomFile);
  132 + // document should be checked in
  133 + $document = $this->ktapi->get_document_by_id($documentid);
  134 + $this->assertFalse($document->is_checked_out());
  135 +
  136 + $document->delete('because we can');
  137 + $document->expunge();
  138 + }
  139 +
  140 + function testAddingDuplicateTitle()
  141 + {
  142 + $randomFile = APIDocumentHelper::createRandomFile();
  143 + $this->assertTrue(is_file($randomFile));
  144 +
  145 + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile);
  146 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  147 + $this->assertFalse(is_file($randomFile));
  148 +
  149 +
  150 + $documentid = $document->get_documentid();
  151 +
  152 + // file would have been cleaned up because of the add_document
  153 + $randomFile = APIDocumentHelper::createRandomFile();
  154 + $this->assertTrue(is_file($randomFile));
  155 +
  156 +
  157 + // filenames must be the same as above
  158 + $document2 = $this->root->add_document('testtitle.txt','testname2.txt', 'Default', $randomFile);
  159 + $this->assertFalse(is_a($document2, 'KTAPI_Document'));
  160 +
  161 + @unlink($randomFile);
  162 +
  163 + $document->delete('because we can');
  164 + $document->expunge();
  165 +
  166 + if (is_a($document2, 'KTAPI_Document'))
  167 + {
  168 + $document2->delete('because we can');
  169 + $document2->expunge();
  170 + }
  171 +
  172 + }
  173 +
  174 + function testAddingDuplicateFile()
  175 + {
  176 + $randomFile = APIDocumentHelper::createRandomFile();
  177 + $this->assertTrue(is_file($randomFile));
  178 +
  179 + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile);
  180 + $this->assertTrue(is_a($document, 'KTAPI_Document'));
  181 + $this->assertFalse(is_file($randomFile));
  182 +
  183 + $documentid = $document->get_documentid();
  184 +
  185 + $randomFile = APIDocumentHelper::createRandomFile();
  186 + $this->assertTrue(is_file($randomFile));
  187 +
  188 + // filenames must be the same as above
  189 + $document2 = $this->root->add_document('testtitle2.txt','testname.txt', 'Default', $randomFile);
  190 + $this->assertFalse(is_a($document2, 'KTAPI_Document'));
  191 +
  192 + @unlink($randomFile);
  193 +
  194 + $document->delete('because we can');
  195 + $document->expunge();
  196 +
  197 + if (is_a($document2, 'KTAPI_Document'))
  198 + {
  199 + $document2->delete('because we can');
  200 + $document2->expunge();
  201 + }
  202 + }
  203 +}
  204 +
  205 +
  206 +?>
0 207 \ No newline at end of file
... ...
tests/api/folder.php 0 → 100644
  1 +<?
  2 +require_once(dirname(__FILE__) . '/../test.php');
  3 +require_once(KT_DIR . '/ktapi/ktapi.inc.php');
  4 +
  5 +class APIFolderTestCase extends KTUnitTestCase
  6 +{
  7 + /**
  8 + * @var KTAPI
  9 + */
  10 + var $ktapi;
  11 + var $session;
  12 +
  13 + function setUp()
  14 + {
  15 + $this->ktapi = new KTAPI();
  16 + $this->session = $this->ktapi->start_system_session();
  17 + }
  18 +
  19 + function tearDown()
  20 + {
  21 + $this->session->logout();
  22 + }
  23 +
  24 + function testCreateDuplicate()
  25 + {
  26 + $root=$this->ktapi->get_root_folder();
  27 + $this->assertTrue(is_a($root,'KTAPI_Folder'));
  28 +
  29 + $folder = $root->add_folder('temp1');
  30 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  31 +
  32 + $folder2 = $root->add_folder('temp1');
  33 + $this->assertFalse(is_a($folder2,'KTAPI_Folder'));
  34 +
  35 + $folder->delete('because');
  36 + if (is_a($folder2,'KTAPI_Folder'))
  37 + {
  38 + $folder2->delete('because');
  39 + }
  40 +
  41 + }
  42 +
  43 + function testCreateFolders()
  44 + {
  45 + $root=$this->ktapi->get_root_folder();
  46 + $this->assertTrue(is_a($root,'KTAPI_Folder'));
  47 +
  48 + $folder = $root->add_folder('temp1');
  49 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  50 +
  51 + $folder2 = $folder->add_folder('temp2');
  52 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  53 +
  54 + $folder3 = $root->add_folder('temp3');
  55 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  56 +
  57 + $folder4 = $folder3->add_folder('temp4');
  58 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  59 +
  60 + $folderids = array(
  61 + 'temp1'=>$folder->get_folderid(),
  62 + 'temp2'=>$folder2->get_folderid(),
  63 + 'temp3'=>$folder3->get_folderid(),
  64 + 'temp4'=>$folder4->get_folderid()
  65 + );
  66 +
  67 + unset($folder); unset($folder2); unset($folder3); unset($folder4);
  68 +
  69 + $paths = array(
  70 + 'temp1'=>'/temp1',
  71 + 'temp2'=>'/temp1/temp2',
  72 + 'temp3'=>'/temp3',
  73 + 'temp4'=>'/temp3/temp4',
  74 +
  75 + );
  76 +
  77 + // test reference by name
  78 + foreach($paths as $key=>$path)
  79 + {
  80 + $folder = $root->get_folder_by_name($path);
  81 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  82 + if (!is_a($folder, 'KTAPI_Folder'))
  83 + continue;
  84 +
  85 + $this->assertTrue($folder->get_folderid() == $folderids[$key]);
  86 + $this->assertTrue($folder->get_full_path() == 'Root Folder' . $path);
  87 + }
  88 +
  89 + // lets clean up
  90 + foreach($paths as $key=>$path)
  91 + {
  92 + $folder = $root->get_folder_by_name($path);
  93 + if (is_a($folder,'KTAPI_Folder'))
  94 + {
  95 + $folder->delete('because ' . $path);
  96 + }
  97 + $folder = $root->get_folder_by_name($path);
  98 + $this->assertTrue(is_a($folder,'PEAR_Error'));
  99 +
  100 + }
  101 + }
  102 +
  103 + function testRename()
  104 + {
  105 + $root=$this->ktapi->get_root_folder();
  106 + $this->assertTrue(is_a($root,'KTAPI_Folder'));
  107 +
  108 + // add a sample folder
  109 + $folder = $root->add_folder('newFolder');
  110 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  111 +
  112 + $folderid = $folder->get_folderid();
  113 +
  114 + // rename the folder
  115 + $response = $folder->rename('renamedFolder');
  116 + $this->assertTrue(!is_a($response,'PEAR_Error'));
  117 +
  118 + // get the folder by id
  119 + $folder=$this->ktapi->get_folder_by_id($folderid);
  120 + $this->assertTrue(is_a($folder,'KTAPI_Folder'));
  121 +
  122 + $this->assertTrue($folder->get_folder_name() == 'renamedFolder');
  123 +
  124 + $folder->delete('cleanup');
  125 +
  126 + }
  127 +
  128 +
  129 + function getSystemListing()
  130 + {
  131 + // TODO .. can do anything as admin...
  132 + }
  133 +
  134 + function getAnonymousListing()
  135 + {
  136 + // TODO
  137 + // probably won't be able to do unless the api caters for setting up anonymous...
  138 + }
  139 +
  140 + function getUserListing()
  141 + {
  142 + // TODO
  143 +
  144 + }
  145 +
  146 +
  147 +
  148 + function copy()
  149 + {
  150 + // TODO
  151 + }
  152 +
  153 + function move()
  154 + {
  155 + // TODO
  156 +
  157 + }
  158 +}
  159 +
  160 +?>
0 161 \ No newline at end of file
... ...