$installing = true; require_once '../../init.php'; require_once MAX_PATH . '/lib/OA/Upgrade/Upgrade.php'; require_once MAX_PATH . '/lib/OA/Upgrade/Login.php'; require_once MAX_PATH . '/lib/OX/Upgrade/Util/Job.php'; // No upgrade file? No installer! if (!file_exists(MAX_PATH . '/var/UPGRADE')) { header("Location: index.php"); exit; } $aErrors = array(); $result = array('name' => @$_REQUEST['task'], 'status' => 'Invalid Request', 'errors' => &$aErrors, 'type' => 'task'); if (OA_Upgrade_Login::checkLogin(false)) { if (validRequest($result)) { $oUpgrader = new OA_Upgrade(); $aResponse = $oUpgrader->runPostUpgradeTask($_REQUEST['task']); $result['errors'] = $aResponse['errors']; if (count($result['errors']) > 0) { $result['status'] = 'Failed'; } else { $result['status'] = 'OK'; } } } else { OX_Upgrade_Util_Job::logError($result, 'Permissions error'); $result['status'] = 'Permissions error'; } // Save job results in session OX_Upgrade_Util_Job::saveJobResult($result); require_once MAX_PATH . '/lib/JSON/JSON.php'; $json = new Services_JSON();
function testRunPostUpgradeTask() { $oUpgrade = new OA_Upgrade(); $oUpgrade->upgradePath = MAX_PATH . '/lib/OA/Upgrade/tests/data/'; Mock::generatePartial('OA_UpgradeLogger', $mockLogger = 'OA_UpgradeLoggerMock' . rand(), array('logError', 'logOnly')); $file = $oUpgrade->upgradePath . 'tasks/openads_upgrade_task_Test_1.php'; $oLogger1 = new $mockLogger(); $oLogger1->expectOnce('logError', array('Error from Test_1')); $oLogger1->expectAt(0, 'logOnly', array('attempting to include file ' . $file)); $oLogger1->expectAt(1, 'logOnly', array('Message from Test_1')); $oLogger1->expectAt(2, 'logOnly', array('executed file ' . $file)); $oLogger1->expectCallCount('logOnly', 3); $oUpgrade->oLogger = $oLogger1; $result = $oUpgrade->runPostUpgradeTask('Test_1'); $expected = array('task' => 'Test_1', 'file' => $file, 'result' => 'Result from Test_1', 'errors' => array('Error from Test_1')); $this->assertEqual($result, $expected); $file = $oUpgrade->upgradePath . 'tasks/openads_upgrade_task_Test_2.php'; $oLogger2 = new $mockLogger(); $oLogger2->expectNever('logError'); $oLogger2->expectAt(0, 'logOnly', array('attempting to include file ' . $file)); $oLogger2->expectAt(1, 'logOnly', array('Message from Test_2')); $oLogger2->expectAt(2, 'logOnly', array('executed file ' . $file)); $oLogger2->expectCallCount('logOnly', 3); $oUpgrade->oLogger = $oLogger2; $result = $oUpgrade->runPostUpgradeTask('Test_2'); $expected = array('task' => 'Test_2', 'file' => $file, 'result' => 'Result from Test_2', 'errors' => array()); $this->assertEqual($result, $expected); $file = $oUpgrade->upgradePath . 'tasks/openads_upgrade_task_Test_3.php'; $oLogger3 = new $mockLogger(); $oLogger3->expectOnce('logError', array('Error from Test_3')); $oLogger3->expectAt(0, 'logOnly', array('attempting to include file ' . $file)); $oLogger3->expectAt(1, 'logOnly', array('executed file ' . $file)); $oLogger3->expectCallCount('logOnly', 2); $oUpgrade->oLogger = $oLogger3; $result = $oUpgrade->runPostUpgradeTask('Test_3'); $expected = array('task' => 'Test_3', 'file' => $oUpgrade->upgradePath . 'tasks/openads_upgrade_task_Test_3.php', 'result' => null, 'errors' => array('Error from Test_3')); $this->assertEqual($result, $expected); }