$tempDir = realPath(dirname(__FILE__)) . '/temp'; MODXInstaller::mmkdir($tempDir); clearstatcache(); $destination = $tempDir; if (!file_exists($tempDir)) { MODXInstaller::quit('Unable to create directory: ' . $tempDir); } if (!is_readable($tempDir)) { MODXInstaller::quit('Unable to read from /temp directory'); } set_time_limit(0); $success = MODXInstaller::unZip(MODX_CORE_PATH, $source, $destination, $forcePclZip); if ($success !== true) { MODXInstaller::quit($success); } $directories = MODXInstaller::getDirectories(); $directories = MODXInstaller::normalize($directories); $sourceDir = $tempDir . '/' . MODXInstaller::getModxDir($tempDir); $sourceDir = MODXInstaller::normalize($sourceDir); MODXInstaller::copyFiles($sourceDir, $directories); unlink($source); if (!is_dir(MODX_BASE_PATH . 'setup')) { MODXInstaller::quit('File Copy Failed'); } MODXInstaller::removeFolder($tempDir, true); /* Clear cache files but not cache folder */ $path = MODX_CORE_PATH . 'cache'; if (is_dir($path)) { MODXInstaller::removeFolder($path, false); } unlink(basename(__FILE__));
public function testGetDirectories() { /* Try with real MODX directories */ $dirs = MODXInstaller::getDirectories(); $base = MODX_BASE_PATH; $this->assertEquals($dirs['setup'], $base . 'setup'); $this->assertEquals($dirs['core'], $base . 'core'); $this->assertEquals($dirs['manager'], $base . 'manager'); $this->assertEquals($dirs['connectors'], $base . 'connectors'); $dest = dirname(__FILE__) . '/' . 'temproot'; /* Normalize $dest */ $dest = MODXInstaller::normalize($dest); /* Try with our nonstandard directories */ $directories = $this->getDirectories($dest); $dirs = MODXInstaller::getDirectories($directories); $this->assertEquals($dirs['setup'], $dest . '/' . 'setup'); $this->assertEquals($dirs['core'], $dest . '/' . 'core'); $this->assertEquals($dirs['manager'], $dest . '/' . 'manager'); $this->assertEquals($dirs['connectors'], $dest . '/' . 'connectors'); }