Beispiel #1
0
 /**
  * @param string $mailsFromFileTransportDirectory 
  * @return integer
  */
 public static function getMailsCount($mailsFromFileTransportDirectory)
 {
     $filesGlob = $mailsFromFileTransportDirectory . DIRECTORY_SEPARATOR . 'ZendMail*';
     $mailsCountCommand = sprintf("ls -1 %s 2> /dev/null | wc -l", $filesGlob);
     list($error, $output, $exitCode) = SystemHelper::user_proc_exec($mailsCountCommand);
     return (int) $output[0];
 }
Beispiel #2
0
 public static function resetDataDirectory()
 {
     // create item data structure
     $itemDataDir = Registry::getConfig()->item->data->directory;
     $itemDataRestoreFilepath = Registry::getConfig()->test->item->data->restore->file;
     if (!file_exists($itemDataRestoreFilepath)) {
         throw new \Exception('data restore file not found: ' . $itemDataRestoreFilepath);
     }
     DirectoryHelper::removeRecursiv($itemDataDir);
     mkdir($itemDataDir, 0777, true);
     $cmd = sprintf('tar xf %s -C %s', $itemDataRestoreFilepath, $itemDataDir);
     list($error, $output, $exitCode) = SystemHelper::user_proc_exec($cmd);
     if ($exitCode != 0) {
         die("couldn't restore item data (" . $itemDataRestoreFilepath . ") into folder " . $itemDataDir . " (exit code: " . $exitCode . ")");
     }
 }
 /**
  * @param string $websiteId 
  */
 protected function copyWebsiteBuildsFromStorageToBuildsDirectory($websiteId)
 {
     $config = Registry::getConfig();
     $buildsDirectory = $config->builds->directory;
     $websiteBuildsDirectory = $buildsDirectory . DIRECTORY_SEPARATOR . $websiteId;
     $websiteBuildsStorageDirectory = $config->test->builds->storage->directory . DIRECTORY_SEPARATOR . $websiteId;
     if (is_dir($websiteBuildsStorageDirectory)) {
         if (!is_dir($buildsDirectory)) {
             mkdir($buildsDirectory);
         }
         if (!is_dir($websiteBuildsDirectory)) {
             mkdir($websiteBuildsDirectory);
         }
         $copyCommand = sprintf('cp -r %s %s', $websiteBuildsStorageDirectory, $buildsDirectory);
         SystemHelper::user_proc_exec($copyCommand);
     }
 }
Beispiel #4
0
 /**
  * @test
  * @group integration
  */
 public function exportModulesShouldExportAsExpectedWithSpecifiedName()
 {
     $config = Registry::getConfig();
     $exportDirectoryName = 'test_export_0_modules';
     $exportBaseDirectory = $config->export->directory;
     $exportDirectory = $exportBaseDirectory . DIRECTORY_SEPARATOR . md5($exportDirectoryName);
     $exportZipFile = $exportBaseDirectory . DIRECTORY_SEPARATOR . md5($exportDirectoryName) . DIRECTORY_SEPARATOR . md5($exportDirectoryName) . '.' . self::EXPORT_FILE_EXTENSION;
     $websiteId = 'SITE-ae6e702f-10ac-4e1e-exmo-307e4b8765db-SITE';
     $moduleIds = array('"MODUL-0rap5eb8-0df3-47e9-exmo-90ae9d96d3c0-MODUL"', '"MODUL-0rap5eb8-0df3-47e9-exmo-90ae9d96d3c1-MODUL"', '"MODUL-0rap5eb8-0df3-47e9-exmo-90ae9d96d3c2-MODUL"', '"MODUL-0rap5eb8-0df3-47e9-exmo-90ae9d96d3c3-MODUL"');
     $requestUri = sprintf('export/modules/params/{"websiteid":"%s","ids":[%s],"name":"%s"}', $websiteId, implode(',', $moduleIds), $exportDirectoryName);
     $this->dispatch($requestUri);
     $response = $this->getValidatedSuccessResponse();
     $responseData = $response->getData();
     $this->assertObjectHasAttribute('url', $responseData);
     $nameDataPart = sprintf('{"name":"%s"}', $exportDirectoryName);
     $this->assertStringEndsWith($nameDataPart, $responseData->url);
     $this->assertTrue(is_dir($exportDirectory));
     $this->assertFileExists($exportZipFile);
     $unzipCommand = sprintf("unzip %s -d %s", $exportZipFile, $exportDirectory);
     if (strstr($unzipCommand, $exportBaseDirectory)) {
         SystemHelper::user_proc_exec($unzipCommand);
         DirectoryHelper::removeRecursiv($exportZipFile, $exportBaseDirectory);
     }
     $testFilesDirectory = $config->test->files->directory;
     $expectedExportTreeFile = $testFilesDirectory . DIRECTORY_SEPARATOR . 'trees' . DIRECTORY_SEPARATOR . 'export' . DIRECTORY_SEPARATOR . 'expected_modules_export.tree';
     $expectedExportTree = file_get_contents($expectedExportTreeFile);
     $exportDirectoryTree = DirectoryHelper::getRecursiveAsJson($exportDirectory, true);
     $this->assertSame($expectedExportTree, $exportDirectoryTree, "Tree mismatch between export directory tree and expected directory tree");
     DirectoryHelper::removeRecursiv($exportDirectory, $exportBaseDirectory);
 }
