diff --git a/tests/api/authentication.php b/tests/api/authentication.php new file mode 100644 index 0000000..810b374 --- /dev/null +++ b/tests/api/authentication.php @@ -0,0 +1,48 @@ +start_session('admin','admin'); + $this->assertTrue(is_a($session,'KTAPI_UserSession')); + $this->assertTrue($session->is_active()); + + $session->logout(); + $this->assertFalse($session->is_active()); + } + + function testSystemLogin() + { + $ktapi = new KTAPI(); + + $session = $ktapi->start_system_session(); + $this->assertTrue(is_a($session,'KTAPI_SystemSession')); + $this->assertTrue($session->is_active()); + + $session->logout(); + $this->assertFalse($session->is_active()); + } + + function testAnonymousLogin() + { + $ktapi = new KTAPI(); + + $session = $ktapi->start_anonymous_session(); + $this->assertTrue(is_a($session,'KTAPI_AnonymousSession')); + $this->assertTrue($session->is_active()); + + $session->logout(); + $this->assertFalse($session->is_active()); + } + +} +?> \ No newline at end of file diff --git a/tests/api/document.php b/tests/api/document.php new file mode 100644 index 0000000..a954a2a --- /dev/null +++ b/tests/api/document.php @@ -0,0 +1,206 @@ +ktapi = new KTAPI(); + $this->session=$this->ktapi->start_system_session(); + + $this->root = $this->ktapi->get_root_folder(); + $this->assertTrue(is_a($this->root,'KTAPI_Folder')); + + } + + function tearDown() + { + $this->session->logout(); + } + + + + + function testAddDocument() + { + + return; + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + + @unlink($randomFile); + + $documentid = $document->get_documentid(); + + // get document + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + $this->assertEqual($document->get_title(),'testtitle.txt'); + + $document->delete('because we can'); + + // check if document still exists + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + $this->assertTrue($document->is_deleted()); + + $document->expunge(); + + // check if document still exists + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertFalse(is_a($document, 'KTAPI_Document')); + + + } + + function testCheckinDocument() + { + return; + + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + + @unlink($randomFile); + $documentid = $document->get_documentid(); + + // document should be checked in + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertFalse($document->is_checked_out()); + + $document->checkout('because'); + + // document should now be checked out + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertTrue($document->is_checked_out()); + + $document->undo_checkout('because we want to undo it'); + + // document should be checked in + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertFalse($document->is_checked_out()); + + $document->checkout('because'); + + // document should now be checked out + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertTrue($document->is_checked_out()); + + // create another random file + $randomFile = APIDocumentHelper::createRandomFile('updating the previous content'); + $this->assertTrue(is_file($randomFile)); + + $document->checkin('testname.txt','updating', $randomFile); + @unlink($randomFile); + // document should be checked in + $document = $this->ktapi->get_document_by_id($documentid); + $this->assertFalse($document->is_checked_out()); + + $document->delete('because we can'); + $document->expunge(); + } + + function testAddingDuplicateTitle() + { + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + $this->assertFalse(is_file($randomFile)); + + + $documentid = $document->get_documentid(); + + // file would have been cleaned up because of the add_document + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + + // filenames must be the same as above + $document2 = $this->root->add_document('testtitle.txt','testname2.txt', 'Default', $randomFile); + $this->assertFalse(is_a($document2, 'KTAPI_Document')); + + @unlink($randomFile); + + $document->delete('because we can'); + $document->expunge(); + + if (is_a($document2, 'KTAPI_Document')) + { + $document2->delete('because we can'); + $document2->expunge(); + } + + } + + function testAddingDuplicateFile() + { + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + $document = $this->root->add_document('testtitle.txt','testname.txt', 'Default', $randomFile); + $this->assertTrue(is_a($document, 'KTAPI_Document')); + $this->assertFalse(is_file($randomFile)); + + $documentid = $document->get_documentid(); + + $randomFile = APIDocumentHelper::createRandomFile(); + $this->assertTrue(is_file($randomFile)); + + // filenames must be the same as above + $document2 = $this->root->add_document('testtitle2.txt','testname.txt', 'Default', $randomFile); + $this->assertFalse(is_a($document2, 'KTAPI_Document')); + + @unlink($randomFile); + + $document->delete('because we can'); + $document->expunge(); + + if (is_a($document2, 'KTAPI_Document')) + { + $document2->delete('because we can'); + $document2->expunge(); + } + } +} + + +?> \ No newline at end of file diff --git a/tests/api/folder.php b/tests/api/folder.php new file mode 100644 index 0000000..0e71bc0 --- /dev/null +++ b/tests/api/folder.php @@ -0,0 +1,160 @@ +ktapi = new KTAPI(); + $this->session = $this->ktapi->start_system_session(); + } + + function tearDown() + { + $this->session->logout(); + } + + function testCreateDuplicate() + { + $root=$this->ktapi->get_root_folder(); + $this->assertTrue(is_a($root,'KTAPI_Folder')); + + $folder = $root->add_folder('temp1'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folder2 = $root->add_folder('temp1'); + $this->assertFalse(is_a($folder2,'KTAPI_Folder')); + + $folder->delete('because'); + if (is_a($folder2,'KTAPI_Folder')) + { + $folder2->delete('because'); + } + + } + + function testCreateFolders() + { + $root=$this->ktapi->get_root_folder(); + $this->assertTrue(is_a($root,'KTAPI_Folder')); + + $folder = $root->add_folder('temp1'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folder2 = $folder->add_folder('temp2'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folder3 = $root->add_folder('temp3'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folder4 = $folder3->add_folder('temp4'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folderids = array( + 'temp1'=>$folder->get_folderid(), + 'temp2'=>$folder2->get_folderid(), + 'temp3'=>$folder3->get_folderid(), + 'temp4'=>$folder4->get_folderid() + ); + + unset($folder); unset($folder2); unset($folder3); unset($folder4); + + $paths = array( + 'temp1'=>'/temp1', + 'temp2'=>'/temp1/temp2', + 'temp3'=>'/temp3', + 'temp4'=>'/temp3/temp4', + + ); + + // test reference by name + foreach($paths as $key=>$path) + { + $folder = $root->get_folder_by_name($path); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + if (!is_a($folder, 'KTAPI_Folder')) + continue; + + $this->assertTrue($folder->get_folderid() == $folderids[$key]); + $this->assertTrue($folder->get_full_path() == 'Root Folder' . $path); + } + + // lets clean up + foreach($paths as $key=>$path) + { + $folder = $root->get_folder_by_name($path); + if (is_a($folder,'KTAPI_Folder')) + { + $folder->delete('because ' . $path); + } + $folder = $root->get_folder_by_name($path); + $this->assertTrue(is_a($folder,'PEAR_Error')); + + } + } + + function testRename() + { + $root=$this->ktapi->get_root_folder(); + $this->assertTrue(is_a($root,'KTAPI_Folder')); + + // add a sample folder + $folder = $root->add_folder('newFolder'); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $folderid = $folder->get_folderid(); + + // rename the folder + $response = $folder->rename('renamedFolder'); + $this->assertTrue(!is_a($response,'PEAR_Error')); + + // get the folder by id + $folder=$this->ktapi->get_folder_by_id($folderid); + $this->assertTrue(is_a($folder,'KTAPI_Folder')); + + $this->assertTrue($folder->get_folder_name() == 'renamedFolder'); + + $folder->delete('cleanup'); + + } + + + function getSystemListing() + { + // TODO .. can do anything as admin... + } + + function getAnonymousListing() + { + // TODO + // probably won't be able to do unless the api caters for setting up anonymous... + } + + function getUserListing() + { + // TODO + + } + + + + function copy() + { + // TODO + } + + function move() + { + // TODO + + } +} + +?> \ No newline at end of file