/** * This setUp method is being used to install a package which contains (at the moment only one) * test (Dummy) plugins which are then used by the test scripts to test the extension point integrations. * */ function setUp() { $oPkgMgr = new OX_PluginManager(); //install the package of test (dummy) plugins for testing the extension points unset($GLOBALS['_MAX']['CONF']['plugins']['openXTests']); unset($GLOBALS['_MAX']['CONF']['pluginGroupComponents']['Dummy']); TestEnv::installPluginPackage('openXTests'); }
/** * 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(); }
/** * This setUp method is being used to install a package which contains (at the moment only one) * test (Dummy) plugins which are then used by the test scripts to test the extension point integrations. * */ function setUp() { //install the package of test (dummy) plugins for testing the extension points unset($GLOBALS['_MAX']['CONF']['plugins']['openXTests']); unset($GLOBALS['_MAX']['CONF']['pluginGroupComponents']['Dummy']); TestEnv::installPluginPackage('openXTests'); MAX_commonInitVariables(); $this->tmpCookie = $_COOKIE; $_COOKIE = array(); }
/** * The constructor method. */ function Test_OA_Maintenance_Priority_AdServer_Task_GetRequiredAdImpressionsLifetime() { $this->UnitTestCase(); Mock::generate('MAX_Dal_Entities'); Mock::generate('OA_Dal_Maintenance_Priority'); Mock::generate('OA_DB_Table_Priority'); // Install the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLimitations', false); TestEnv::installPluginPackage('openXDeliveryLimitations', false); }
/** * A method to test when there are no old format raw requests, * impressions and clicks. */ function testNoData() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; // Prepare an array of the required tables used in testing $aTables = array($aConf['table']['prefix'] . $aConf['table']['data_raw_ad_request'] => $aConf['table']['prefix'] . 'data_bkt_r', $aConf['table']['prefix'] . $aConf['table']['data_raw_ad_impression'] => $aConf['table']['prefix'] . 'data_bkt_m', $aConf['table']['prefix'] . $aConf['table']['data_raw_ad_click'] => $aConf['table']['prefix'] . 'data_bkt_c'); // Install the openXDeliveryLog plugin, which will create the // data bucket tables required for testing TestEnv::installPluginPackage('openXDeliveryLog', false); // Ensure that there are no old format raw data foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($rawTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 0); } // Ensure that there are no new format bucket data foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 0); } // Run the migration of raw data DAL code for a given OI $oStart = new Date('2009-01-09 12:00:00'); $oEnd = new Date('2009-01-09 12:59:59'); $this->oDal->migrateRawRequests($oStart, $oEnd); $this->oDal->migrateRawImpressions($oStart, $oEnd); $this->oDal->migrateRawClicks($oStart, $oEnd); // Re-test that there are still no new format bucket data foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 0); } // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test environment configuration TestEnv::restoreConfig(); }
/** * A method to test the MAX_Delivery_log_logVariableValues() function. */ function test_MAX_Delivery_log_logVariableValues() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; $GLOBALS['_MAX']['NOW'] = time(); $oNowDate = new Date($GLOBALS['_MAX']['NOW']); // Test to ensure that the openXDeliveryLog plugin's data bucket // table does not exist $oTable = new OA_DB_Table(); $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . 'data_bkt_a_var'); $this->assertFalse($tableExists); // Test calling the main logging function without any plugins installed, // to ensure that this does not result in any kind of error $aVariables = array(55 => array('variable_id' => 55, 'tracker_id' => 1, 'name' => 'fooVar', 'type' => 'string', 'variablecode' => ''), 66 => array('variable_id' => 66, 'tracker_id' => 1, 'name' => 'barVar', 'type' => 'string', 'variablecode' => '')); $_GET['fooVar'] = 'foo'; $_GET['barVar'] = 'bar'; MAX_Delivery_log_logVariableValues($aVariables, 1, 1, 'singleDB'); // Install the openXDeliveryLog plugin TestEnv::installPluginPackage('openXDeliveryLog', false); // Test to ensure that the openXDeliveryLog plugin's data bucket // table now does exist $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . 'data_bkt_a_var'); $this->assertTrue($tableExists); // Ensure that there are is nothing logged in the data bucket table $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->find(); $rows = $doData_bkt_a_var->getRowCount(); $this->assertEqual($rows, 0); // Call the variable value logging function MAX_Delivery_log_logVariableValues($aVariables, 1, 1, 'singleDB'); // Ensure that the data was logged correctly $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->find(); $rows = $doData_bkt_a_var->getRowCount(); $this->assertEqual($rows, 2); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 1; $doData_bkt_a_var->server_raw_ip = 'singleDB'; $doData_bkt_a_var->tracker_variable_id = 55; $doData_bkt_a_var->find(); $rows = $doData_bkt_a_var->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt_a_var->fetch(); $this->assertEqual($doData_bkt_a_var->value, 'foo'); $this->assertEqual($doData_bkt_a_var->date_time, $oNowDate->format('%Y-%m-%d %H:%M:%S')); // Uninstall the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test configuration file TestEnv::restoreConfig(); }
function setUp() { $oPkgMgr = new OX_PluginManager(); TestEnv::uninstallPluginPackage('openXDeliveryCacheStore'); TestEnv::installPluginPackage('openXDeliveryCacheStore'); }
/** * A method to test the _locateComponents() method. */ function test_locateComponents() { $aConf = $GLOBALS['_MAX']['CONF']; // Test 1: There are no deliveryLog group plugins installed, test that // an empty array is returned $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $aComponents = $oSummariseIntermediate->_locateComponents(); $this->assertTrue(is_array($aComponents)); $this->assertTrue(empty($aComponents)); // Setup the default OpenX delivery logging plugin for the next test TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 2: Test with the default OpenX delivery logging plugin installed $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $aComponents = $oSummariseIntermediate->_locateComponents(); $this->assertTrue(is_array($aComponents)); $this->assertEqual(count($aComponents), 3); $dia = $aConf['table']['prefix'] . 'data_intermediate_ad'; $this->assertTrue(is_array($aComponents[$dia])); $this->assertEqual(count($aComponents[$dia]), 3); $aComponentClasses = array(); foreach ($aComponents[$dia] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogRequest_LogRequest', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogImpression_LogImpression', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogClick_LogClick', $aComponentClasses)); $diac = $aConf['table']['prefix'] . 'data_intermediate_ad_connection'; $this->assertTrue(is_array($aComponents[$diac])); $this->assertEqual(count($aComponents[$diac]), 1); $aComponentClasses = array(); foreach ($aComponents[$diac] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogConversion_LogConversion', $aComponentClasses)); $diavv = $aConf['table']['prefix'] . 'data_intermediate_ad_variable_value'; $this->assertTrue(is_array($aComponents[$diavv])); $this->assertEqual(count($aComponents[$diavv]), 1); $aComponentClasses = array(); foreach ($aComponents[$diavv] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogConversion_LogConversionVariable', $aComponentClasses)); /* TODO: move this test from core code to the plugin. only bundled plugins (or the test plugin) can be used in core tests // Setup the default OpenX country based impression and click delivery logging plugin for the next test TestEnv::installPluginPackage('openXDeliveryLogCountry', false); // Test 3: Test with the default OpenX delivery logging plugin and the OpenX country based impression // and click delivery logging plugin installed $aComponents = $oSummariseIntermediate->_locateComponents(); $this->assertTrue(is_array($aComponents)); $this->assertEqual(count($aComponents), 4); $dia = $aConf['table']['prefix'] . 'data_intermediate_ad'; $this->assertTrue(is_array($aComponents[$dia])); $this->assertEqual(count($aComponents[$dia]), 4); $aComponentClasses = array(); foreach ($aComponents[$dia] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogRequest_LogRequest', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogImpression_LogImpression', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogClick_LogClick', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogImpression_logImpressionBackup', $aComponentClasses)); $diac = $aConf['table']['prefix'] . 'data_intermediate_ad_connection'; $this->assertTrue(is_array($aComponents[$diac])); $this->assertEqual(count($aComponents[$diac]), 1); $aComponentClasses = array(); foreach ($aComponents[$diac] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogConversion_LogConversion', $aComponentClasses)); $diavv = $aConf['table']['prefix'] . 'data_intermediate_ad_variable_value'; $this->assertTrue(is_array($aComponents[$diavv])); $this->assertEqual(count($aComponents[$diavv]), 1); $aComponentClasses = array(); foreach ($aComponents[$diavv] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogConversion_LogConversionVariable', $aComponentClasses)); $sc = $aConf['table']['prefix'] . 'stats_country'; $this->assertTrue(is_array($aComponents[$sc])); $this->assertEqual(count($aComponents[$sc]), 2); $aComponentClasses = array(); foreach ($aComponents[$sc] as $oComponent) { $aComponentClasses[] = get_class($oComponent); } $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogCountry_LogImpressionCountry', $aComponentClasses)); $this->assertTrue(in_array('Plugins_DeliveryLog_OxLogCountry_LogClickCountry', $aComponentClasses)); // Uninstall the installed plugins TestEnv::uninstallPluginPackage('openXDeliveryLogCountry', false); */ // Uninstall the installed plugins TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Reset the testing environment TestEnv::restoreEnv(); }
/** * The complete end-to-end integration test for 60 minute operation intervals. */ function testHourly() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; $aConf['log']['priority'] = 'PEAR_LOG_DEBUG'; // Setup the default OpenX delivery logging plugin for the next test TestEnv::installPluginPackage('openXDeliveryLog', false); /**********************************************************************/ // Test to ensure there are no entries in any of the system tables yet $doUserlog = OA_Dal::factoryDO('userlog'); $doUserlog->find(); $this->assertEqual($doUserlog->getRowCount(), 0); $doLog_maintenance_statistics = OA_Dal::factoryDO('log_maintenance_statistics'); $doLog_maintenance_statistics->find(); $this->assertEqual($doLog_maintenance_statistics->getRowCount(), 0); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 0); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 0); $doData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $doData_intermediate_ad->find(); $this->assertEqual($doData_intermediate_ad->getRowCount(), 0); $doData_summary_ad_hourly = OA_Dal::factoryDO('data_summary_ad_hourly'); $doData_summary_ad_hourly->find(); $this->assertEqual($doData_summary_ad_hourly->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_m'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_c'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); /**********************************************************************/ // Prepare the current date/time for testing $oNowDate = new Date('2008-08-28 15:01:00'); $oServiceLocator =& OA_ServiceLocator::instance(); $oServiceLocator->register('now', $oNowDate); // Test 1: Run the MSE process with NO DATA $oMaintenanceStatisitcs = new OX_Maintenance_Statistics(); $oMaintenanceStatisitcs->run(); /**********************************************************************/ // Test to ensure there are STILL no entries in any of the system tables $doUserlog = OA_Dal::factoryDO('userlog'); $doUserlog->find(); $this->assertEqual($doUserlog->getRowCount(), 0); $doLog_maintenance_statistics = OA_Dal::factoryDO('log_maintenance_statistics'); $doLog_maintenance_statistics->find(); $this->assertEqual($doLog_maintenance_statistics->getRowCount(), 0); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 0); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 0); $doData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $doData_intermediate_ad->find(); $this->assertEqual($doData_intermediate_ad->getRowCount(), 0); $doData_summary_ad_hourly = OA_Dal::factoryDO('data_summary_ad_hourly'); $doData_summary_ad_hourly->find(); $this->assertEqual($doData_summary_ad_hourly->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_m'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_c'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); /**********************************************************************/ // Generate some tracker variables: // // - Tracker ID 1: Tracks no variables // - Tracker ID 2: Tracks a standard variable value // - Tracker ID 3: Tracks a de-duplicating variable value // - Tracker ID 4: Tracks a reject if empty variable value // - Tracker ID 5: Tracks a basket variable value and a number of // items variable value $doVariables = OA_Dal::factoryDO('variables'); $doVariables->trackerid = 2; $doVariables->name = 'Normal Variable'; $doVariables->insert(); $doVariables = OA_Dal::factoryDO('variables'); $doVariables->trackerid = 3; $doVariables->name = 'De-Duplicate Variable'; $doVariables->is_unique = 1; $doVariables->unique_window = 86400; // One day $doVariables->insert(); $doVariables = OA_Dal::factoryDO('variables'); $doVariables->trackerid = 4; $doVariables->name = 'Reject if Empty Variable'; $doVariables->reject_if_empty = 1; $doVariables->insert(); $doVariables = OA_Dal::factoryDO('variables'); $doVariables->trackerid = 5; $doVariables->name = 'Basket Value Variable'; $doVariables->purpose = 'basket_value'; $doVariables->insert(); $doVariables = OA_Dal::factoryDO('variables'); $doVariables->trackerid = 5; $doVariables->name = 'Number of Items Variable'; $doVariables->purpose = 'num_items'; $doVariables->insert(); /**********************************************************************/ // Generate some resonably standard request, impression, click and // conversion data: // // - For Creative ID 1, Zone ID 1: // - 1000 R, 999 M, 5 C in the 14:00:00 - 15:00:00 interval // - 1100 R, 1099 M, 8 C in the 15:00:00 - 16:00:00 interval // - 7 Conversions in the 15:00 - 16:00 interval: // - One normal, regular conversion, no variables // - One normal, regular conversion, normal tracked variable // - Two conversions duplicated on an "Order ID" variable // - One conversion with a non-empty blocking variable // - One conversion with an empty blocking variable // - Two conversions with a basket value variable and a // number of items variable $doData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $doData_bkt_r->interval_start = '2008-08-28 14:00:00'; $doData_bkt_r->creative_id = 1; $doData_bkt_r->zone_id = 1; $doData_bkt_r->count = 1000; $doData_bkt_r->insert(); $doData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $doData_bkt_m->interval_start = '2008-08-28 14:00:00'; $doData_bkt_m->creative_id = 1; $doData_bkt_m->zone_id = 1; $doData_bkt_m->count = 999; $doData_bkt_m->insert(); $doData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $doData_bkt_c->interval_start = '2008-08-28 14:00:00'; $doData_bkt_c->creative_id = 1; $doData_bkt_c->zone_id = 1; $doData_bkt_c->count = 5; $doData_bkt_c->insert(); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $doData_bkt_r->interval_start = '2008-08-28 15:00:00'; $doData_bkt_r->creative_id = 1; $doData_bkt_r->zone_id = 1; $doData_bkt_r->count = 1100; $doData_bkt_r->insert(); $doData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $doData_bkt_m->interval_start = '2008-08-28 15:00:00'; $doData_bkt_m->creative_id = 1; $doData_bkt_m->zone_id = 1; $doData_bkt_m->count = 1099; $doData_bkt_m->insert(); $doData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $doData_bkt_c->interval_start = '2008-08-28 15:00:00'; $doData_bkt_c->creative_id = 1; $doData_bkt_c->zone_id = 1; $doData_bkt_c->count = 8; $doData_bkt_c->insert(); // The "normal" conversion, no variables $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 1; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 1; $doData_bkt_a->date_time = '2008-08-28 15:37:28'; $doData_bkt_a->action_date_time = '2008-08-28 14:37:28'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); // The "normal" conversion, normal variable $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 2; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 2; $doData_bkt_a->date_time = '2008-08-28 15:37:28'; $doData_bkt_a->action_date_time = '2008-08-28 14:37:28'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 2; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 1; $doData_bkt_a_var->value = 'foo'; $doData_bkt_a_var->date_time = '2008-08-28 15:37:28'; $doData_bkt_a_var->insert(); // The duplicated conversions $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 3; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 3; $doData_bkt_a->date_time = '2008-08-28 15:47:11'; $doData_bkt_a->action_date_time = '2008-08-28 14:47:11'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 3; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 2; $doData_bkt_a_var->value = '12345'; $doData_bkt_a_var->date_time = '2008-08-28 15:47:11'; $doData_bkt_a_var->insert(); $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 4; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 3; $doData_bkt_a->date_time = '2008-08-28 15:47:21'; $doData_bkt_a->action_date_time = '2008-08-28 14:47:21'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 4; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 2; $doData_bkt_a_var->value = '12345'; $doData_bkt_a_var->date_time = '2008-08-28 15:47:21'; $doData_bkt_a_var->insert(); // The conversion with a non-empty logged value $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 5; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 4; $doData_bkt_a->date_time = '2008-08-28 15:50:00'; $doData_bkt_a->action_date_time = '2008-08-28 14:50:00'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 5; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 3; $doData_bkt_a_var->value = '12345'; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); // The conversion with a empty logged value $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 6; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 4; $doData_bkt_a->date_time = '2008-08-28 15:50:00'; $doData_bkt_a->action_date_time = '2008-08-28 14:50:00'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 6; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 3; $doData_bkt_a_var->value = ''; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); // The two conversions with basket values and numbers of items $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 7; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 5; $doData_bkt_a->date_time = '2008-08-28 15:50:00'; $doData_bkt_a->action_date_time = '2008-08-28 14:50:00'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 7; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 4; $doData_bkt_a_var->value = '129.99'; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 7; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 5; $doData_bkt_a_var->value = '1'; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 8; $doData_bkt_a->server_ip = 'localhost'; $doData_bkt_a->tracker_id = 5; $doData_bkt_a->date_time = '2008-08-28 15:50:00'; $doData_bkt_a->action_date_time = '2008-08-28 14:50:00'; $doData_bkt_a->creative_id = 1; $doData_bkt_a->zone_id = 1; $doData_bkt_a->ip_address = '127.0.0.1'; $doData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $doData_bkt_a->window = 3600; $doData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $doData_bkt_a->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 8; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 4; $doData_bkt_a_var->value = '0.99'; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); $doData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_a_var->server_conv_id = 8; $doData_bkt_a_var->server_ip = 'localhost'; $doData_bkt_a_var->tracker_variable_id = 5; $doData_bkt_a_var->value = '99'; $doData_bkt_a_var->date_time = '2008-08-28 15:50:00'; $doData_bkt_a_var->insert(); /**********************************************************************/ // Prepare the current date/time for testing $oNowDate = new Date('2008-08-28 16:01:00'); $oServiceLocator =& OA_ServiceLocator::instance(); $oServiceLocator->register('now', $oNowDate); // Test 2: Run the MSE process WITH data $oMaintenanceStatisitcs = new OX_Maintenance_Statistics(); $oMaintenanceStatisitcs->run(); /**********************************************************************/ // Test to ensure the data has been migrated correctly, and // that the MSE has logged all required info correctly $doUserlog = OA_Dal::factoryDO('userlog'); $doUserlog->find(); $this->assertEqual($doUserlog->getRowCount(), 1); $doLog_maintenance_statistics = OA_Dal::factoryDO('log_maintenance_statistics'); $doLog_maintenance_statistics->find(); $this->assertEqual($doLog_maintenance_statistics->getRowCount(), 1); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 8); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 9); $doData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $doData_intermediate_ad->find(); $this->assertEqual($doData_intermediate_ad->getRowCount(), 2); $doData_summary_ad_hourly = OA_Dal::factoryDO('data_summary_ad_hourly'); $doData_summary_ad_hourly->find(); $this->assertEqual($doData_summary_ad_hourly->getRowCount(), 2); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_m'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_c'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); $doData_bkt_r = OA_Dal::factoryDO('data_bkt_a_var'); $doData_bkt_r->find(); $this->assertEqual($doData_bkt_r->getRowCount(), 0); // Test all of the details of the migrated data $log = "Maintenance Statistics Report\n=====================================\n\n- Maintenance start run time is 2008-08-28 16:01:00 UTC\n- Maintenance statistics last updated intermediate table statistics to 2008-08-28 13:59:59 UTC.\n- Current time must be after 2008-08-28 14:59:59 UTC for the next intermediate table update to happen\n- Maintenance statistics last updated final table statistics to 2008-08-28 13:59:59 UTC.\n- Current time must be after 2008-08-28 14:59:59 UTC for the next intermediate table update to happen\n- Maintenance statistics will be run.\n- The intermediate table statistics will be updated.\n- The final table statistics will be updated.\n\n- Migrating bucket-based logged data to the statistics tables.\n- Saving request, impression, click and conversion data into the final tables.\n- Updating the data_summary_ad_hourly table for data after 2008-08-28 14:00:00 UTC.\n- Logging the completion of the maintenance statistics run."; $doUserlog = OA_Dal::factoryDO('userlog'); $doUserlog->find(); $this->assertEqual($doUserlog->getRowCount(), 1); $doUserlog->fetch(); $this->assertEqual($doUserlog->usertype, phpAds_userMaintenance); $this->assertEqual($doUserlog->userid, 0); $this->assertEqual($doUserlog->action, phpAds_actionBatchStatistics); $this->assertEqual($doUserlog->object, 0); $this->assertEqual($doUserlog->details, $log); $doLog_maintenance_statistics = OA_Dal::factoryDO('log_maintenance_statistics'); $doLog_maintenance_statistics->start_run = $oNowDate->format('%Y-%m-%d %H:%M:%S'); $doLog_maintenance_statistics->find(); $this->assertEqual($doLog_maintenance_statistics->getRowCount(), 1); $doLog_maintenance_statistics->fetch(); $this->assertEqual($doLog_maintenance_statistics->adserver_run_type, OX_DAL_MAINTENANCE_STATISTICS_UPDATE_BOTH); $this->assertNull($doLog_maintenance_statistics->search_run_type); $this->assertNull($doLog_maintenance_statistics->tracker_run_type); $this->assertEqual($doLog_maintenance_statistics->updated_to, '2008-08-28 15:59:59'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 1; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:37:28'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:37:28'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 1); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:37:28'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:37:28'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 2); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 3; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:47:11'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:47:11'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 3); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 4; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:47:21'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:47:21'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 3); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_DUPLICATE); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertEqual($doData_intermediate_ad_connection->comments, 'Duplicate of conversion ID 3'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 5; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:50:00'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:50:00'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 4); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 6; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:50:00'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:50:00'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 4); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_DISAPPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertEqual($doData_intermediate_ad_connection->comments, 'Rejected because Reject if Empty Variable is empty'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 7; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:50:00'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:50:00'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 5); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 8; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $this->assertNull($doData_intermediate_ad_connection->veiwer_id); $this->assertNull($doData_intermediate_ad_connection->veiwer_session_id); $this->assertEqual($doData_intermediate_ad_connection->tracker_date_time, '2008-08-28 15:50:00'); $this->assertEqual($doData_intermediate_ad_connection->connection_date_time, '2008-08-28 14:50:00'); $this->assertEqual($doData_intermediate_ad_connection->tracker_id, 5); $this->assertEqual($doData_intermediate_ad_connection->ad_id, 1); $this->assertEqual($doData_intermediate_ad_connection->creative_id, 0); $this->assertEqual($doData_intermediate_ad_connection->zone_id, 1); $this->assertNull($doData_intermediate_ad_connection->tracker_channel); $this->assertNull($doData_intermediate_ad_connection->connection_channel); $this->assertNull($doData_intermediate_ad_connection->tracker_channel_ids); $this->assertNull($doData_intermediate_ad_connection->connection_channel_ids); $this->assertNull($doData_intermediate_ad_connection->tracker_language); $this->assertNull($doData_intermediate_ad_connection->connection_language); $this->assertEqual($doData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertNull($doData_intermediate_ad_connection->connection_ip_address); $this->assertNull($doData_intermediate_ad_connection->tracker_host_name); $this->assertNull($doData_intermediate_ad_connection->connection_host_name); $this->assertNull($doData_intermediate_ad_connection->tracker_country); $this->assertNull($doData_intermediate_ad_connection->connection_country); $this->assertNull($doData_intermediate_ad_connection->tracker_https); $this->assertNull($doData_intermediate_ad_connection->connection_https); $this->assertNull($doData_intermediate_ad_connection->tracker_domain); $this->assertNull($doData_intermediate_ad_connection->connection_domain); $this->assertNull($doData_intermediate_ad_connection->tracker_page); $this->assertNull($doData_intermediate_ad_connection->connection_page); $this->assertNull($doData_intermediate_ad_connection->tracker_query); $this->assertNull($doData_intermediate_ad_connection->connection_query); $this->assertNull($doData_intermediate_ad_connection->tracker_referer); $this->assertNull($doData_intermediate_ad_connection->connection_referer); $this->assertNull($doData_intermediate_ad_connection->tracker_search_term); $this->assertNull($doData_intermediate_ad_connection->connection_search_term); $this->assertNull($doData_intermediate_ad_connection->tracker_user_agent); $this->assertNull($doData_intermediate_ad_connection->connection_user_agent); $this->assertNull($doData_intermediate_ad_connection->tracker_os); $this->assertNull($doData_intermediate_ad_connection->connection_os); $this->assertNull($doData_intermediate_ad_connection->tracker_browser); $this->assertNull($doData_intermediate_ad_connection->connection_browser); $this->assertEqual($doData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($doData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($doData_intermediate_ad_connection->inside_window, 1); $this->assertNull($doData_intermediate_ad_connection->comments); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 1; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 0); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->tracker_variable_id, 1); $this->assertEqual($doData_intermediate_ad_variable_value->value, 'foo'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 3; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->tracker_variable_id, 2); $this->assertEqual($doData_intermediate_ad_variable_value->value, '12345'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 4; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->tracker_variable_id, 2); $this->assertEqual($doData_intermediate_ad_variable_value->value, '12345'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 5; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->tracker_variable_id, 3); $this->assertEqual($doData_intermediate_ad_variable_value->value, '12345'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 6; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->tracker_variable_id, 3); $this->assertEqual($doData_intermediate_ad_variable_value->value, ''); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 7; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 2); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->tracker_variable_id = 4; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->value, '129.99'); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->tracker_variable_id = 5; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->value, '1'); $doData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $doData_intermediate_ad_connection->server_raw_ip = 'localhost'; $doData_intermediate_ad_connection->server_raw_tracker_impression_id = 8; $doData_intermediate_ad_connection->find(); $this->assertEqual($doData_intermediate_ad_connection->getRowCount(), 1); $doData_intermediate_ad_connection->fetch(); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 2); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->tracker_variable_id = 4; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->value, '0.99'); $doData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $doData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $doData_intermediate_ad_connection->data_intermediate_ad_connection_id; $doData_intermediate_ad_variable_value->tracker_variable_id = 5; $doData_intermediate_ad_variable_value->find(); $this->assertEqual($doData_intermediate_ad_variable_value->getRowCount(), 1); $doData_intermediate_ad_variable_value->fetch(); $this->assertEqual($doData_intermediate_ad_variable_value->value, '99'); $doData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $doData_intermediate_ad->date_time = '2008-08-28 14:00:00'; $doData_intermediate_ad->ad_id = 1; $doData_intermediate_ad->zone_id = 1; $doData_intermediate_ad->find(); $this->assertEqual($doData_intermediate_ad->getRowCount(), 1); $doData_intermediate_ad->fetch(); $this->assertEqual($doData_intermediate_ad->operation_interval, 60); $this->assertEqual($doData_intermediate_ad->operation_interval_id, 110); $this->assertEqual($doData_intermediate_ad->interval_start, '2008-08-28 14:00:00'); $this->assertEqual($doData_intermediate_ad->interval_end, '2008-08-28 14:59:59'); $this->assertEqual($doData_intermediate_ad->creative_id, 0); $this->assertEqual($doData_intermediate_ad->requests, 1000); $this->assertEqual($doData_intermediate_ad->impressions, 999); $this->assertEqual($doData_intermediate_ad->clicks, 5); $this->assertEqual($doData_intermediate_ad->conversions, 0); $this->assertEqual($doData_intermediate_ad->total_basket_value, 0.0); $this->assertEqual($doData_intermediate_ad->total_num_items, 0); $doData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $doData_intermediate_ad->date_time = '2008-08-28 15:00:00'; $doData_intermediate_ad->ad_id = 1; $doData_intermediate_ad->zone_id = 1; $doData_intermediate_ad->find(); $this->assertEqual($doData_intermediate_ad->getRowCount(), 1); $doData_intermediate_ad->fetch(); $this->assertEqual($doData_intermediate_ad->operation_interval, 60); $this->assertEqual($doData_intermediate_ad->operation_interval_id, 111); $this->assertEqual($doData_intermediate_ad->interval_start, '2008-08-28 15:00:00'); $this->assertEqual($doData_intermediate_ad->interval_end, '2008-08-28 15:59:59'); $this->assertEqual($doData_intermediate_ad->creative_id, 0); $this->assertEqual($doData_intermediate_ad->requests, 1100); $this->assertEqual($doData_intermediate_ad->impressions, 1099); $this->assertEqual($doData_intermediate_ad->clicks, 8); $this->assertEqual($doData_intermediate_ad->conversions, 6); $this->assertEqual($doData_intermediate_ad->total_basket_value, 130.98); $this->assertEqual($doData_intermediate_ad->total_num_items, 100); $doData_summary_ad_hourly = OA_Dal::factoryDO('data_summary_ad_hourly'); $doData_summary_ad_hourly->date_time = '2008-08-28 14:00:00'; $doData_summary_ad_hourly->ad_id = 1; $doData_summary_ad_hourly->zone_id = 1; $doData_summary_ad_hourly->find(); $this->assertEqual($doData_summary_ad_hourly->getRowCount(), 1); $doData_summary_ad_hourly->fetch(); $this->assertEqual($doData_summary_ad_hourly->creative_id, 0); $this->assertEqual($doData_summary_ad_hourly->requests, 1000); $this->assertEqual($doData_summary_ad_hourly->impressions, 999); $this->assertEqual($doData_summary_ad_hourly->clicks, 5); $this->assertEqual($doData_summary_ad_hourly->conversions, 0); $this->assertEqual($doData_summary_ad_hourly->total_basket_value, 0.0); $this->assertEqual($doData_summary_ad_hourly->total_num_items, 0); $this->assertNull($doData_summary_ad_hourly->total_revenue); $this->assertNull($doData_summary_ad_hourly->total_cost); $this->assertNull($doData_summary_ad_hourly->total_techcost); $doData_summary_ad_hourly = OA_Dal::factoryDO('data_summary_ad_hourly'); $doData_summary_ad_hourly->date_time = '2008-08-28 15:00:00'; $doData_summary_ad_hourly->ad_id = 1; $doData_summary_ad_hourly->zone_id = 1; $doData_summary_ad_hourly->find(); $this->assertEqual($doData_summary_ad_hourly->getRowCount(), 1); $doData_summary_ad_hourly->fetch(); $this->assertEqual($doData_summary_ad_hourly->creative_id, 0); $this->assertEqual($doData_summary_ad_hourly->requests, 1100); $this->assertEqual($doData_summary_ad_hourly->impressions, 1099); $this->assertEqual($doData_summary_ad_hourly->clicks, 8); $this->assertEqual($doData_summary_ad_hourly->conversions, 6); $this->assertEqual($doData_summary_ad_hourly->total_basket_value, 130.98); $this->assertEqual($doData_summary_ad_hourly->total_num_items, 100); $this->assertNull($doData_summary_ad_hourly->total_revenue); $this->assertNull($doData_summary_ad_hourly->total_cost); $this->assertNull($doData_summary_ad_hourly->total_techcost); /**********************************************************************/ // Remove the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); }
function testGenerateTags() { if (!$this->zoneId) { return; } TestEnv::uninstallPluginPackage('openXInvocationTags'); TestEnv::installPluginPackage('openXInvocationTags'); $this->expectError(); $this->assertFalse($this->oApi->generateTags(-1, 'foo')); $this->expectError(); $this->assertFalse($this->oApi->generateTags($this->zoneId, 'foo')); $tag1 = $this->oApi->generateTags($this->zoneId, 'adjs'); $tag2 = $this->oApi->generateTags($this->zoneId, 'adjs', array('source' => 'x')); $this->assertTrue($tag1); $this->assertTrue($tag2); $this->assertNotEqual($tag1, $tag2); TestEnv::uninstallPluginPackage('openXInvocationTags'); }
/** * A method to test the MAX_Delivery_log_logAdRequest(), * MAX_Delivery_log_logAdImpression() and MAX_Delivery_log_logAdClick() * functions. */ function testRequestImpressionClickFunction() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; $GLOBALS['_MAX']['NOW'] = time(); $oNowDate = new Date($GLOBALS['_MAX']['NOW']); $aDates = OX_OperationInterval::convertDateToOperationIntervalStartAndEndDates($oNowDate); $intervalStart = $aDates['start']->format('%Y-%m-%d %H:%M:%S'); $aTables = array('MAX_Delivery_log_logAdRequest' => 'data_bkt_r', 'MAX_Delivery_log_logAdImpression' => 'data_bkt_m', 'MAX_Delivery_log_logAdClick' => 'data_bkt_c'); foreach ($aTables as $function => $table) { // Test to ensure that the openXDeliveryLog plugin's data bucket // table does not exist $oTable = new OA_DB_Table(); $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . $table); $this->assertFalse($tableExists); // Test calling the main logging function without any plugins installed, // to ensure that this does not result in any kind of error unset($GLOBALS['_MAX']['deliveryData']['Plugin_deliveryDataPrepare_oxDeliveryDataPrepare_dataCommon']); call_user_func_array($function, array(1, 1)); } // Install the openXDeliveryLog plugin TestEnv::installPluginPackage('openXDeliveryLog', false); foreach ($aTables as $function => $table) { // Test to ensure that the openXDeliveryLog plugin's data bucket // table now does exist $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . $table); $this->assertTrue($tableExists); // Ensure that there are is nothing logged in the data bucket table $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 0); // Call the main logging function unset($GLOBALS['_MAX']['deliveryData']['Plugin_deliveryDataPrepare_oxDeliveryDataPrepare_dataCommon']); call_user_func_array($function, array(1, 1)); // Ensure that the data was logged correctly $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); if ($table == 'data_bkt_r') { // Request logging is disabled by default. Nothing should have been logged by now $this->assertEqual($rows, 0); // Enable it $GLOBALS['_MAX']['CONF']['logging']['adRequests'] = true; unset($GLOBALS['_MAX']['deliveryData']['Plugin_deliveryDataPrepare_oxDeliveryDataPrepare_dataCommon']); call_user_func_array($function, array(1, 1)); // Now ensure that the data was logged correctly $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); } $this->assertEqual($rows, 1); $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->creative_id = 1; $doData_bkt->zone_id = 1; $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt->fetch(); $this->assertEqual($doData_bkt->count, 1); $this->assertEqual($doData_bkt->interval_start, $intervalStart); // Call the main logging function again unset($GLOBALS['_MAX']['deliveryData']['Plugin_deliveryDataPrepare_oxDeliveryDataPrepare_dataCommon']); call_user_func_array($function, array(1, 1)); // Ensure that the data was logged correctly $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->creative_id = 1; $doData_bkt->zone_id = 1; $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt->fetch(); $this->assertEqual($doData_bkt->count, 2); $this->assertEqual($doData_bkt->interval_start, $intervalStart); // Call the main logging function again, but with a differen // creative/zone pair unset($GLOBALS['_MAX']['deliveryData']['Plugin_deliveryDataPrepare_oxDeliveryDataPrepare_dataCommon']); call_user_func_array($function, array(2, 1)); // Ensure that the data was logged correctly $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 2); $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->creative_id = 1; $doData_bkt->zone_id = 1; $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt->fetch(); $this->assertEqual($doData_bkt->count, 2); $this->assertEqual($doData_bkt->interval_start, $intervalStart); $doData_bkt = OA_Dal::factoryDO($table); $doData_bkt->creative_id = 2; $doData_bkt->zone_id = 1; $doData_bkt->find(); $rows = $doData_bkt->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt->fetch(); $this->assertEqual($doData_bkt->count, 1); $this->assertEqual($doData_bkt->interval_start, $intervalStart); } // Uninstall the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test configuration file TestEnv::restoreConfig(); }
/** * A method to test the summariseBucketsAggregate() method. */ function testSummariseBucketsAggregate() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; // Prepare standard test parameters $statisticsTableName = $aConf['table']['prefix'] . 'data_intermediate_ad'; $aMigrationMaps = array(0 => array('method' => 'aggregate', 'bucketTable' => $aConf['table']['prefix'] . 'data_bkt_r', 'dateTimeColumn' => 'interval_start', 'groupSource' => array(0 => 'interval_start', 1 => 'creative_id', 2 => 'zone_id'), 'groupDestination' => array(0 => 'date_time', 1 => 'ad_id', 2 => 'zone_id'), 'sumSource' => array(0 => 'count'), 'sumDestination' => array(0 => 'requests'), 'sumDefault' => array(0 => 0)), 1 => array('method' => 'aggregate', 'bucketTable' => $aConf['table']['prefix'] . 'data_bkt_m', 'dateTimeColumn' => 'interval_start', 'groupSource' => array(0 => 'interval_start', 1 => 'creative_id', 2 => 'zone_id'), 'groupDestination' => array(0 => 'date_time', 1 => 'ad_id', 2 => 'zone_id'), 'sumSource' => array(0 => 'count'), 'sumDestination' => array(0 => 'impressions'), 'sumDefault' => array(0 => 0)), 2 => array('method' => 'aggregate', 'bucketTable' => $aConf['table']['prefix'] . 'data_bkt_c', 'dateTimeColumn' => 'interval_start', 'groupSource' => array(0 => 'interval_start', 1 => 'creative_id', 2 => 'zone_id'), 'groupDestination' => array(0 => 'date_time', 1 => 'ad_id', 2 => 'zone_id'), 'sumSource' => array(0 => 'count'), 'sumDestination' => array(0 => 'clicks'), 'sumDefault' => array(0 => 0))); $aDates = array('start' => new Date('2008-08-21 09:00:00'), 'end' => new Date('2008-08-21 09:59:59')); // Prepare the DAL object $oFactory = new OX_Dal_Maintenance_Statistics_Factory(); $oDalMaintenanceStatistics = $oFactory->factory(); $oNowDate = new Date(); $aExtras = array('operation_interval' => $aConf['maintenance']['operationInterval'], 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($aDates['start']), 'interval_start' => $oDalMaintenanceStatistics->oDbh->quote($aDates['start']->format('%Y-%m-%d %H:%M:%S'), 'timestamp') . $oDalMaintenanceStatistics->timestampCastString, 'interval_end' => $oDalMaintenanceStatistics->oDbh->quote($aDates['end']->format('%Y-%m-%d %H:%M:%S'), 'timestamp') . $oDalMaintenanceStatistics->timestampCastString, 'creative_id' => 0, 'updated' => $oDalMaintenanceStatistics->oDbh->quote($oNowDate->format('%Y-%m-%d %H:%M:%S'), 'timestamp') . $oDalMaintenanceStatistics->timestampCastString); // Test 1: Test with an incorrect method name in the mapping array $savedValue = $aMigrationMaps[0]['method']; $aMigrationMaps[0]['method'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map index '0' having method 'foo' != 'aggregate'."); $aMigrationMaps[0]['method'] = $savedValue; // Test 2: Test with a different number of groupSource and groupDestination columns $savedValue = $aMigrationMaps[0]['groupSource'][1]; unset($aMigrationMaps[0]['groupSource'][1]); $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map index '0' having different number of 'groupSource' and 'groupDestination' columns."); $aMigrationMaps[0]['groupSource'][1] = $savedValue; // Test 3: Test with a different number of sumSource and sumDestination columns $savedValue = $aMigrationMaps[1]['sumSource'][0]; unset($aMigrationMaps[1]['sumSource'][0]); $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map index '1' having different number of 'sumSource' and 'sumDestination' columns."); $aMigrationMaps[1]['sumSource'][0] = $savedValue; // Test 4: Test with a different number of sumSource and sumDefault columns $savedValue = $aMigrationMaps[2]['sumDefault'][0]; unset($aMigrationMaps[2]['sumDefault'][0]); $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map index '2' having different number of 'sumSource' and 'sumDefault' columns."); $aMigrationMaps[2]['sumDefault'][0] = $savedValue; // Test 5: Test with a different groupDestination sets $savedValue = $aMigrationMaps[2]['groupDestination'][0]; $aMigrationMaps[2]['groupDestination'][0] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map indexes '0' and '2' having different 'groupDestination' arrays."); $aMigrationMaps[2]['groupDestination'][0] = $savedValue; // Test 6: Test with date parameters that are not really dates $savedValue = $aDates['start']; $aDates['start'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with invalid start/end date parameters -- not Date objects."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with invalid start/end date parameters -- not Date objects."); $aDates['end'] = $savedValue; // Test 7: Test with invalid start/end dates $savedValue = $aDates['start']; $aDates['start'] = new Date('2008-08-21 08:00:00'); $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = new Date('2008-08-22 09:59:59'); $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['end'] = $savedValue; // Test 8: Test with an invalid statistics table name $savedValue = $statisticsTableName; $statisticsTableName = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with invalid statistics table 'foo'."); $statisticsTableName = $savedValue; // Test 9: Test with no data_bkt_r table in the database $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsAggregate() called with migration map index '0' having invalid bucket table '{$aConf['table']['prefix']}data_bkt_r'."); // Install the openXDeliveryLog plugin, which will create the // data_bkt_r, data_bkt_m and data_bkt_c tables required for testing TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 10: Test with all tables present, but no data $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertEqual($result, 0); // Insert some data into the data_bkt_r, data_bkt_m and // data_bkt_c tables in the incorrect operation interval $oData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $oData_bkt_r->interval_start = '2008-08-21 08:00:00'; $oData_bkt_r->creative_id = 1; $oData_bkt_r->zone_id = 2; $oData_bkt_r->count = 10; DataGenerator::generateOne($oData_bkt_r); $oData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $oData_bkt_m->interval_start = '2008-08-21 08:00:00'; $oData_bkt_m->creative_id = 1; $oData_bkt_m->zone_id = 2; $oData_bkt_m->count = 9; DataGenerator::generateOne($oData_bkt_m); $oData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $oData_bkt_c->interval_start = '2008-08-21 08:00:00'; $oData_bkt_c->creative_id = 1; $oData_bkt_c->zone_id = 2; $oData_bkt_c->count = 1; DataGenerator::generateOne($oData_bkt_c); // Test 11: Test with data in the incorrect operation interval $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertEqual($result, 0); // Insert some data into the data_bkt_r, data_bkt_m and // data_bkt_c tables in the incorrect operation interval $oData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $oData_bkt_r->interval_start = '2008-08-21 09:00:00'; $oData_bkt_r->creative_id = 1; $oData_bkt_r->zone_id = 2; $oData_bkt_r->count = 10; DataGenerator::generateOne($oData_bkt_r); $oData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $oData_bkt_m->interval_start = '2008-08-21 09:00:00'; $oData_bkt_m->creative_id = 1; $oData_bkt_m->zone_id = 2; $oData_bkt_m->count = 9; DataGenerator::generateOne($oData_bkt_m); $oData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $oData_bkt_c->interval_start = '2008-08-21 09:00:00'; $oData_bkt_c->creative_id = 1; $oData_bkt_c->zone_id = 2; $oData_bkt_c->count = 1; DataGenerator::generateOne($oData_bkt_c); // Test 12: Test with data in the correct operation interval $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertEqual($result, 1); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->ad_id = 1; $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad->fetch(); $this->assertEqual($oData_intermediate_ad->date_time, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->operation_interval, $aConf['maintenance']['operationInterval']); $this->assertEqual($oData_intermediate_ad->operation_interval_id, OX_OperationInterval::convertDateToOperationIntervalID($aDates['start'])); $this->assertEqual($oData_intermediate_ad->interval_start, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->interval_end, '2008-08-21 09:59:59'); $this->assertEqual($oData_intermediate_ad->ad_id, 1); $this->assertEqual($oData_intermediate_ad->creative_id, 0); $this->assertEqual($oData_intermediate_ad->zone_id, 2); $this->assertEqual($oData_intermediate_ad->requests, 10); $this->assertEqual($oData_intermediate_ad->impressions, 9); $this->assertEqual($oData_intermediate_ad->clicks, 1); // Clean up generated data DataGenerator::cleanUp(); // Insert some new data into the data_bkt_r, data_bkt_m and // data_bkt_c tables in the incorrect operation interval $oData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $oData_bkt_r->interval_start = '2008-08-21 09:00:00'; $oData_bkt_r->creative_id = 2; $oData_bkt_r->zone_id = 2; $oData_bkt_r->count = 10; DataGenerator::generateOne($oData_bkt_r); $oData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $oData_bkt_m->interval_start = '2008-08-21 09:00:00'; $oData_bkt_m->creative_id = 2; $oData_bkt_m->zone_id = 2; $oData_bkt_m->count = 9; DataGenerator::generateOne($oData_bkt_m); $oData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $oData_bkt_c->interval_start = '2008-08-21 09:00:00'; $oData_bkt_c->creative_id = 2; $oData_bkt_c->zone_id = 2; $oData_bkt_c->count = 1; DataGenerator::generateOne($oData_bkt_c); $oData_bkt_r = OA_Dal::factoryDO('data_bkt_r'); $oData_bkt_r->interval_start = '2008-08-21 09:00:00'; $oData_bkt_r->creative_id = 11; $oData_bkt_r->zone_id = 12; $oData_bkt_r->count = 10000; DataGenerator::generateOne($oData_bkt_r); $oData_bkt_m = OA_Dal::factoryDO('data_bkt_m'); $oData_bkt_m->interval_start = '2008-08-21 09:00:00'; $oData_bkt_m->creative_id = 11; $oData_bkt_m->zone_id = 12; $oData_bkt_m->count = 9960; DataGenerator::generateOne($oData_bkt_m); $oData_bkt_c = OA_Dal::factoryDO('data_bkt_c'); $oData_bkt_c->interval_start = '2008-08-21 09:00:00'; $oData_bkt_c->creative_id = 11; $oData_bkt_c->zone_id = 12; $oData_bkt_c->count = 500; DataGenerator::generateOne($oData_bkt_c); // Test 13: Test with new data in the correct operation interval $result = $oDalMaintenanceStatistics->summariseBucketsAggregate($statisticsTableName, $aMigrationMaps, $aDates, $aExtras); $this->assertEqual($result, 2); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 3); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->ad_id = 1; $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad->fetch(); $this->assertEqual($oData_intermediate_ad->date_time, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->operation_interval, $aConf['maintenance']['operationInterval']); $this->assertEqual($oData_intermediate_ad->operation_interval_id, OX_OperationInterval::convertDateToOperationIntervalID($aDates['start'])); $this->assertEqual($oData_intermediate_ad->interval_start, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->interval_end, '2008-08-21 09:59:59'); $this->assertEqual($oData_intermediate_ad->ad_id, 1); $this->assertEqual($oData_intermediate_ad->creative_id, 0); $this->assertEqual($oData_intermediate_ad->zone_id, 2); $this->assertEqual($oData_intermediate_ad->requests, 10); $this->assertEqual($oData_intermediate_ad->impressions, 9); $this->assertEqual($oData_intermediate_ad->clicks, 1); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->ad_id = 2; $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad->fetch(); $this->assertEqual($oData_intermediate_ad->date_time, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->operation_interval, $aConf['maintenance']['operationInterval']); $this->assertEqual($oData_intermediate_ad->operation_interval_id, OX_OperationInterval::convertDateToOperationIntervalID($aDates['start'])); $this->assertEqual($oData_intermediate_ad->interval_start, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->interval_end, '2008-08-21 09:59:59'); $this->assertEqual($oData_intermediate_ad->ad_id, 2); $this->assertEqual($oData_intermediate_ad->creative_id, 0); $this->assertEqual($oData_intermediate_ad->zone_id, 2); $this->assertEqual($oData_intermediate_ad->requests, 10); $this->assertEqual($oData_intermediate_ad->impressions, 9); $this->assertEqual($oData_intermediate_ad->clicks, 1); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->ad_id = 11; $oData_intermediate_ad->find(); $rows = $oData_intermediate_ad->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad->fetch(); $this->assertEqual($oData_intermediate_ad->date_time, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->operation_interval, $aConf['maintenance']['operationInterval']); $this->assertEqual($oData_intermediate_ad->operation_interval_id, OX_OperationInterval::convertDateToOperationIntervalID($aDates['start'])); $this->assertEqual($oData_intermediate_ad->interval_start, '2008-08-21 09:00:00'); $this->assertEqual($oData_intermediate_ad->interval_end, '2008-08-21 09:59:59'); $this->assertEqual($oData_intermediate_ad->ad_id, 11); $this->assertEqual($oData_intermediate_ad->creative_id, 0); $this->assertEqual($oData_intermediate_ad->zone_id, 12); $this->assertEqual($oData_intermediate_ad->requests, 10000); $this->assertEqual($oData_intermediate_ad->impressions, 9960); $this->assertEqual($oData_intermediate_ad->clicks, 500); // Clean up generated data DataGenerator::cleanUp(); // Also clean up the data migrated into the statistics table $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->data_intermediate_ad_id = 1; $oData_intermediate_ad->find(); $oData_intermediate_ad->delete(); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->data_intermediate_ad_id = 2; $oData_intermediate_ad->find(); $oData_intermediate_ad->delete(); $oData_intermediate_ad = OA_Dal::factoryDO('data_intermediate_ad'); $oData_intermediate_ad->data_intermediate_ad_id = 3; $oData_intermediate_ad->find(); $oData_intermediate_ad->delete(); // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test environment configuration TestEnv::restoreConfig(); }
/** * A method to test the summariseBucketsRaw() method. */ function testSummariseBucketsRaw() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; // Prepare standard test parameters $statisticsTableName = $aConf['table']['prefix'] . 'data_intermediate_ad_connection'; $aMigrationDetails = array('method' => 'raw', 'bucketTable' => $aConf['table']['prefix'] . 'data_bkt_a', 'dateTimeColumn' => 'date_time', 'source' => array(0 => 'server_conv_id', 1 => 'server_ip', 2 => 'tracker_id', 3 => 'date_time', 4 => 'action_date_time', 5 => 'creative_id', 6 => 'zone_id', 7 => 'ip_address', 8 => 'action', 9 => 'window', 10 => 'status'), 'destination' => array(0 => 'server_raw_tracker_impression_id', 1 => 'server_raw_ip', 2 => 'tracker_id', 3 => 'tracker_date_time', 4 => 'connection_date_time', 5 => 'ad_id', 6 => 'zone_id', 7 => 'tracker_ip_address', 8 => 'connection_action', 9 => 'connection_window', 10 => 'connection_status'), 'extrasDestination' => array(11 => 'creative_id', 12 => 'inside_window'), 'extrasValue' => array(11 => '0', 12 => '1')); $aDates = array('start' => new Date('2008-08-21 09:00:00'), 'end' => new Date('2008-08-21 09:59:59')); // Prepare the DAL object $oFactory = new OX_Dal_Maintenance_Statistics_Factory(); $oDalMaintenanceStatistics = $oFactory->factory(); // Test 1: Test with an incorrect method name in the mapping array $savedValue = $aMigrationDetails['method']; $aMigrationDetails['method'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with migration map method 'foo' != 'raw'."); $aMigrationDetails['method'] = $savedValue; // Test 2: Test with a different number of source and destination columns $savedValue = $aMigrationDetails['destination'][1]; unset($aMigrationDetails['destination'][1]); $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with different number of 'source' and 'destination' columns."); $aMigrationDetails['destination'][1] = $savedValue; // Test 3: Test with a different number of extrasDestination and extrasValue columns $savedValue = $aMigrationDetails['extrasDestination'][11]; unset($aMigrationDetails['extrasDestination'][11]); $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with different number of 'extrasDestination' and 'extrasValue' columns."); $aMigrationDetails['extrasDestination'][11] = $savedValue; // Test 4: Test with date parameters that are not really dates $savedValue = $aDates['start']; $aDates['start'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid start/end date parameters -- not Date objects."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid start/end date parameters -- not Date objects."); $aDates['end'] = $savedValue; // Test 5: Test with invalid start/end dates $savedValue = $aDates['start']; $aDates['start'] = new Date('2008-08-21 08:00:00'); $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = new Date('2008-08-22 09:59:59'); $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['end'] = $savedValue; // Test 6: Test with an invalid statistics table name $savedValue = $statisticsTableName; $statisticsTableName = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid statistics table 'foo'."); $statisticsTableName = $savedValue; // Test 7: Test with no data_bkt_a table in the database $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRaw() called with invalid bucket table '{$aConf['table']['prefix']}data_bkt_a'."); // Install the openXDeliveryLog plugin, which will create the // data_bkt_a table required for testing TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 8: Test with all tables present, but no data $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 0); // Insert some data into the data_bkt_a table in the incorrect // operation interval $oData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $oData_bkt_a->server_conv_id = 1; $oData_bkt_a->server_ip = 'localhost'; $oData_bkt_a->tracker_id = 2; $oData_bkt_a->date_time = '2008-08-21 08:15:00'; $oData_bkt_a->action_date_time = '2008-08-21 07:15:00'; $oData_bkt_a->creative_id = 3; $oData_bkt_a->zone_id = 4; $oData_bkt_a->ip_address = '127.0.0.1'; $oData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $oData_bkt_a->window = 3600; $oData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $conversionId = DataGenerator::generateOne($oData_bkt_a); // Test 9: Test with data in the incorrect operation interval $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 0); // Insert some data into the data_bkt_a table in the correct // operation interval $oData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $oData_bkt_a->server_conv_id = 2; $oData_bkt_a->server_ip = 'localhost'; $oData_bkt_a->tracker_id = 2; $oData_bkt_a->date_time = '2008-08-21 09:15:00'; $oData_bkt_a->action_date_time = '2008-08-21 08:15:00'; $oData_bkt_a->creative_id = 3; $oData_bkt_a->zone_id = 4; $oData_bkt_a->ip_address = '127.0.0.1'; $oData_bkt_a->action = MAX_CONNECTION_AD_CLICK; $oData_bkt_a->window = 3600; $oData_bkt_a->status = MAX_CONNECTION_STATUS_APPROVED; $conversionId = DataGenerator::generateOne($oData_bkt_a); // Test 10: Test with data in the correct operation interval $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 1); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->find(); $rows = $oData_intermediate_ad_connection->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->find(); $rows = $oData_intermediate_ad_connection->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_connection->fetch(); $this->assertEqual($oData_intermediate_ad_connection->data_intermediate_ad_connection_id, 1); $this->assertEqual($oData_intermediate_ad_connection->server_raw_tracker_impression_id, 2); $this->assertEqual($oData_intermediate_ad_connection->server_raw_ip, 'localhost'); $this->assertEqual($oData_intermediate_ad_connection->tracker_id, 2); $this->assertEqual($oData_intermediate_ad_connection->tracker_date_time, '2008-08-21 09:15:00'); $this->assertEqual($oData_intermediate_ad_connection->connection_date_time, '2008-08-21 08:15:00'); $this->assertEqual($oData_intermediate_ad_connection->ad_id, 3); $this->assertEqual($oData_intermediate_ad_connection->zone_id, 4); $this->assertEqual($oData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertEqual($oData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($oData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($oData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($oData_intermediate_ad_connection->inside_window, 1); // Clean up generated data DataGenerator::cleanUp(); // Insert some (new) data into the data_bkt_a table in the // correct operation interval $oData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $oData_bkt_a->server_conv_id = 3; $oData_bkt_a->server_ip = 'localhost'; $oData_bkt_a->tracker_id = 5; $oData_bkt_a->date_time = '2008-08-21 09:30:00'; $oData_bkt_a->action_date_time = '2008-08-21 08:59:00'; $oData_bkt_a->creative_id = 8; $oData_bkt_a->zone_id = 9; $oData_bkt_a->ip_address = '127.0.0.1'; $oData_bkt_a->action = MAX_CONNECTION_AD_IMPRESSION; $oData_bkt_a->window = 1920; $oData_bkt_a->status = MAX_CONNECTION_STATUS_PENDING; $conversionId = DataGenerator::generateOne($oData_bkt_a); // Test 11: Test again with data in the correct operation interval $result = $oDalMaintenanceStatistics->summariseBucketsRaw($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 1); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->find(); $rows = $oData_intermediate_ad_connection->getRowCount(); $this->assertEqual($rows, 2); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->find(); $rows = $oData_intermediate_ad_connection->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_connection->fetch(); $this->assertEqual($oData_intermediate_ad_connection->data_intermediate_ad_connection_id, 1); $this->assertEqual($oData_intermediate_ad_connection->server_raw_tracker_impression_id, 2); $this->assertEqual($oData_intermediate_ad_connection->server_raw_ip, 'localhost'); $this->assertEqual($oData_intermediate_ad_connection->tracker_id, 2); $this->assertEqual($oData_intermediate_ad_connection->tracker_date_time, '2008-08-21 09:15:00'); $this->assertEqual($oData_intermediate_ad_connection->connection_date_time, '2008-08-21 08:15:00'); $this->assertEqual($oData_intermediate_ad_connection->ad_id, 3); $this->assertEqual($oData_intermediate_ad_connection->zone_id, 4); $this->assertEqual($oData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertEqual($oData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($oData_intermediate_ad_connection->connection_window, 3600); $this->assertEqual($oData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_APPROVED); $this->assertEqual($oData_intermediate_ad_connection->inside_window, 1); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 3; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->find(); $rows = $oData_intermediate_ad_connection->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_connection->fetch(); $this->assertEqual($oData_intermediate_ad_connection->data_intermediate_ad_connection_id, 2); $this->assertEqual($oData_intermediate_ad_connection->server_raw_tracker_impression_id, 3); $this->assertEqual($oData_intermediate_ad_connection->server_raw_ip, 'localhost'); $this->assertEqual($oData_intermediate_ad_connection->tracker_id, 5); $this->assertEqual($oData_intermediate_ad_connection->tracker_date_time, '2008-08-21 09:30:00'); $this->assertEqual($oData_intermediate_ad_connection->connection_date_time, '2008-08-21 08:59:00'); $this->assertEqual($oData_intermediate_ad_connection->ad_id, 8); $this->assertEqual($oData_intermediate_ad_connection->zone_id, 9); $this->assertEqual($oData_intermediate_ad_connection->tracker_ip_address, '127.0.0.1'); $this->assertEqual($oData_intermediate_ad_connection->connection_action, MAX_CONNECTION_AD_IMPRESSION); $this->assertEqual($oData_intermediate_ad_connection->connection_window, 1920); $this->assertEqual($oData_intermediate_ad_connection->connection_status, MAX_CONNECTION_STATUS_PENDING); $this->assertEqual($oData_intermediate_ad_connection->inside_window, 1); // Clean up generated data DataGenerator::cleanUp(); // Also clean up the data migrated into the statistics table $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $oData_intermediate_ad_connection->find(); $oData_intermediate_ad_connection->delete(); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 3; $oData_intermediate_ad_connection->find(); $oData_intermediate_ad_connection->delete(); // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test environment configuration TestEnv::restoreConfig(); }
/** * A method to test the summariseBucketsRawSupplementary() method. */ function testSummariseBucketsRawSupplementary() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; // Prepare standard test parameters $statisticsTableName = $aConf['table']['prefix'] . 'data_intermediate_ad_variable_value'; $aMigrationDetails = array('method' => 'rawSupplementary', 'masterTable' => $aConf['table']['prefix'] . 'data_intermediate_ad_connection', 'masterTablePrimaryKeys' => array(0 => 'data_intermediate_ad_connection_id'), 'bucketTablePrimaryKeys' => array(0 => 'data_intermediate_ad_connection_id'), 'masterTableKeys' => array(0 => 'server_raw_tracker_impression_id', 1 => 'server_raw_ip'), 'bucketTableKeys' => array(0 => 'server_conv_id', 1 => 'server_ip'), 'masterDateTimeColumn' => 'tracker_date_time', 'bucketTable' => $aConf['table']['prefix'] . 'data_bkt_a_var', 'source' => array(0 => 'tracker_variable_id', 1 => 'value'), 'destination' => array(0 => 'tracker_variable_id', 1 => 'value')); $aDates = array('start' => new Date('2008-08-21 09:00:00'), 'end' => new Date('2008-08-21 09:59:59')); // Prepare the DAL object $oFactory = new OX_Dal_Maintenance_Statistics_Factory(); $oDalMaintenanceStatistics = $oFactory->factory(); // Test 1: Test with an incorrect method name in the mapping array $savedValue = $aMigrationDetails['method']; $aMigrationDetails['method'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with migration map method 'foo' != 'rawSupplementary'."); $aMigrationDetails['method'] = $savedValue; // Test 2: Test with a different number of masterTablePrimaryKeys and bucketTablePrimaryKeys columns $savedValue = $aMigrationDetails['masterTablePrimaryKeys'][0]; unset($aMigrationDetails['masterTablePrimaryKeys'][0]); $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with different number of 'masterTablePrimaryKeys' and 'bucketTablePrimaryKeys' columns."); $aMigrationDetails['masterTablePrimaryKeys'][0] = $savedValue; // Test 3: Test with a different number of masterTableKeys and bucketTableKeys columns $savedValue = $aMigrationDetails['masterTableKeys'][1]; unset($aMigrationDetails['masterTableKeys'][1]); $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with different number of 'masterTableKeys' and 'bucketTableKeys' columns."); $aMigrationDetails['masterTableKeys'][1] = $savedValue; // Test 4: Test with a different number of source and destination columns $savedValue = $aMigrationDetails['destination'][1]; unset($aMigrationDetails['destination'][1]); $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with different number of 'source' and 'destination' columns."); $aMigrationDetails['destination'][1] = $savedValue; // Test 5: Test with date parameters that are not really dates $savedValue = $aDates['start']; $aDates['start'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid start/end date parameters -- not Date objects."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid start/end date parameters -- not Date objects."); $aDates['end'] = $savedValue; // Test 6: Test with invalid start/end dates $savedValue = $aDates['start']; $aDates['start'] = new Date('2008-08-21 08:00:00'); $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['start'] = $savedValue; $savedValue = $aDates['end']; $aDates['end'] = new Date('2008-08-22 09:59:59'); $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDARGS); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid start/end date parameters -- not operation interval bounds."); $aDates['end'] = $savedValue; // Test 7: Test with an invalid statistics table name $savedValue = $statisticsTableName; $statisticsTableName = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid statistics table 'foo'."); $statisticsTableName = $savedValue; // Test 8: Test with an invalid master statistics table name $savedValue = $aMigrationDetails['masterTable']; $aMigrationDetails['masterTable'] = 'foo'; $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid master table 'foo'."); $aMigrationDetails['masterTable'] = $savedValue; // Test 9: Test with no data_bkt_a_var table in the database $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertTrue(is_a($result, 'PEAR_Error')); $this->assertEqual($result->code, MAX_ERROR_INVALIDREQUEST); $this->assertEqual($result->message, "OX_Dal_Maintenance_Statistics::summariseBucketsRawSupplementary() called with invalid bucket table '{$aConf['table']['prefix']}data_bkt_a_var'."); // Install the openXDeliveryLog plugin, which will create the // data_bkt_a table required for testing TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 10: Test with all tables present, but no data $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 0); // Insert a conversion into the data_intermediate_ad_connection table // in the incorrect operation interval $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 1; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->tracker_id = 2; $oData_intermediate_ad_connection->tracker_date_time = '2008-08-21 08:15:00'; $oData_intermediate_ad_connection->connection_date_time = '2008-08-21 07:15:00'; $oData_intermediate_ad_connection->ad_id = 3; $oData_intermediate_ad_connection->zone_id = 4; $oData_intermediate_ad_connection->tracker_ip_address = '127.0.0.1'; $oData_intermediate_ad_connection->connection_action = MAX_CONNECTION_AD_CLICK; $oData_intermediate_ad_connection->connection_window = 3600; $oData_intermediate_ad_connection->connection_status = MAX_CONNECTION_STATUS_APPROVED; $oData_intermediate_ad_connection->inside_window = 1; $conversionId = DataGenerator::generateOne($oData_intermediate_ad_connection); // Test 11: Test with data in the incorrect operation interval $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 0); // Insert two conversions into the data_intermediate_ad_connection table // in the correct operation interval $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 2; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->tracker_id = 2; $oData_intermediate_ad_connection->tracker_date_time = '2008-08-21 09:15:00'; $oData_intermediate_ad_connection->connection_date_time = '2008-08-21 08:15:00'; $oData_intermediate_ad_connection->ad_id = 3; $oData_intermediate_ad_connection->zone_id = 4; $oData_intermediate_ad_connection->tracker_ip_address = '127.0.0.1'; $oData_intermediate_ad_connection->connection_action = MAX_CONNECTION_AD_CLICK; $oData_intermediate_ad_connection->connection_window = 3600; $oData_intermediate_ad_connection->connection_status = MAX_CONNECTION_STATUS_APPROVED; $oData_intermediate_ad_connection->inside_window = 1; $conversionId1 = DataGenerator::generateOne($oData_intermediate_ad_connection); $oData_intermediate_ad_connection = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_connection->server_raw_tracker_impression_id = 3; $oData_intermediate_ad_connection->server_raw_ip = 'localhost'; $oData_intermediate_ad_connection->tracker_id = 9; $oData_intermediate_ad_connection->tracker_date_time = '2008-08-21 09:16:00'; $oData_intermediate_ad_connection->connection_date_time = '2008-08-21 08:16:00'; $oData_intermediate_ad_connection->ad_id = 6; $oData_intermediate_ad_connection->zone_id = 7; $oData_intermediate_ad_connection->tracker_ip_address = '127.0.0.1'; $oData_intermediate_ad_connection->connection_action = MAX_CONNECTION_AD_VIEW; $oData_intermediate_ad_connection->connection_window = 3600; $oData_intermediate_ad_connection->connection_status = MAX_CONNECTION_STATUS_APPROVED; $oData_intermediate_ad_connection->inside_window = 1; $conversionId2 = DataGenerator::generateOne($oData_intermediate_ad_connection); // Test 12: Test with data in the correct operation interval, but // no supplementary data $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 0); // Add some supplementary data for the conversions above! $oData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $oData_bkt_a_var->server_conv_id = 2; $oData_bkt_a_var->server_ip = 'localhost'; $oData_bkt_a_var->tracker_variable_id = 99; $oData_bkt_a_var->value = 'foo'; DataGenerator::generateOne($oData_bkt_a_var); $oData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $oData_bkt_a_var->server_conv_id = 2; $oData_bkt_a_var->server_ip = 'localhost'; $oData_bkt_a_var->tracker_variable_id = 100; $oData_bkt_a_var->value = '156.99'; DataGenerator::generateOne($oData_bkt_a_var); $oData_bkt_a_var = OA_Dal::factoryDO('data_bkt_a_var'); $oData_bkt_a_var->server_conv_id = 3; $oData_bkt_a_var->server_ip = 'localhost'; $oData_bkt_a_var->tracker_variable_id = 15; $oData_bkt_a_var->value = '123456789'; DataGenerator::generateOne($oData_bkt_a_var); // Test 12: Test with data in the correct operation interval $result = $oDalMaintenanceStatistics->summariseBucketsRawSupplementary($statisticsTableName, $aMigrationDetails, $aDates); $this->assertEqual($result, 3); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId1; $oData_intermediate_ad_variable_value->find(); $rows = $oData_intermediate_ad_variable_value->getRowCount(); $this->assertEqual($rows, 2); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId1; $oData_intermediate_ad_variable_value->tracker_variable_id = 99; $oData_intermediate_ad_variable_value->find(); $rows = $oData_intermediate_ad_variable_value->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_variable_value->fetch(); $this->assertEqual($oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id, $conversionId1); $this->assertEqual($oData_intermediate_ad_variable_value->tracker_variable_id, 99); $this->assertEqual($oData_intermediate_ad_variable_value->value, 'foo'); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId1; $oData_intermediate_ad_variable_value->tracker_variable_id = 100; $oData_intermediate_ad_variable_value->find(); $rows = $oData_intermediate_ad_variable_value->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_variable_value->fetch(); $this->assertEqual($oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id, $conversionId1); $this->assertEqual($oData_intermediate_ad_variable_value->tracker_variable_id, 100); $this->assertEqual($oData_intermediate_ad_variable_value->value, '156.99'); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId2; $oData_intermediate_ad_variable_value->find(); $rows = $oData_intermediate_ad_variable_value->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_variable_value'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId2; $oData_intermediate_ad_variable_value->tracker_variable_id = 15; $oData_intermediate_ad_variable_value->find(); $rows = $oData_intermediate_ad_variable_value->getRowCount(); $this->assertEqual($rows, 1); $oData_intermediate_ad_variable_value->fetch(); $this->assertEqual($oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id, $conversionId2); $this->assertEqual($oData_intermediate_ad_variable_value->tracker_variable_id, 15); $this->assertEqual($oData_intermediate_ad_variable_value->value, '123456789'); // Clean up generated data DataGenerator::cleanUp(); // Also clean up the data migrated into the statistics table $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId1; $oData_intermediate_ad_variable_value->find(); $oData_intermediate_ad_variable_value->delete(); $oData_intermediate_ad_variable_value = OA_Dal::factoryDO('data_intermediate_ad_connection'); $oData_intermediate_ad_variable_value->data_intermediate_ad_connection_id = $conversionId2; $oData_intermediate_ad_variable_value->find(); $oData_intermediate_ad_variable_value->delete(); // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test environment configuration TestEnv::restoreConfig(); }
/** * A method to test the MAX_Delivery_log_logConversion() function. */ function test_MAX_Delivery_log_logConversion() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; $GLOBALS['_MAX']['NOW'] = time(); $oNowDate = new Date($GLOBALS['_MAX']['NOW']); $aDates = OX_OperationInterval::convertDateToOperationIntervalStartAndEndDates($oNowDate); $intervalStart = $aDates['start']->format('%Y-%m-%d %H:%M:%S'); $oConversionDate = new Date(); $oConversionDate->copy($oNowDate); $oConversionDate->subtractSeconds(60); $_SERVER['REMOTE_ADDR'] = '127.0.0.99'; // Test to ensure that the openXDeliveryLog plugin's data bucket // table does not exist $oTable = new OA_DB_Table(); $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . 'data_bkt_a'); $this->assertFalse($tableExists); // Test calling the main logging function without any plugins installed, // to ensure that this does not result in any kind of error $aConversion = array('action_type' => MAX_CONNECTION_AD_CLICK, 'tracker_type' => MAX_CONNECTION_TYPE_SALE, 'status' => MAX_CONNECTION_STATUS_APPROVED, 'cid' => 2, 'zid' => 3, 'dt' => $GLOBALS['_MAX']['NOW'] - 60, 'window' => 60); MAX_Delivery_log_logConversion(1, $aConversion); // Install the openXDeliveryLog plugin TestEnv::installPluginPackage('openXDeliveryLog', false); // Test to ensure that the openXDeliveryLog plugin's data bucket // table now does exist $tableExists = $oTable->extistsTable($aConf['table']['prefix'] . 'data_bkt_a'); $this->assertTrue($tableExists); // Ensure that there are is nothing logged in the data bucket table $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 0); // Call the conversion logging function $aConversionInfo = MAX_Delivery_log_logConversion(1, $aConversion); // Ensure that the data was logged correctly $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 1; $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt_a->fetch(); $this->assertEqual($doData_bkt_a->server_ip, 'singleDB'); $this->assertEqual($doData_bkt_a->tracker_id, 1); $this->assertEqual($doData_bkt_a->date_time, $oNowDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->action_date_time, $oConversionDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->creative_id, 2); $this->assertEqual($doData_bkt_a->zone_id, 3); $this->assertEqual($doData_bkt_a->ip_address, '127.0.0.99'); $this->assertEqual($doData_bkt_a->action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_bkt_a->window, 60); $this->assertEqual($doData_bkt_a->status, MAX_CONNECTION_STATUS_APPROVED); $this->assertTrue(is_array($aConversionInfo)); $this->assertTrue(is_array($aConversionInfo['deliveryLog:oxLogConversion:logConversion'])); $this->assertEqual($aConversionInfo['deliveryLog:oxLogConversion:logConversion']['server_conv_id'], 1); $this->assertEqual($aConversionInfo['deliveryLog:oxLogConversion:logConversion']['server_raw_ip'], 'singleDB'); $aConversion['cid'] = 5; // Call the conversion logging function $aConversionInfo = MAX_Delivery_log_logConversion(1, $aConversion); // Ensure that the data was logged correctly $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 2); $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 1; $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt_a->fetch(); $this->assertEqual($doData_bkt_a->server_ip, 'singleDB'); $this->assertEqual($doData_bkt_a->tracker_id, 1); $this->assertEqual($doData_bkt_a->date_time, $oNowDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->action_date_time, $oConversionDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->creative_id, 2); $this->assertEqual($doData_bkt_a->zone_id, 3); $this->assertEqual($doData_bkt_a->ip_address, '127.0.0.99'); $this->assertEqual($doData_bkt_a->action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_bkt_a->window, 60); $this->assertEqual($doData_bkt_a->status, MAX_CONNECTION_STATUS_APPROVED); $doData_bkt_a = OA_Dal::factoryDO('data_bkt_a'); $doData_bkt_a->server_conv_id = 2; $doData_bkt_a->find(); $rows = $doData_bkt_a->getRowCount(); $this->assertEqual($rows, 1); $doData_bkt_a->fetch(); $this->assertEqual($doData_bkt_a->server_ip, 'singleDB'); $this->assertEqual($doData_bkt_a->tracker_id, 1); $this->assertEqual($doData_bkt_a->date_time, $oNowDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->action_date_time, $oConversionDate->format('%Y-%m-%d %H:%M:%S')); $this->assertEqual($doData_bkt_a->creative_id, 5); $this->assertEqual($doData_bkt_a->zone_id, 3); $this->assertEqual($doData_bkt_a->ip_address, '127.0.0.99'); $this->assertEqual($doData_bkt_a->action, MAX_CONNECTION_AD_CLICK); $this->assertEqual($doData_bkt_a->window, 60); $this->assertEqual($doData_bkt_a->status, MAX_CONNECTION_STATUS_APPROVED); $this->assertTrue(is_array($aConversionInfo)); $this->assertTrue(is_array($aConversionInfo['deliveryLog:oxLogConversion:logConversion'])); $this->assertEqual($aConversionInfo['deliveryLog:oxLogConversion:logConversion']['server_conv_id'], 2); $this->assertEqual($aConversionInfo['deliveryLog:oxLogConversion:logConversion']['server_raw_ip'], 'singleDB'); // Uninstall the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test configuration file TestEnv::restoreConfig(); }
function setUp() { $oPkgMgr = new OX_PluginManager(); TestEnv::uninstallPluginPackage('openXAdditionalBannerTypes'); TestEnv::installPluginPackage('openXAdditionalBannerTypes'); }
function test_exportPlugin() { TestEnv::installPluginPackage('openXTests', false); $pathPackages = $GLOBALS['_MAX']['CONF']['pluginPaths']['packages']; $pathPlugins = $GLOBALS['_MAX']['CONF']['pluginPaths']['plugins']; $pathAdmin = $GLOBALS['_MAX']['CONF']['pluginPaths']['admin']; $oExport = new OX_PluginExport(); $oExport->init('openXTests'); $pathExport = $oExport->outputDir; @unlink($pathExport . 'openXTests.zip'); $this->assertTrue($oExport->exportPlugin('openXTests')); $baseDir = MAX_PATH . '/var/tmp/openXTests'; $this->assertTrue(file_exists($pathExport . 'openXTests.zip')); $oZip = new PclZip($pathExport . 'openXTests.zip'); $aContents = $oZip->listContent(); $this->assertIsA($aContents, 'array'); $this->assertEqual(count($aContents), 4); $this->assertEqual($aContents[0]['status'], 'ok'); $this->assertEqual($aContents[0]['filename'], ltrim($pathPackages, '/') . 'Dummy/Dummy.xml'); $this->assertEqual($aContents[0]['stored_filename'], ltrim($pathPackages, '/') . 'Dummy/Dummy.xml'); $this->assertEqual($aContents[1]['status'], 'ok'); $this->assertEqual($aContents[1]['filename'], ltrim($pathPlugins, '/') . 'deliveryLimitations/Dummy/Dummy.class.php'); $this->assertEqual($aContents[1]['stored_filename'], ltrim($pathPlugins, '/') . 'deliveryLimitations/Dummy/Dummy.class.php'); $this->assertEqual($aContents[2]['status'], 'ok'); $this->assertEqual($aContents[2]['filename'], ltrim($pathPlugins, '/') . 'deliveryLimitations/Dummy/Dummy.delivery.php'); $this->assertEqual($aContents[2]['stored_filename'], ltrim($pathPlugins, '/') . 'deliveryLimitations/Dummy/Dummy.delivery.php'); $this->assertEqual($aContents[3]['status'], 'ok'); $this->assertEqual($aContents[3]['filename'], ltrim($pathPackages, '/') . 'openXTests.xml'); $this->assertEqual($aContents[3]['stored_filename'], ltrim($pathPackages, '/') . 'openXTests.xml'); @unlink($pathExport . 'openXTests.zip'); $aContentsNew = $aContents; $oZip = new PclZip(MAX_PATH . '/plugins_repo/release/openXTests.zip'); $aContentsOld = $oZip->listContent(); foreach ($aContentsOld as $i => $aItemOld) { if (!$aItemOld['folder']) { foreach ($aContentsNew as $n => $aItemNew) { if ($aItemOld['filename'] == $aItemNew['filename'] && $aItemOld['stored_filename'] == $aItemNew['stored_filename'] && $aItemOld['size'] == $aItemNew['size'] && $aItemOld['crc'] == $aItemNew['crc']) { unset($aContentsOld[$i]); unset($aContentsNew[$n]); break; } } } else { // For somewhat reason "new" doesn't seem to contain folders. Bug? unset($aContentsOld[$i]); } } $this->assertFalse(count($aContentsNew)); $this->assertFalse(count($aContentsOld)); TestEnv::uninstallPluginPackage('openXTests', false); TestEnv::restoreConfig(); }
function testGetAllowedTags() { TestEnv::installPluginPackage('openXInvocationTags'); $dllZone = new OA_Dll_Zone(); $aZoneAllowedTags = $dllZone->getAllowedTags(); // Test if only and all allowed tags are returned $count = 0; $invocationTags =& OX_Component::getComponents('invocationTags'); foreach ($invocationTags as $pluginKey => $invocationTag) { if ($invocationTag->isAllowed(null, null)) { $count++; $this->assertTrue(in_array($pluginKey, $aZoneAllowedTags)); } else { $this->assertFalse(in_array($pluginKey, $aZoneAllowedTags)); } } $this->assertEqual($count, count($aZoneAllowedTags)); // tests if spc is disallowed anyway $GLOBALS['_MAX']['CONF']['spc']['allowed'] = true; $aZoneAllowedTags = $dllZone->getAllowedTags(); $this->assertFalse(in_array('spc', $aZoneAllowedTags)); unset($GLOBALS['_MAX']['CONF']['spc']['allowed']); TestEnv::uninstallPluginPackage('openXInvocationTags'); }
/** * A method to test the main run() method. */ function testRun() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; $oServiceLocator =& OA_ServiceLocator::instance(); $oFactory = new OX_Dal_Maintenance_Statistics_Factory(); $oDalMaintenanceStatsticsClassName = $oFactory->deriveClassName(); // Test 1: Run, with the migration required but with no plugins installed $oNowDate = new Date('2008-08-28 09:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = true; $oMaintenanceStatistics->oLastDateIntermediate = new Date('2008-08-28 07:59:59'); $oMaintenanceStatistics->oUpdateIntermediateToDate = new Date('2008-08-28 08:59:59'); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_1', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_1($this); $oDal->expectNever('summariseBucketsRaw'); $oDal->expectNever('summariseBucketsRawSupplementary'); $oDal->expectNever('summariseBucketsAggregate'); $oDal->expectNever('migrateRawRequests'); $oDal->expectNever('migrateRawImpressions'); $oDal->expectNever('migrateRawClicks'); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); // Create the "application_variable" table required for installing the plugin $oTables =& OA_DB_Table_Core::singleton(); $oTables->createTable('application_variable'); // Setup the default OpenX delivery logging plugin for the next test TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 2: Run, with plugins installed, but with the migration not required $oNowDate = new Date('2008-08-28 09:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = false; $oServiceLocator->register('Maintenance_Statistics_Controller', $oMaintenanceStatistics); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_2', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_2($this); $oDal->expectNever('summariseBucketsRaw'); $oDal->expectNever('summariseBucketsRawSupplementary'); $oDal->expectNever('summariseBucketsAggregate'); $oDal->expectNever('migrateRawRequests'); $oDal->expectNever('migrateRawImpressions'); $oDal->expectNever('migrateRawClicks'); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); // Test 3: Run, with plugins installed and with the migration required for a single // operation interval $oNowDate = new Date('2008-08-28 09:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = true; $oMaintenanceStatistics->oLastDateIntermediate = new Date('2008-08-28 07:59:59'); $oMaintenanceStatistics->oUpdateIntermediateToDate = new Date('2008-08-28 08:59:59'); $oServiceLocator->register('Maintenance_Statistics_Controller', $oMaintenanceStatistics); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_3', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_3($this); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversion'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversionVariable'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $aMap = array(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogClick', 'logClick'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogImpression', 'logImpression'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogRequest', 'logRequest'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 08:00:00'", 'interval_end' => "'2008-08-28 08:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 09:01:00'"))); $oDal->expectNever('migrateRawRequests'); $oDal->expectNever('migrateRawImpressions'); $oDal->expectNever('migrateRawClicks'); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); // Test 4: Run, with plugins installed and with the migration required for a single // operation interval + migration of raw data set to occur $doApplication_variable = OA_Dal::factoryDO('application_variable'); $doApplication_variable->name = 'mse_process_raw'; $doApplication_variable->value = '1'; $doApplication_variable->insert(); $oNowDate = new Date('2008-08-28 09:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = true; $oMaintenanceStatistics->oLastDateIntermediate = new Date('2008-08-28 07:59:59'); $oMaintenanceStatistics->oUpdateIntermediateToDate = new Date('2008-08-28 08:59:59'); $oServiceLocator->register('Maintenance_Statistics_Controller', $oMaintenanceStatistics); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_4', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_4($this); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversion'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversionVariable'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $aMap = array(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogClick', 'logClick'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogImpression', 'logImpression'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogRequest', 'logRequest'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectOnce('summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 08:00:00'", 'interval_end' => "'2008-08-28 08:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 09:01:00'"))); $oDal->expectOnce('migrateRawRequests', array($oStartDate, $oEndDate)); $oDal->expectOnce('migrateRawImpressions', array($oStartDate, $oEndDate)); $oDal->expectOnce('migrateRawClicks', array($oStartDate, $oEndDate)); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); $doApplication_variable = OA_Dal::factoryDO('application_variable'); $doApplication_variable->name = 'mse_process_raw'; $doApplication_variable->value = '1'; $doApplication_variable->find(); $rows = $doApplication_variable->getRowCount(); $this->assertEqual($rows, 0); // Test 5: Run, with plugins installed and with the migration required for multiple // operation intervals $oNowDate = new Date('2008-08-28 11:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = true; $oMaintenanceStatistics->oLastDateIntermediate = new Date('2008-08-28 07:59:59'); $oMaintenanceStatistics->oUpdateIntermediateToDate = new Date('2008-08-28 10:59:59'); $oServiceLocator->register('Maintenance_Statistics_Controller', $oMaintenanceStatistics); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_5', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_5($this); $oDal->expectCallCount('summariseBucketsRaw', 3); $oDal->expectCallCount('summariseBucketsRawSupplementary', 3); $oDal->expectCallCount('summariseBucketsAggregate', 3); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversion'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversionVariable'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $aMap = array(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogClick', 'logClick'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogImpression', 'logImpression'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogRequest', 'logRequest'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 08:00:00'", 'interval_end' => "'2008-08-28 08:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 09:00:00'", 'interval_end' => "'2008-08-28 09:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 10:00:00'", 'interval_end' => "'2008-08-28 10:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oDal->expectNever('migrateRawRequests'); $oDal->expectNever('migrateRawImpressions'); $oDal->expectNever('migrateRawClicks'); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); // Test 6: Run, with plugins installed and with the migration required for multiple // operation intervals + migration of raw data set to occur $doApplication_variable = OA_Dal::factoryDO('application_variable'); $doApplication_variable->name = 'mse_process_raw'; $doApplication_variable->value = '1'; $doApplication_variable->insert(); $oNowDate = new Date('2008-08-28 11:01:00'); $oServiceLocator->register('now', $oNowDate); $oMaintenanceStatistics = new OX_Maintenance_Statistics(); $oMaintenanceStatistics->updateIntermediate = true; $oMaintenanceStatistics->oLastDateIntermediate = new Date('2008-08-28 07:59:59'); $oMaintenanceStatistics->oUpdateIntermediateToDate = new Date('2008-08-28 10:59:59'); $oServiceLocator->register('Maintenance_Statistics_Controller', $oMaintenanceStatistics); Mock::generatePartial($oDalMaintenanceStatsticsClassName, 'MockOX_Dal_Maintenance_Statistics_Test_6', array('summariseBucketsRaw', 'summariseBucketsRawSupplementary', 'summariseBucketsAggregate', 'migrateRawRequests', 'migrateRawImpressions', 'migrateRawClicks')); $oDal = new MockOX_Dal_Maintenance_Statistics_Test_6($this); $oDal->expectCallCount('summariseBucketsRaw', 3); $oDal->expectCallCount('summariseBucketsRawSupplementary', 3); $oDal->expectCallCount('summariseBucketsAggregate', 3); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversion'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsRaw', array($aConf['table']['prefix'] . 'data_intermediate_ad_connection', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogConversion', 'logConversionVariable'); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsRawSupplementary', array($aConf['table']['prefix'] . 'data_intermediate_ad_variable_value', $oComponent->getStatisticsMigration(), array('start' => $oStartDate, 'end' => $oEndDate))); $aMap = array(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogClick', 'logClick'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogImpression', 'logImpression'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oComponent =& OX_Component::factory('deliveryLog', 'oxLogRequest', 'logRequest'); $aMap[get_class($oComponent)] = $oComponent->getStatisticsMigration(); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 08:00:00'", 'interval_end' => "'2008-08-28 08:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 09:00:00'", 'interval_end' => "'2008-08-28 09:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'summariseBucketsAggregate', array($aConf['table']['prefix'] . 'data_intermediate_ad', $aMap, array('start' => $oStartDate, 'end' => $oEndDate), array('operation_interval' => '60', 'operation_interval_id' => OX_OperationInterval::convertDateToOperationIntervalID($oStartDate), 'interval_start' => "'2008-08-28 10:00:00'", 'interval_end' => "'2008-08-28 10:59:59'", 'creative_id' => 0, 'updated' => "'2008-08-28 11:01:00'"))); $oStartDate = new Date('2008-08-28 07:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 09:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(0, 'migrateRawRequests', array($oStartDate, $oEndDate)); $oDal->expectAt(0, 'migrateRawImpressions', array($oStartDate, $oEndDate)); $oDal->expectAt(0, 'migrateRawClicks', array($oStartDate, $oEndDate)); $oStartDate = new Date('2008-08-28 08:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 10:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(1, 'migrateRawRequests', array($oStartDate, $oEndDate)); $oDal->expectAt(1, 'migrateRawImpressions', array($oStartDate, $oEndDate)); $oDal->expectAt(1, 'migrateRawClicks', array($oStartDate, $oEndDate)); $oStartDate = new Date('2008-08-28 09:59:59'); $oStartDate->addSeconds(1); $oEndDate = new Date('2008-08-28 11:00:00'); $oEndDate->subtractSeconds(1); $oDal->expectAt(2, 'migrateRawRequests', array($oStartDate, $oEndDate)); $oDal->expectAt(2, 'migrateRawImpressions', array($oStartDate, $oEndDate)); $oDal->expectAt(2, 'migrateRawClicks', array($oStartDate, $oEndDate)); $oDal->OX_Dal_Maintenance_Statistics(); $oServiceLocator->register('OX_Dal_Maintenance_Statistics', $oDal); $oSummariseIntermediate = new OX_Maintenance_Statistics_Task_MigrateBucketData(); $oSummariseIntermediate->run(); $oDal =& $oServiceLocator->get('OX_Dal_Maintenance_Statistics'); $oDal->tally(); $doApplication_variable = OA_Dal::factoryDO('application_variable'); $doApplication_variable->name = 'mse_process_raw'; $doApplication_variable->value = '1'; $doApplication_variable->find(); $rows = $doApplication_variable->getRowCount(); $this->assertEqual($rows, 0); // Uninstall the installed plugins TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Reset the testing environment TestEnv::restoreEnv(); }
/** * A method to test when there are old format raw requests, * impressions and clicks, in the operation interval being * migrated. */ function testComplexValidData() { $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 60; // Prepare an array of the required tables used in testing $aTables = array($aConf['table']['prefix'] . $aConf['table']['data_raw_ad_request'] => $aConf['table']['prefix'] . 'data_bkt_r', $aConf['table']['prefix'] . $aConf['table']['data_raw_ad_impression'] => $aConf['table']['prefix'] . 'data_bkt_m', $aConf['table']['prefix'] . $aConf['table']['data_raw_ad_click'] => $aConf['table']['prefix'] . 'data_bkt_c'); // Install the openXDeliveryLog plugin, which will create the // data bucket tables required for testing TestEnv::installPluginPackage('openXDeliveryLog', false); // Ensure that there are no old format raw data foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($rawTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 0); } // Ensure that there are no new format bucket data foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 0); } // Insert some old style raw data in an operation interval // that will not be migrated foreach ($aTables as $rawTable => $bucketTable) { $query = "\n INSERT INTO\n " . $this->oDbh->quoteIdentifier($rawTable, true) . "\n (\n date_time,\n ad_id,\n creative_id,\n zone_id\n )\n VALUES\n (\n '2009-01-09 11:30:00',\n 1,\n 0,\n 1\n )"; $this->oDbh->exec($query); } // Ensure that the old format raw data was inserted correctly foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($rawTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 1); } // Insert some old style raw data in an operation interval // that will be migrated foreach ($aTables as $rawTable => $bucketTable) { $query = "\n INSERT INTO\n " . $this->oDbh->quoteIdentifier($rawTable, true) . "\n (\n date_time,\n ad_id,\n creative_id,\n zone_id\n )\n VALUES\n (\n '2009-01-09 12:30:00',\n 1,\n 0,\n 1\n )"; $this->oDbh->exec($query); $query = "\n INSERT INTO\n " . $this->oDbh->quoteIdentifier($rawTable, true) . "\n (\n date_time,\n ad_id,\n creative_id,\n zone_id\n )\n VALUES\n (\n '2009-01-09 12:31:00',\n 1,\n 0,\n 1\n )"; $this->oDbh->exec($query); $query = "\n INSERT INTO\n " . $this->oDbh->quoteIdentifier($rawTable, true) . "\n (\n date_time,\n ad_id,\n creative_id,\n zone_id\n )\n VALUES\n (\n '2009-01-09 12:32:00',\n 2,\n 0,\n 3\n )"; $this->oDbh->exec($query); } // Ensure that the old format raw data was inserted correctly foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($rawTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 4); } // Run the migration of raw data DAL code for a given OI $oStart = new Date('2009-01-09 12:00:00'); $oEnd = new Date('2009-01-09 12:59:59'); $this->oDal->migrateRawRequests($oStart, $oEnd); $this->oDal->migrateRawImpressions($oStart, $oEnd); $this->oDal->migrateRawClicks($oStart, $oEnd); // Test that the data was migrated correctly foreach ($aTables as $rawTable => $bucketTable) { $query = "\n SELECT\n COUNT(*) AS count\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['count'], 2); $query = "\n SELECT\n *\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true); $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 2); $query = "\n SELECT\n *\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true) . "\n WHERE\n creative_id = 1"; $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['interval_start'], '2009-01-09 12:00:00'); $this->assertEqual($aRow['creative_id'], 1); $this->assertEqual($aRow['zone_id'], 1); $this->assertEqual($aRow['count'], 2); $query = "\n SELECT\n *\n FROM\n " . $this->oDbh->quoteIdentifier($bucketTable, true) . "\n WHERE\n creative_id = 2"; $rsResult = $this->oDbh->query($query); $this->assertNotA($rsReults, 'PEAR_Error'); $rows = $rsResult->numRows(); $this->assertEqual($rows, 1); $aRow = $rsResult->fetchRow(); $this->assertEqual($aRow['interval_start'], '2009-01-09 12:00:00'); $this->assertEqual($aRow['creative_id'], 2); $this->assertEqual($aRow['zone_id'], 3); $this->assertEqual($aRow['count'], 1); } // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Restore the test environment configuration TestEnv::restoreConfig(); }
/** * A method to test the callStaticMethod() method. */ function testCallStaticMethod() { // Set the error handling class' handleErrors() method as // the error handler for PHP for this test. $oTestErrorHandler = new TestErrorHandler(); PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$oTestErrorHandler, 'handleErrors')); // Test with a bad module/package $return = MAX_Plugin::callStaticMethod('foo', 'bar', null, 'foo'); $this->assertEqual(count($oTestErrorHandler->aErrors), 1); $this->assertEqual($oTestErrorHandler->aErrors[0]->message, 'Unable to include the file ' . MAX_PATH . '/plugins/foo/bar/bar' . MAX_PLUGINS_EXTENSION . '.'); $this->assertFalse($result); $oTestErrorHandler->reset(); // Unset the error handler PEAR::popErrorHandling(); // Set the error handling class' handleErrors() method as // the error handler for PHP for this test. $oTestErrorHandler = new TestErrorHandler(); PEAR::pushErrorHandling(PEAR_ERROR_CALLBACK, array(&$oTestErrorHandler, 'handleErrors')); // Test with a bad method $return = MAX_Plugin::callStaticMethod('reports', 'standard', 'advertisingAnalysisReport', 'foo'); $this->assertEqual(count($oTestErrorHandler->aErrors), 1); $this->assertEqual($oTestErrorHandler->aErrors[0]->message, "Method 'foo()' not defined in class 'Plugins_Reports_Standard_AdvertisingAnalysisReport'."); $this->assertFalse($result); $oTestErrorHandler->reset(); // Unset the error handler PEAR::popErrorHandling(); unset($GLOBALS['_MAX']['CONF']['plugins']['openXTests']); unset($GLOBALS['_MAX']['CONF']['pluginGroupComponents']['Dummy']); TestEnv::installPluginPackage('openXTests'); // Test with a real method, no parameters $return = OX_Component::callStaticMethod('deliveryLimitations', 'Dummy', 'Dummy', 'isAllowed'); $this->assertTrue($return); // Test with a real method, with parameters $return = OX_Component::callStaticMethod('deliveryLimitations', 'Dummy', 'Dummy', 'isAllowed', 'disallow'); $this->assertFalse($return); TestEnv::uninstallPluginPackage('openXTests'); }
function setUp() { // Install the openXDeliveryLog plugin TestEnv::uninstallPluginPackage('openXDeliveryLimitations', false); TestEnv::installPluginPackage('openXDeliveryLimitations', false); }
/** * Tests the _getEarliestLoggedDeliveryData() method. */ function test_getEarliestLoggedDeliveryData() { // Create a reference to the OpenX configuration, and set it to // 15 minutes $aConf =& $GLOBALS['_MAX']['CONF']; $aConf['maintenance']['operationInterval'] = 15; // Prepare the OX_Maintenance_Statistics_Task_SetUpdateRequirements class to test with $oSetUpdateRequirements = new OX_Maintenance_Statistics_Task_SetUpdateRequirements(); // Test 1: There are no deliveryLog group plugins installed, test that null is returned $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertNull($oDate); // Create the "application_variable" table required for installing the plugin $oTables =& OA_DB_Table_Core::singleton(); $oTables->createTable('application_variable'); // Setup the default OpenX delivery logging plugin for the test TestEnv::installPluginPackage('openXDeliveryLog', false); // Test 2: There is no delivery data logged, test that null is returned $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertNull($oDate); // Ask the appropriate default OpenX delivery logging plugin component // to log a click require_once MAX_PATH . $aConf['pluginPaths']['plugins'] . '/deliveryLog/oxLogClick/logClick.delivery.php'; $GLOBALS['_MAX']['deliveryData'] = array('interval_start' => '2008-08-12 14:15:00', 'creative_id' => 1, 'zone_id' => 1); Plugin_deliveryLog_oxLogClick_logClick_Delivery_logClick(); // Test 3: Test with just the one click logged, and ensure that the correct // date/time is returned $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertEqual($oDate, new Date('2008-08-12 14:14:59')); // Ask the appropriate default OpenX delivery logging plugin component // to log a later click $GLOBALS['_MAX']['deliveryData'] = array('interval_start' => '2008-08-12 14:30:00', 'creative_id' => 1, 'zone_id' => 1); Plugin_deliveryLog_oxLogClick_logClick_Delivery_logClick(); // Test 4: Test with just the two clicks logged, and ensure that the correct // date/time is returned (i.e. unchanged from the last test) $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertEqual($oDate, new Date('2008-08-12 14:14:59')); // Ask the appropriate default OpenX delivery logging plugin component // to log an earlier click $GLOBALS['_MAX']['deliveryData'] = array('interval_start' => '2008-08-12 14:00:00', 'creative_id' => 1, 'zone_id' => 1); Plugin_deliveryLog_oxLogClick_logClick_Delivery_logClick(); // Test 5: Test with just the three clicks logged, and ensure that the correct // date/time is returned (i.e. earlier than the last tests) $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertEqual($oDate, new Date('2008-08-12 13:59:59')); // Ask the appropriate default OpenX delivery logging plugin component // to log an earlier impression require_once MAX_PATH . $aConf['pluginPaths']['plugins'] . '/deliveryLog/oxLogImpression/logImpression.delivery.php'; $GLOBALS['_MAX']['deliveryData'] = array('interval_start' => '2008-08-12 13:45:00', 'creative_id' => 1, 'zone_id' => 1); Plugin_deliveryLog_oxLogImpression_logImpression_Delivery_logImpression(); // Test 6: Test with just the three clicks and one impression logged, and // ensure that the correct date/time is returned (i.e. based on // the earliest data, which is the impression). $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_OI); $this->assertEqual($oDate, new Date('2008-08-12 13:44:59')); // Test 7: Re-test, but calling for the date/time returned to be based // on the hour boundary, not the operation interval boundary $oDate = $oSetUpdateRequirements->_getEarliestLoggedDeliveryData(OX_DAL_MAINTENANCE_STATISTICS_UPDATE_HOUR); $this->assertEqual($oDate, new Date('2008-08-12 12:59:59')); // Uninstall the installed plugin TestEnv::uninstallPluginPackage('openXDeliveryLog', false); // Reset the testing environment TestEnv::restoreEnv(); }
function setUp() { TestEnv::uninstallPluginPackage('openXBannerTypes'); TestEnv::installPluginPackage('openXBannerTypes'); }
function setUp() { $oPkgMgr = new OX_PluginManager(); TestEnv::uninstallPluginPackage('demoExtension', false); TestEnv::installPluginPackage('demoExtension', false); }