Beispiel #5
0
 /**
  * @param  string $websiteId
  * @return integer
  */
 private function getFilesCountOfWebsiteIndex($websiteId)
 {
     $config = Registry::getConfig();
     $indexDirectory = $config->indexing->basedir;
     $websiteIndexDirectory = $indexDirectory . DIRECTORY_SEPARATOR . $websiteId;
     $fileCountCommand = sprintf("ls -1 %s | wc -l", $websiteIndexDirectory);
     list($error, $output, $status) = SystemHelper::user_proc_exec($fileCountCommand);
     return (int) $output[0];
 }
Beispiel #6
0
 /**
  * @test
  * @group integration
  */
 public function exportTemplateSnippetsShouldExportAsExpectedWithSpecifiedName()
 {
     $config = Registry::getConfig();
     $exportDirectoryName = 'test_export_0_templatesnippet';
     $exportBaseDirectory = $config->export->directory;
     $exportDirectory = $exportBaseDirectory . DIRECTORY_SEPARATOR . md5($exportDirectoryName);
     $exportZipFile = $exportBaseDirectory . DIRECTORY_SEPARATOR . md5($exportDirectoryName) . DIRECTORY_SEPARATOR . md5($exportDirectoryName) . '.' . self::EXPORT_FILE_EXTENSION;
     $websiteId = 'SITE-ae6e702f-10ac-4e1e-exmo-307e4b8765db-SITE';
     $templateSnippetIds = array('TPLS-template-snip-pet0-test-000000000021-TPLS', 'TPLS-template-snip-pet0-test-000000000022-TPLS', 'TPLS-template-snip-pet0-test-000000000023-TPLS');
     $requestUri = sprintf('export/templatesnippets/params/%s', \Zend_Json::encode(array('websiteid' => $websiteId, 'ids' => $templateSnippetIds, 'name' => $exportDirectoryName)));
     $this->dispatch($requestUri);
     $response = $this->getValidatedSuccessResponse();
     $responseData = $response->getData();
     $this->assertObjectHasAttribute('url', $responseData);
     $nameDataPart = sprintf('{"name":"%s"}', $exportDirectoryName);
     $this->assertStringEndsWith($nameDataPart, $responseData->url);
     $this->assertTrue(is_dir($exportDirectory));
     $this->assertFileExists($exportZipFile);
     $unzipCommand = sprintf("unzip %s -d %s", $exportZipFile, $exportDirectory);
     if (strstr($unzipCommand, $exportBaseDirectory)) {
         SystemHelper::user_proc_exec($unzipCommand);
         DirectoryHelper::removeRecursiv($exportZipFile, $exportBaseDirectory);
     }
     $testFilesDirectory = $config->test->files->directory;
     $expectedExportTreeFile = $testFilesDirectory . DIRECTORY_SEPARATOR . 'trees' . DIRECTORY_SEPARATOR . 'export' . DIRECTORY_SEPARATOR . 'expected_templatesnippets_export.tree';
     $expectedExportTree = file_get_contents($expectedExportTreeFile);
     $exportDirectoryTree = DirectoryHelper::getRecursiveAsJson($exportDirectory, true);
     $this->assertSame($expectedExportTree, $exportDirectoryTree, "Tree mismatch between export directory tree and expected directory tree");
     DirectoryHelper::removeRecursiv($exportDirectory, $exportBaseDirectory);
 }
