normalizePath($this->packagePath)); $fileData = 'data:application/zip;base64,' . base64_encode($fileData); $extensionManager = new \Espo\Core\ExtensionManager($this->getContainer()); $extensionId = $extensionManager->upload($fileData); $this->assertStringMatchesFormat('%x', $extensionId); $this->assertFileExists('data/upload/extensions/' . $extensionId . 'z'); $this->assertFileExists('data/upload/extensions/' . $extensionId); //directory //$this->assertDirectoryExists('data/upload/extensions/' . $extensionId); return $extensionId; } public function testInstall() { $extensionId = $this->testUpload(); $extensionManager = new \Espo\Core\ExtensionManager($this->getContainer()); $extensionManager->install(array('id' => $extensionId)); $this->assertFileExists('data/upload/extensions/' . $extensionId . 'z'); $this->assertFileNotExists('data/upload/extensions/' . $extensionId); //directory $this->assertFileExists('data/.backup/extensions/' . $extensionId); //directory $this->assertFileExists('application/Espo/Modules/Test'); //directory $this->assertFileExists('application/Espo/Modules/Test/Resources/metadata/scopes/TestEntity.json'); $this->assertFileExists('client/modules/test'); //directory $this->assertFileExists('client/modules/test/src/views/test-entity/fields/custom-type.js'); $this->assertFileNotExists('vendor/phpunit'); //directory $this->assertFileNotExists('extension.php'); $this->assertFileNotExists('upgrade.php'); return $extensionId; } public function testUninstall() { $extensionId = $this->testInstall(); $extensionManager = new \Espo\Core\ExtensionManager($this->getContainer()); $extensionManager->uninstall(array('id' => $extensionId)); $this->assertFileNotExists('data/.backup/extensions/' . $extensionId); //directory $this->assertFileNotExists('data/upload/extensions/' . $extensionId); //directory $this->assertFileExists('data/upload/extensions/' . $extensionId . 'z'); $this->assertFileNotExists('application/Espo/Modules/Test'); //directory $this->assertFileNotExists('application/Espo/Modules/Test/Resources/metadata/scopes/TestEntity.json'); $this->assertFileNotExists('client/modules/test'); //directory $this->assertFileNotExists('client/modules/test/src/views/test-entity/fields/custom-type.js'); $this->assertFileExists('vendor/phpunit'); //directory $this->assertFileExists('extension.php'); $this->assertFileExists('upgrade.php'); return $extensionId; } public function testDelete() { $extensionId = $this->testUninstall(); $extensionManager = new \Espo\Core\ExtensionManager($this->getContainer()); $extensionManager->delete(array('id' => $extensionId)); $this->assertFileNotExists('data/.backup/extensions/' . $extensionId); //directory $this->assertFileNotExists('data/upload/extensions/' . $extensionId); //directory $this->assertFileNotExists('data/upload/extensions/' . $extensionId . 'z'); $this->assertFileNotExists('application/Espo/Modules/Test'); //directory $this->assertFileNotExists('application/Espo/Modules/Test/Resources/metadata/scopes/TestEntity.json'); $this->assertFileNotExists('client/modules/test'); //directory $this->assertFileNotExists('client/modules/test/src/views/test-entity/fields/custom-type.js'); $this->assertFileExists('vendor/phpunit'); //directory $this->assertFileExists('extension.php'); $this->assertFileExists('upgrade.php'); } }