function test_executeTasksTablesAlter() { $this->assertTrue($this->initDatabase(325, array('campaigns')) . 'failed to created version 325 of campaigns table'); $tblCampaigns = $this->oDbh->quoteIdentifier($this->prefix . 'campaigns', true); // Insert some data to test the upgrade from... we know the schema being used so we can directly insert $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (1,'campaign one', 1, 100, 10, 1, '2000-01-01', '2000-01-01', 't', 'h', 1, 1, 'f', 'f')"); $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (2,'campaign two', 1, 100, 10, 1, '2000-01-01', '2000-01-01', 't', 'm', 1, 1, 'f', 'f')"); $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (3,'campaign three', 1, -1, -1, -1, '2000-01-01', '2000-01-01', 't', 'l', 1, 1, 'f', 'f')"); $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (4,'campaign four', 1, 100, 10, 1, '2000-01-01', '2000-01-01', 't', 'h', 1, 1, 'f', 'f')"); $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (5,'campaign five', 1, 100, 10, 1, '2000-01-01', '2000-01-01', 't', 'm', 1, 1, 'f', 'f')"); $this->oDbh->exec("INSERT INTO {$tblCampaigns} VALUES (6,'campaign six', 1, -1, -1, -1, '2000-01-01', '2000-01-01', 't', 'l', 1, 1, 'f', 'f')"); Mock::generatePartial('OA_DB_UpgradeAuditor', $mockAuditor = 'OA_DB_UpgradeAuditor' . rand(), array('logAuditAction', 'setKeyParams')); $oLogger = new OA_UpgradeLogger(); $oLogger->setLogFile('DB_Upgrade.test.log'); $oDB_Upgrade = new OA_DB_Upgrade($oLogger); $oDB_Upgrade->oAuditor = new $mockAuditor($this); $oDB_Upgrade->oAuditor->setReturnValue('logAuditAction', true); $oDB_Upgrade->oAuditor->setReturnValue('setKeyParams', true); $oDB_Upgrade->init('constructive', 'tables_core', 326); $aDef325 = $this->oaTable->aDefinition; $oDB_Upgrade->aDBTables = $oDB_Upgrade->_listTables(); $this->assertTrue($oDB_Upgrade->_verifyTasksTablesAlter(), 'failed _verifyTasksTablesAlter: change field'); $this->assertTrue($oDB_Upgrade->_executeTasksTablesAlter(), 'failed _executeTasksTablesAlter: change field'); $aDefDB = $oDB_Upgrade->oSchema->getDefinitionFromDatabase(array($this->prefix . 'campaigns')); $aDiff = $oDB_Upgrade->oSchema->compareDefinitions($this->aDefNew, $aDefDb); $this->assertEqual(count($aDiff), 0, 'comparison failed'); $aResults = $this->oDbh->queryAll("SELECT * FROM " . $tblCampaigns); $this->assertIsa($aResults, 'array'); $expected = array(1 => '5', 2 => '3', 3 => '0', 4 => '5', 5 => '3', 6 => '0'); foreach ($aResults as $idx => $aRow) { $this->assertEqual($aRow['priority'], $expected[$aRow['campaignid']], ' unexpected campaign priority value detected after upgrade'); } }
/** * The constructor method. */ function Test_OA_Maintenance_Priority_AdServer_Task_ECPMforRemnant() { $this->UnitTestCase(); Mock::generate('OA_Dal_Maintenance_Priority', $this->mockDal = 'MockOA_Dal_Maintenance_Priority' . rand()); Mock::generate('MAX_Dal_Admin_Data_intermediate_ad', $this->mockDalIntermediateAd = 'MAX_Dal_Admin_Data_intermediate_ad' . rand()); Mock::generatePartial('OA_Maintenance_Priority_AdServer_Task_ECPMforRemnant', 'PartialMock_OA_Maintenance_Priority_AdServer_Task_ECPMforRemnant', array('_getDal', '_factoryDal', 'getTodaysRemainingOperationIntervals', 'calculateCampaignEcpm')); }
/** * The class constructor method. */ function Test_OX_Maintenance_Priority_Campaign() { $this->UnitTestCase(); Mock::generate('MAX_Dal_Entities'); Mock::generate('OA_Dal_Maintenance_Priority'); Mock::generatePartial('OX_Maintenance_Priority_Campaign', 'MockPartialOX_Maintenance_Priority_Campaign', array('_abort')); }
function testgetTasksUrls() { // Mock install status to mark update process Mock::generatePartial('OX_Admin_UI_Install_InstallStatus', 'OX_Admin_UI_Install_InstallStatusMock', array('isUpgrade')); $oInstallStatus = new OX_Admin_UI_Install_InstallStatusMock($this); $oInstallStatus->setReturnValue('isUpgrade', true); $oStorage = OX_Admin_UI_Install_InstallUtils::getSessionStorage(); @($oStatus = $oStorage->set('installStatus', $oInstallStatus)); include MAX_PATH . '/etc/default_plugins.php'; // set default plugins as installed except last one foreach ($aDefaultPlugins as $idx => $aPlugin) { $GLOBALS['_MAX']['CONF']['plugins'][$aPlugin['name']] = true; $lastPlugin = $aPlugin['name']; $lastPluginData = $aPlugin; } unset($GLOBALS['_MAX']['CONF']['plugins'][$lastPlugin]); $baseInstallUrl = 'my base url'; $GLOBALS['strPluginTaskChecking'] = 'Checking'; $GLOBALS['strPluginTaskInstalling'] = 'Installing'; $aExpected = array(); foreach ($GLOBALS['_MAX']['CONF']['plugins'] as $pluginName => $pluginEnabled) { $aExpected[] = array('id' => 'plugin:' . $pluginName, 'name' => $GLOBALS['strPluginTaskChecking'] . ': <br/> ' . $this->_correctPluginName($pluginName), 'url' => $baseInstallUrl . 'install-plugin.php?status=1&plugin=' . $pluginName); } $aExpected[] = array('id' => 'plugin:' . $lastPlugin, 'name' => $GLOBALS['strPluginTaskInstalling'] . ': <br/> ' . $this->_correctPluginName($lastPlugin), 'url' => $baseInstallUrl . 'install-plugin.php?status=0&plugin=' . $lastPlugin . (empty($lastPluginData['disabled']) ? '' : '&disabled=1')); $result = OX_Upgrade_InstallPlugin_Controller::getTasksUrls($baseInstallUrl); $this->assertEqual($result, $aExpected); $oStatus = $oStorage->set('installStatus', null); }
/** * The class constructor method. */ function __construct() { parent::__construct(); Mock::generate('MAX_Dal_Entities'); Mock::generate('OA_Dal_Maintenance_Priority'); Mock::generatePartial('OX_Maintenance_Priority_Campaign', 'MockPartialOX_Maintenance_Priority_Campaign', array('_abort')); }
/** * The constructor method. */ function __construct() { parent::__construct(); Mock::generatePartial('OA_Dll_Agency', 'PartialMockOA_Dll_Agency_AdvertiserTest', array('checkPermissions')); parent::__construct(); Mock::generatePartial('OA_Dll_Advertiser', 'PartialMockOA_Dll_Advertiser_AdvertiserTest', array('checkPermissions', 'getDefaultAgencyId')); }
/** * The constructor method. */ function OA_Dll_AdvertiserTest() { $this->UnitTestCase(); Mock::generatePartial('OA_Dll_Agency', 'PartialMockOA_Dll_Agency_AdvertiserTest', array('checkPermissions')); $this->UnitTestCase(); Mock::generatePartial('OA_Dll_Advertiser', 'PartialMockOA_Dll_Advertiser_AdvertiserTest', array('checkPermissions', 'getDefaultAgencyId')); }
function testExecute() { Mock::generatePartial('OA_UpgradeLogger', $mockLogger = 'OA_UpgradeLogger' . rand(), array('logOnly', 'logError', 'log')); $oLogger = new $mockLogger($this); $oLogger->setReturnValue('logOnly', true); $oLogger->setReturnValue('logError', true); $oLogger->setReturnValue('log', true); Mock::generatePartial('OA_Upgrade', $mockUpgrade = 'OA_Upgrade' . rand(), array('addPostUpgradeTask')); $mockUpgrade = new $mockUpgrade($this); $mockUpgrade->setReturnValue('addPostUpgradeTask', true); $mockUpgrade->oLogger = $oLogger; $mockUpgrade->oDBUpgrader = new OA_DB_Upgrade($oLogger); $mockUpgrade->oDBUpgrader->oTable =& $this->oaTable; // Run the upgrade $postscript = new OA_UpgradePostscript_2_7_30_beta_rc5(); $ret = $postscript->execute(array(&$mockUpgrade)); $this->assertTrue($ret); // Get the preference that we have inserted $doPreferences = OA_Dal::factoryDO('preferences'); $doPreferences->preference_name = 'campaign_ecpm_enabled'; $doPreferences->account_type = 'MANAGER'; $doPreferences->find(); $numberPreferences = $doPreferences->getRowCount(); $this->assertEqual(1, $numberPreferences); }
/** * The constructor method. */ function __construct() { parent::__construct(); Mock::generate('OA_Dal_Maintenance_Priority', $this->mockDal = 'MockOA_Dal_Maintenance_Priority' . rand()); Mock::generatePartial('OA_Maintenance_Priority_AdServer_Task_PriorityCompensation', 'PartialMock_OA_Maintenance_Priority_AdServer_Task_PriorityCompensation', array('_getDal', '_getOperationIntUtils', '_getMaxEntityAdObject')); Mock::generatePartial('OA_Maintenance_Priority_Ad', 'PartialOA_Maintenance_Priority_Ad', array()); }
function testDuplicate() { $GLOBALS['strCopyOf'] = 'Copy of '; $filename = 'test.gif'; $doBanners = OA_Dal::factoryDO('banners'); $doBanners->filename = $filename; $doBanners->storagetype = 'sql'; $doBanners->acls_updated = '2007-04-03 19:28:06'; $id1 = DataGenerator::generateOne($doBanners, true); $doBanners = OA_Dal::staticGetDO('banners', $id1); Mock::generatePartial('DataObjects_Banners', $mockBanners = 'DataObjects_Banners' . rand(), array('_imageDuplicate')); $doMockBanners = new $mockBanners($this); $doMockBanners->init(); $doMockBanners->setFrom($doBanners); $doMockBanners->bannerid = $doBanners->bannerid; // setFrom() doesn't copy primary key $doMockBanners->setReturnValue('_imageDuplicate', $filename); // make sure image was duplicated as well $doMockBanners->expectOnce('_imageDuplicate'); $id2 = $doMockBanners->duplicate(); // duplicate $doMockBanners->tally(); $this->assertNotEmpty($id2); $this->assertNotEqual($id1, $id2); $doBanners1 = OA_Dal::staticGetDO('banners', $id1); $doBanners2 = OA_Dal::staticGetDO('banners', $id2); // assert they are equal (but without comparing primary key) $this->assertNotEqualDataObjects($this->stripKeys($doBanners1), $this->stripKeys($doBanners2)); // Test that the only difference is their description $doBanners1->description = $doBanners2->description = null; $this->assertEqualDataObjects($this->stripKeys($doBanners1), $this->stripKeys($doBanners2)); }
static function getPluginPackageManager($mock) { if ($mock) { Mock::generatePartial('OX_PluginManager', $mockPkgMgrClass = 'MOX_PluginManager' . rand(), array('_auditInit', '_auditSetKeys', '_auditStart', '_auditUpdate', '_auditSetID', '_checkDatabaseEnvironment', '_registerSchema', '_registerPreferences', '_registerPluginVersion', '_unregisterSchema', '_unregisterPreferences', '_unregisterPluginVersion', '_runExtensionTasks')); $oPkgMgr = new $mockPkgMgrClass(); // install tasks $oPkgMgr->setReturnValue('_auditInit', true); $oPkgMgr->setReturnValue('_auditSetKeys', true); $oPkgMgr->setReturnValue('_auditStart', true); $oPkgMgr->setReturnValue('_auditUpdate', true); $oPkgMgr->setReturnValue('_checkDatabaseEnvironment', true); //$oPkgMgr->setReturnValue('_runScript', true); //$oPkgMgr->setReturnValue('_checkDependenciesForInstallOrEnable', true); //$oPkgMgr->setReturnValue('_checkFiles', true); //$oPkgMgr->setReturnValue('_checkMenus', true); $oPkgMgr->setReturnValue('_registerSchema', true); $oPkgMgr->setReturnValue('_registerPreferences', true); //$oPkgMgr->setReturnValue('_registerSettings', true); $oPkgMgr->setReturnValue('_registerPluginVersion', true); // uninstall tasks //$oPkgMgr->setReturnValue('_checkDependenciesForUninstallOrDisable', true); $oPkgMgr->setReturnValue('_unregisterPluginVersion', true); $oPkgMgr->setReturnValue('_unregisterPreferences', true); //$oPkgMgr->setReturnValue('_unregisterSettings', true); $oPkgMgr->setReturnValue('_unregisterSchema', true); //$oPkgMgr->setReturnValue('_removeFiles', true); } else { $oPkgMgr = new OX_PluginManager(); } $oPkgMgr->init(); return $oPkgMgr; }
function testdllValidation() { Mock::generatePartial('OA_Dll_User', 'PartialMockOA_Dll_User', array('raiseError')); $dllUserMock = new PartialMockOA_Dll_User(); $dllUserMock->setReturnValue('raiseError', true); $dllUserMock->expectCallCount('raiseError', 2); $oUserInfo = new OA_Dll_UserInfo(); // Test with nothing set $this->assertFalse($this->oPlugin->dllValidation($dllUserMock, $oUserInfo)); // Test with username set $oUserInfo->username = '******'; $this->assertFalse($this->oPlugin->dllValidation($dllUserMock, $oUserInfo)); // Test with username and password set $oUserInfo->password = '******'; $this->assertTrue($this->oPlugin->dllValidation($dllUserMock, $oUserInfo)); $this->assertEqual($oUserInfo->password, md5('pwd')); // Test edit $oUserInfo = new OA_Dll_UserInfo(); $oUserInfo->userId = 1; $this->assertTrue($this->oPlugin->dllValidation($dllUserMock, $oUserInfo)); $this->assertNull($oUserInfo->password); // Test edit with new password $oUserInfo->password = '******'; $this->assertTrue($this->oPlugin->dllValidation($dllUserMock, $oUserInfo)); $this->assertEqual($oUserInfo->password, md5('pwd')); $dllUserMock->tally(); }
/** * Test dependencies. */ function test_dependencies_api() { global $app_version; Mock::generatePartial('Plugin', 'PluginTestVersion', array('GetDependencies')); // Only major version given (not fulfilled) $test_Plugin = new PluginTestVersion(); $test_Plugin->setReturnValue('GetDependencies', array('requires' => array('app_min' => '1000'))); $dep_msgs = $this->Plugins->validate_dependencies($test_Plugin, 'enable'); $this->assertEqual(array_keys($dep_msgs), array('error')); $this->assertEqual(count($dep_msgs['error']), 1); // Current version given (fulfilled) $test_Plugin = new PluginTestVersion(); $test_Plugin->setReturnValue('GetDependencies', array('requires' => array('app_min' => $app_version))); $dep_msgs = $this->Plugins->validate_dependencies($test_Plugin, 'enable'); $this->assertEqual(array_keys($dep_msgs), array()); // Only major version given (fulfilled) $test_Plugin = new PluginTestVersion(); $test_Plugin->setReturnValue('GetDependencies', array('requires' => array('app_min' => '0'))); $dep_msgs = $this->Plugins->validate_dependencies($test_Plugin, 'enable'); $this->assertEqual(array_keys($dep_msgs), array()); // Obsolete "api_min" (fulfilled) $test_Plugin = new PluginTestVersion(); $test_Plugin->setReturnValue('GetDependencies', array('requires' => array('api_min' => array(1, 1)))); $dep_msgs = $this->Plugins->validate_dependencies($test_Plugin, 'enable'); $this->assertEqual(array_keys($dep_msgs), array()); }
/** * The constructor method. */ function Test_OA_DB_Table() { $this->UnitTestCase(); // Mock the OA_DB class Mock::generate('OA_DB'); // Partially mock the OA_DB_Table class Mock::generatePartial('OA_DB_Table', 'PartialMockOA_DB_Table', array('_getDbConnection')); }
/** * The constructor method. */ function __construct() { parent::__construct(); // Mock the OA_DB class Mock::generate('OA_DB'); // Partially mock the OA_DB_Table class Mock::generatePartial('OA_DB_Table', 'PartialMockOA_DB_Table', array('_getDbConnection')); }
/** * Check $testDB_conf and create mocked DB class. */ function __construct($label) { global $testDB_conf; if (!isset($testDB_conf['name'])) { die('Please set the DB name to use for tests in /tests/config.php or /tests/config.OVERRIDE.php. See $testDB_conf there..'); } Mock::generatePartial('DB', 'EvoMockDbUnitTestCase_DB_' . get_class($this), $this->mocked_DB_methods); parent::__construct($label); }
/** * This function sets up a TestHttpSocket instance we are going to use for testing * */ function setUp() { if (!class_exists('TestHttpSocket')) { Mock::generatePartial('HttpSocket', 'TestHttpSocket', array('read', 'write', 'connect')); Mock::generatePartial('HttpSocket', 'TestHttpSocketRequests', array('read', 'write', 'connect', 'request')); } $this->Socket =& new TestHttpSocket(); $this->RequestSocket =& new TestHttpSocketRequests(); }
/** * The constructor method. */ function Test_OA_Maintenance_Priority_DeliveryLimitation() { $this->UnitTestCase(); Mock::generatePartial('OA_Maintenance_Priority_DeliveryLimitation', 'Partial_MockOA_Maintenance_Priority_DeliveryLimitation', array('_getOperationInterval')); // Install the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLimitations', false); TestEnv::installPluginPackage('openXDeliveryLimitations', false); OA_setTimeZoneUTC(); }
function setup_group_testable_db() { if (!class_exists('GroupTestableDB')) { Mock::generatePartial('Group', 'GroupTestableDB', array('db')); } if (get_class($this->group) != 'GroupTestableDB') { $this->group = new GroupTestableDB($this); $this->group->__construct(1); } }
function testLogError() { Mock::generatePartial('OA_UpgradeLogger', 'OA_UpgradeLoggerMock', array('logError')); $oLogger = new OA_UpgradeLoggerMock($this); $oLogger->expectOnce('logError', array('test(testtype): test error')); $aTask = array('name' => 'test', 'type' => 'testtype'); OX_Upgrade_Util_JobMock::setLogger($oLogger); OX_Upgrade_Util_Job::logError($aTask, 'test error'); $this->assertEqual($aTask['errors'], array('test error')); }
function testgetTasksUrls() { Mock::generatePartial('OA_Upgrade', 'OA_UpgradeMock', array('getPostUpgradeTasks')); $baseInstallUrl = 'my base url'; $oUpgrade = new OA_UpgradeMock($this); $oUpgrade->setReturnValue('getPostUpgradeTasks', array('task_1', 'task_2')); $GLOBALS['strPostInstallTaskRunning'] = 'Running task'; $result = OX_Upgrade_PostUpgradeTask_Controller::getTasksUrls($baseInstallUrl, $oUpgrade); $expected = array(array('id' => 'task:task_1', 'name' => 'Running task: task_1', 'url' => $baseInstallUrl . 'install-runtask.php?task=task_1'), array('id' => 'task:task_2', 'name' => 'Running task: task_2', 'url' => $baseInstallUrl . 'install-runtask.php?task=task_2')); $this->assertEqual($result, $expected); }
function testGetXmlRpcClient() { Mock::generatePartial('OA_Central', 'PartialMockOA_Central', array('canUseSSL')); $oCentral = new PartialMockOA_Central(); $oCentral->setReturnValue('canUseSSL', true); $aConf = array('protocol' => 'https', 'host' => 'www.example.com', 'path' => '/foo', 'httpPort' => 80, 'httpsPort' => 443); $oClient = $oCentral->getXmlRpcClient($aConf); $this->assertTrue($oClient->protocol, 'ssl://'); $this->assertTrue($oClient->port, 443); $oCentral->setReturnValue('canUseSSL', false); $oClient = $oCentral->getXmlRpcClient($aConf); $this->assertTrue($oClient->protocol, 'http://'); $this->assertTrue($oClient->port, 80); }
/** * Method to test the singleton method. * * Requirements: * Test 1: Test that only one instance of the class is created. */ function testSingleton() { // Mock the OA_DB class used in the constructor method Mock::generate('OA_DB'); $oDbh = new MockOA_DB($this); // Partially mock the OA_DB_Table_Statistics class, overriding the // inherited _getDbConnection() method Mock::generatePartial('OA_DB_Table_Statistics', 'PartialMockOA_DB_Table_Statistics', array('_getDbConnection')); $oTable = new PartialMockOA_DB_Table_Statistics($this); $oTable->setReturnReference('_getDbConnection', $oDbh); // Test 1 $oTable1 =& $oTable->singleton(); $oTable2 =& $oTable->singleton(); $this->assertIdentical($oTable1, $oTable2); // Ensure the singleton is destroyed $oTable1->destroy(); }
function testBelongsToAccount() { OA_Dal::factoryDO('banners'); // Initialise the class so it can be mocked. Mock::generatePartial('DataObjects_Banners', $mockBanners = 'DataObjects_Banners' . rand(), array('getOwningAccountIds')); $doMockBanners = new $mockBanners($this); $doMockBanners->init(); $clientId = DataGenerator::generateOne('clients', true); $doClients = OA_Dal::staticGetDO('clients', $clientId); $agencyId = $doClients->agencyid; $accountId = $doClients->account_id; $doAgency = OA_Dal::staticGetDO('agency', $agencyId); $managerId = $doAgency->account_id; $dg = new DataGenerator(); $dg->setData('campaigns', array('clientid' => array($clientId))); $doMockBanners->setReturnValue('getOwningAccountIds', array(OA_ACCOUNT_MANAGER => $managerId, OA_ACCOUNT_ADVERTISER => $accountId)); $this->enableAuditing(true); $bannerId = $dg->generateOne($doMockBanners, true); $this->enableAuditing(false); $doAudit = OA_Dal::factoryDO('audit'); $doAudit->context = 'banners'; $doAudit->contextid = $bannerId; $this->assertTrue($doAudit->find(true)); $this->assertTrue($doAudit->belongsToAccount($accountId, false)); // generate different audit on campaign $dg = new DataGenerator(); $doMockBanners = new $mockBanners($this); $doMockBanners->init(); $clientId2 = DataGenerator::generateOne('clients', true); $doClients = OA_Dal::staticGetDO('clients', $clientId2); $agencyId2 = $doClients->agencyid; $accountId2 = $doClients->account_id; $doAgency = OA_Dal::staticGetDO('agency', $agencyId2); $managerId2 = $doAgency->account_id; $dg->setData('campaigns', array('clientid' => array($clientId2))); $doMockBanners->setReturnValue('getOwningAccountIds', array(OA_ACCOUNT_MANAGER => $managerId2, OA_ACCOUNT_ADVERTISER => $accountId2)); $this->enableAuditing(true); $bannerId2 = $dg->generateOne($doMockBanners, true); $this->enableAuditing(false); $doAudit = OA_Dal::factoryDO('audit'); $doAudit->context = 'banners'; $doAudit->contextid = $bannerId2; $this->assertTrue($doAudit->find(true)); $this->assertTrue($doAudit->belongsToAccount($accountId2, false)); $this->assertFalse($doAudit->belongsToAccount($accountId, false)); }
function testRemoveMaxSection() { // prepare data $oUpgrade = new OA_Upgrade(); Mock::generatePartial('OA_UpgradePostscript_2_5_67', $mockName = 'OA_UpgradePostscript_2_5_67_' . rand(), array('logOnly', 'logError')); $doMockPostUpgrade = new $mockName($this); $doMockPostUpgrade->oUpgrade =& $oUpgrade; // delete max section to make a new max section for testing unset($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); $this->assertNull($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); // add installed, uiEnabled and language to max section as can be possible // to find at openx $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['installed'] = ''; $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['uiEnabled'] = '1'; $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['language'] = 'english'; // check that aConfig max section is not null $this->assertNotNull($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); // remove max section $doMockPostUpgrade->removeMaxSection(); // check that aConfig max section has been removed $this->assertNull($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); // assert that ['openads']['language'] has been created with the correct value $this->assertEqual($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['openads']['language'], 'en'); // generate the max section with more than the three possible original openx parameters $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['installed'] = ''; $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['uiEnabled'] = '1'; $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['language'] = 'catalan'; $doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['foo'] = 'foo'; // try to remove max section $doMockPostUpgrade->removeMaxSection(); // assert that max section has not been removed because it has no original openx parameters $this->assertNotNull($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); // assert that the no original openx parameters still at the max section with their original value $this->assertEqual($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['foo'], 'foo'); // assert that ['openads']['language'] has been created with the default value because // the language is not recognise $this->assertEqual($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['openads']['language'], 'en'); // remove the not original openx parameter unset($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']['foo']); // try to remove max section $doMockPostUpgrade->removeMaxSection(); // check if the max section has been removed as is expected $this->assertNull($doMockPostUpgrade->oUpgrade->oConfiguration->aConfig['max']); }
public function test_run_filters() { Mock::generatePartial('TestController', "MockTestController", array("test", "index", "test2")); $controller = new MockTestController(); $controller->before_filter("index", "test"); $controller->before_filter("all", "test"); $controller->after_filter("index", "test"); $controller->after_filter("all", "test"); $controller->action = "index"; $controller->run_filters('before'); $controller->run_filters('after'); $controller->expectCallCount("test", 4); $controller->filters["before"] = array(); $controller->before_filter("all", "test2", array("index")); $controller->action = "index"; $controller->action = "test"; $controller->run_filters('before'); $controller->expectCallCount("test2", 1); }
function test_cacheMergedMenu() { Mock::generatePartial('OX_Plugin_ComponentGroupManager', $oMockGroupManager = 'OX_Plugin_ComponentGroupManager' . rand(), array('mergeMenu')); $oGroupManager = new $oMockGroupManager($this); $oGroupManager->setReturnValue('mergeMenu', true); Mock::generatePartial('OX_Extension_admin', $oMockExtensionManager = 'OX_Extension_admin' . rand(), array('_getMenuObjectForAccount', '_getGroupManagerObject')); $oMockExtensionManager = new $oMockExtensionManager($this); $oMenu = new OA_Admin_Menu('TEST'); $oMenu->add(new OA_Admin_Menu_Section("test", 'test root', "test-root.php", false, "")); $oMockExtensionManager->setReturnValue('_getMenuObjectForAccount', $oMenu); $oMockExtensionManager->setReturnValue('_getGroupManagerObject', $oGroupManager); OA_Admin_Menu::_clearCache('TEST'); $this->assertTrue($oMockExtensionManager->_cacheMergedMenu('TEST')); $oMenuCache = $oMenu->_loadFromCache('TEST'); $this->assertTrue(is_a($oMenuCache, 'OA_Admin_Menu')); $this->assertEqual(count($oMenuCache->aAllSections), 1); $this->assertTrue(array_key_exists('test', $oMenuCache->aAllSections)); OA_Admin_Menu::_clearCache('TEST'); TestEnv::restoreConfig(); }
function upgradeToVersion($version) { Mock::generatePartial('OA_UpgradeLogger', $mockLogger = 'OA_UpgradeLogger' . rand(), array('logOnly', 'logError', 'log')); $oLogger = new $mockLogger($this); $oLogger->setReturnValue('logOnly', true); $oLogger->setReturnValue('logError', true); $oLogger->setReturnValue('log', true); $this->oDBUpgrader = new OA_DB_Upgrade($oLogger); $this->oDBUpgrader->logFile = MAX_PATH . '/var/DB_Upgrade.test.log'; $this->oDBUpgrader->initMDB2Schema(); $auditor = new OA_DB_UpgradeAuditor(); $this->oDBUpgrader->oAuditor =& $auditor; $this->assertTrue($auditor->init($this->oDBUpgrader->oSchema->db), 'error initialising upgrade auditor, probable error creating database action table'); // execute all database upgrade actions for a given schema version // constructive first $this->oDBUpgrader->init('constructive', 'tables_core', $version); $this->oDBUpgrader->doBackups = false; $this->assertTrue($this->oDBUpgrader->upgrade(), 'constructive'); // use same changeset, switch timing only to execute destructive $this->oDBUpgrader->init('destructive', 'tables_core', $version, true); $this->assertTrue($this->oDBUpgrader->upgrade(), 'destructive'); }
function testExecute() { if ($this->oDbh->dbsyntax == 'pgsql') { $prefix = $this->getPrefix(); $this->initDatabase(581, array('affiliates')); $aAValues = array(array('name' => 'x'), array('name' => 'y')); foreach ($aAValues as $aValues) { $sql = OA_DB_Sql::sqlForInsert('affiliates', $aValues); $this->oDbh->exec($sql); } // Simulate upgrade from phpPgAds with a wrongly named sequence $sequenceName = "{$prefix}affiliates_affiliateid_seq"; $this->oDbh->exec("ALTER TABLE {$sequenceName} RENAME TO {$prefix}foobar"); $this->oDbh->exec("ALTER TABLE {$prefix}affiliates ALTER affiliateid SET DEFAULT nextval('{$prefix}foobar')"); // Create a publisher using the nextID call to generate the ID beforehand (two will fail because IDs already exist) $aAValues = array(array('affiliateid' => $this->oDbh->nextID($prefix . 'affiliates_affiliateid'), 'name' => 'z1'), array('affiliateid' => $this->oDbh->nextID($prefix . 'affiliates_affiliateid'), 'name' => 'z2'), array('affiliateid' => $this->oDbh->nextID($prefix . 'affiliates_affiliateid'), 'name' => 'z3')); $aExpect = array('PEAR_Error', 'PEAR_Error', 'int'); $this->oDbh->expectError(MDB2_ERROR_CONSTRAINT); foreach ($aAValues as $key => $aValues) { $sql = OA_DB_Sql::sqlForInsert('affiliates', $aValues); $result = $this->oDbh->exec($sql); $this->assertIsA($result, $aExpect[$key]); } $this->oDbh->popExpect(); Mock::generatePartial('OA_UpgradeLogger', $mockLogger = 'OA_UpgradeLogger' . rand(), array('logOnly', 'logError', 'log')); $oLogger = new $mockLogger($this); $oLogger->setReturnValue('logOnly', true); $oLogger->setReturnValue('logError', true); $oLogger->setReturnValue('log', true); $mockUpgrade = new StdClass(); $mockUpgrade->oLogger = $oLogger; $mockUpgrade->oDBUpgrader = new OA_DB_Upgrade($oLogger); $mockUpgrade->oDBUpgrader->oTable =& $this->oaTable; $postscript = new OA_UpgradePostscript_2_5_67_RC8(); $postscript->execute(array(&$mockUpgrade)); $value = $this->oDbh->queryOne("SELECT nextval('{$sequenceName}')"); $this->assertEqual($value, 4, "The current sequence value is {$value} (expected: 4)"); } }
function testExecute() { Mock::generatePartial('OA_UpgradeLogger', $mockLogger = 'OA_UpgradeLogger' . rand(), array('logOnly', 'logError', 'log')); $oLogger = new $mockLogger($this); $oLogger->setReturnValue('logOnly', true); $oLogger->setReturnValue('logError', true); $oLogger->setReturnValue('log', true); Mock::generatePartial('OA_Upgrade', $mockUpgrade = 'OA_Upgrade' . rand(), array('addPostUpgradeTask')); $mockUpgrade = new $mockUpgrade($this); $mockUpgrade->setReturnValue('addPostUpgradeTask', true); $mockUpgrade->oLogger = $oLogger; $mockUpgrade->oDBUpgrader = new OA_DB_Upgrade($oLogger); $mockUpgrade->oDBUpgrader->oTable =& $this->oaTable; $prefix = $this->oaTable->getPrefix(); $oDbh = $this->oaTable->oDbh; // Create a regular banner $sql = "INSERT INTO " . $oDbh->quoteIdentifier($prefix . 'banners', true) . " (\n bannerid,\n contenttype,\n storagetype,\n acls_updated\n ) VALUES (\n 1,\n 'html',\n 'html',\n NOW()\n )\n "; $this->assertTrue($oDbh->exec($sql)); // Create a text banner $sql = "INSERT INTO " . $oDbh->quoteIdentifier($prefix . 'banners', true) . " (\n bannerid,\n contenttype,\n storagetype,\n acls_updated\n ) VALUES (\n 2,\n 'txt',\n 'txt',\n NOW()\n )\n "; $this->assertTrue($oDbh->exec($sql)); // Create a text banner $sql = "INSERT INTO " . $oDbh->quoteIdentifier($prefix . 'banners', true) . " (\n bannerid,\n contenttype,\n storagetype,\n acls_updated\n ) VALUES (\n 3,\n 'txt',\n 'txt',\n NOW()\n )\n "; $this->assertTrue($oDbh->exec($sql)); // Link only the html banner to zone 0 $sql = "INSERT INTO " . $oDbh->quoteIdentifier($prefix . 'ad_zone_assoc', true) . " (\n ad_id,\n zone_id,\n link_type\n ) VALUES (\n 1,\n 0,\n " . MAX_AD_ZONE_LINK_DIRECT . "\n )\n "; $this->assertTrue($oDbh->exec($sql)); // Verify that only 1 banner is direct-selectable $sql = "SELECT COUNT(*) FROM " . $oDbh->quoteIdentifier($prefix . 'ad_zone_assoc', true) . " WHERE zone_id = 0"; $this->assertEqual($oDbh->query($sql)->fetchOne(), 1); // Run the upgrade $postscript = new OA_UpgradePostscript_2_8_1_rc4(); $ret = $postscript->execute(array(&$mockUpgrade)); $this->assertTrue($ret); // Verify that the banners are direct-selectable $sql = "SELECT COUNT(*) FROM " . $oDbh->quoteIdentifier($prefix . 'ad_zone_assoc', true) . " WHERE zone_id = 0"; $this->assertEqual($oDbh->query($sql)->fetchOne(), 3); }