Beispiel #7
0
 /**
  * @test
  * @group integration
  */
 public function exportWebsiteShouldCreateExpectedFiles()
 {
     // ARRANGE
     $websiteId = 'SITE-controll-er0e-xpor-t0we-bsite0000001-SITE';
     $config = Registry::getConfig();
     $expectedJsonFilesDirectory = $config->test->json->storage->directory;
     $testFilesDirectory = $config->test->files->directory;
     $expectedExportedPackagesTree = FS::readContentFromFile(FS::joinPath($testFilesDirectory, 'trees', 'export', $websiteId, 'packages.tree'));
     $exportDirectoryName = 'test_export_0_website_with_album';
     $exportBaseDirectory = $config->export->directory;
     $exportDirectory = FS::joinPath($exportBaseDirectory, md5($exportDirectoryName));
     $exportZipFileName = md5($exportDirectoryName) . '.' . self::EXPORT_FILE_EXTENSION;
     $exportZipFile = FS::joinPath($exportDirectory, $exportZipFileName);
     $expectedTemplates = array('TPL-controll-er0e-xpor-t0we-bsite0000001-TPL' => (object) array('id' => 'TPL-controll-er0e-xpor-t0we-bsite0000001-TPL', 'name' => 'template export 1', 'content' => json_encode(array((object) array('abc' => 'def'))), 'pageType' => 'the_page_type_id'), 'TPL-controll-er0e-xpor-t0we-bsite0000002-TPL' => (object) array('id' => 'TPL-controll-er0e-xpor-t0we-bsite0000002-TPL', 'name' => 'template export 2', 'content' => json_encode(array()), 'pageType' => null));
     // ACT
     $this->dispatchWithParams('export/website', array('websiteid' => $websiteId, 'name' => $exportDirectoryName));
     // ASSERT
     $this->getValidatedSuccessResponse();
     $this->assertTrue(is_dir($exportDirectory));
     $this->assertFileExists($exportZipFile);
     $unzipCommand = sprintf("unzip %s -d %s", $exportZipFile, $exportDirectory);
     if (strstr($unzipCommand, $exportBaseDirectory)) {
         SystemHelper::user_proc_exec($unzipCommand);
         DirectoryHelper::removeRecursiv($exportZipFile, $exportBaseDirectory);
     }
     $expectedWebsiteJsonFile = FS::joinPath($expectedJsonFilesDirectory, 'expected_website.json');
     $this->assertFileExists($expectedWebsiteJsonFile);
     $this->assertWebsiteJsonCreatedAsExpected($exportDirectory, $expectedWebsiteJsonFile);
     $expectedWebsiteSettingsJsonFile = FS::joinPath($expectedJsonFilesDirectory, 'expected_export_websitesettings.json');
     $this->assertFileExists($expectedWebsiteSettingsJsonFile);
     $this->assertWebsiteSettingsJsonCreatedAsExpected($exportDirectory, $expectedWebsiteSettingsJsonFile);
     $this->assertTemplateJsonCreatedAsExpected($exportDirectory, $expectedTemplates);
     $exportedPackagesDirectory = FS::joinPath($exportDirectory, 'packages');
     $actualExportedPackagesTree = DirectoryHelper::getRecursiveAsJson($exportedPackagesDirectory, true);
     $this->assertSame($actualExportedPackagesTree, $expectedExportedPackagesTree, "Tree mismatch between export package directory tree and expected package directory tree");
     DirectoryHelper::removeRecursiv($exportDirectory, $exportBaseDirectory);
 }