generatePartial() public static method

Inherits the old class and chains the mock methods of an aggregated mock object.
public static generatePartial ( string $class, string $mock_class, array $methods )
$class string Class to clone.
$mock_class string New class name.
$methods array Methods to be overridden with mock versions.
 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));
 }
Example #11
0
 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);
 }
Example #17
0
 /**
  * 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();
 }
Example #19
0
 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']);
 }
Example #26
0
 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);
 }