public function testExtractAndMove() { $objFilesystem = new class_filesystem(); $objFilesystem->folderCreate(_projectpath_ . "/temp/moduletest"); file_put_contents(_realpath_ . _projectpath_ . "/temp/moduletest/metadata.xml", $this->getStrMetadata()); $objFilesystem->folderCreate(_projectpath_ . "/temp/moduletest/system"); file_put_contents(_realpath_ . _projectpath_ . "/temp/moduletest/system/test.txt", $this->getStrMetadata()); $objZip = new class_zip(); $objZip->openArchiveForWriting(_projectpath_ . "/temp/autotest.zip"); $objZip->addFile(_projectpath_ . "/temp/moduletest/metadata.xml", "/metadata.xml"); $objZip->addFile(_projectpath_ . "/temp/moduletest/system/test.txt", "/system/test.txt"); $objZip->closeArchive(); $objFilesystem->folderDeleteRecursive(_projectpath_ . "/temp/moduletest/"); $objManager = new class_module_packagemanager_manager(); $objPackageManager = $objManager->getPackageManagerForPath(_projectpath_ . "/temp/autotest.zip"); $this->assertEquals(get_class($objPackageManager), "class_module_packagemanager_packagemanager_module"); $objPackageManager = $objManager->extractPackage(_projectpath_ . "/temp/autotest.zip"); $this->assertEquals(get_class($objPackageManager), "class_module_packagemanager_packagemanager_module"); $objPackageManager->move2Filesystem(); $this->assertFileExists(_realpath_ . "/core/module_autotest/metadata.xml"); $this->assertFileExists(_realpath_ . "/core/module_autotest/system/test.txt"); $objMetadata = new class_module_packagemanager_metadata(); $objMetadata->autoInit("/core/module_autotest/"); $this->assertEquals("Autotest", $objMetadata->getStrTitle()); $this->assertEquals("", $objMetadata->getStrDescription()); $this->assertEquals("3.9.1", $objMetadata->getStrVersion()); $this->assertEquals("Kajona Team", $objMetadata->getStrAuthor()); $this->assertEquals("module_autotest", $objMetadata->getStrTarget()); $this->assertEquals(class_module_packagemanager_manager::STR_TYPE_MODULE, $objMetadata->getStrType()); $this->assertEquals(false, $objMetadata->getBitProvidesInstaller()); $arrRequired = $objMetadata->getArrRequiredModules(); $arrModules = array_keys($arrRequired); $arrVersion = array_values($arrRequired); $this->assertEquals("system", $arrModules[0]); $this->assertEquals("3.4.1", $arrVersion[0]); $this->assertEquals("pages", $arrModules[1]); $this->assertEquals("3.4.2", $arrVersion[1]); $arrImages = $objMetadata->getArrScreenshots(); $this->assertEquals(1, count($arrImages)); $this->assertEquals("/test.jpg", $arrImages[0]); $objFilesystem->folderDeleteRecursive("/core/module_autotest"); $objFilesystem->fileDelete(_projectpath_ . "/temp/autotest.zip"); }
public function testJsonList() { $objFilesystem = new class_filesystem(); $objFilesystem->folderCreate("/files/packageservertest"); $objFilesystem->folderCreate("/files/packageservertest/t"); file_put_contents(_realpath_ . "/files/packageservertest/t/metadata.xml", $this->getStrMetadata()); $objFilesystem->folderCreate("/files/packageservertest/t/system"); file_put_contents(_realpath_ . "/files/packageservertest/t/system/test.txt", $this->getStrMetadata()); $objZip = new class_zip(); $objZip->openArchiveForWriting("/files/packageservertest/autotest.zip"); $objZip->addFile("/files/packageservertest/t/metadata.xml", "/metadata.xml"); $objZip->addFile("/files/packageservertest/t/system/test.txt", "/system/test.txt"); $objZip->closeArchive(); $objFilesystem->folderDeleteRecursive("/files/packageservertest/t"); $objMediamanagerRepo = new class_module_mediamanager_repo(); $objMediamanagerRepo->setStrPath("/files/packageservertest"); $objMediamanagerRepo->setStrTitle("autotest packages"); $objMediamanagerRepo->updateObjectToDb(); class_module_mediamanager_file::syncRecursive($objMediamanagerRepo->getSystemid(), $objMediamanagerRepo->getStrPath()); /** @var $objPortalServer class_module_packageserver_portal */ $objPortalServer = class_module_system_module::getModuleByName("packageserver")->getPortalInstanceOfConcreteModule(); $strJson = $objPortalServer->action("list"); $this->assertNotNull($strJson); $arrData = json_decode($strJson, true); $this->assertTrue(isset($arrData["numberOfTotalItems"])); $this->assertTrue(isset($arrData["items"])); $this->assertTrue(isset($arrData["protocolVersion"])); $this->assertEquals(1, count($arrData["items"])); $arrItem = $arrData["items"][0]; $this->assertTrue(isset($arrItem["systemid"])); $this->assertTrue(isset($arrItem["title"])); $this->assertTrue(isset($arrItem["version"])); $this->assertTrue(isset($arrItem["description"])); $this->assertTrue(isset($arrItem["type"])); $this->assertEquals("Autotest", $arrItem["title"]); $this->assertEquals("3.9.1", $arrItem["version"]); $this->assertEquals("demo", $arrItem["description"]); $this->assertEquals("MODULE", $arrItem["type"]); $objMediamanagerRepo->deleteObjectFromDatabase(); $objFilesystem->fileDelete("/files/packageservertest/autotest.zip"); }
public function testZipFileread() { $objFileSystem = new class_filesystem(); echo "\ttesting class_zip file-reading...\n"; $objZip = new class_zip(); echo "\topening " . _realpath_ . "/test.zip\n"; $this->assertTrue($objZip->openArchiveForWriting("/files/cache/test.zip"), __FILE__ . " openArchive"); $this->assertTrue($objZip->addFile(class_resourceloader::getInstance()->getCorePathForModule("module_system") . "/module_system/metadata.xml"), __FILE__ . " addFile"); $this->assertTrue($objZip->closeArchive(), __FILE__ . " closeArchive"); $this->assertFileExists(_realpath_ . "/files/cache/test.zip", __FILE__ . " checkFileExists"); echo "\treading files\n"; $strContent = $objZip->getFileFromArchive("/files/cache/test.zip", class_resourceloader::getInstance()->getCorePathForModule("module_system") . "/module_system/metadata.xml"); $this->assertTrue(uniStrpos($strContent, "xsi:noNamespaceSchemaLocation=\"https://apidocs.kajona.de/xsd/package.xsd\"") !== false); echo "\tremoving testfile\n"; $this->assertTrue($objFileSystem->fileDelete("/files/cache/test.zip"), __FILE__ . " deleteFile"); $this->assertFileNotExists(_realpath_ . "/files/cache/test.zip", __FILE__ . " checkFileNotExists"); $objFileSystem->folderDeleteRecursive("/files/cache/zipextract"); $this->assertFileNotExists(_realpath_ . "/files/cache/zipextract", __FILE__ . " checkFileNotExists"); }
/** * @see interface_admin_systemtask::executeTask() * @return string */ public function executeTask() { if (!class_module_system_module::getModuleByName("system")->rightRight2()) { return $this->getLang("commons_error_permissions"); } $strFilename = "/backup_" . time() . ".zip"; $objZip = new class_zip(); $objZip->openArchiveForWriting($strFilename); foreach ($this->arrFoldersToInclude as $strOneFolder) { $objZip->addFolder($strOneFolder); } foreach ($this->arrFilesToInclude as $strOneFile) { $objZip->addFile($strOneFile); } if ($objZip->closeArchive()) { return $this->getLang("systemtask_filedump_success") . $strFilename; } else { return $this->getLang("systemtask_filedump_error"); } }