function testDuplicateTracker() { TestEnv::startTransaction(); $trackerId = Admin_DA::addTracker(array('trackername' => 'foo', 'description' => 'bar', 'clientid' => 0, 'appendcode' => 'a')); $this->assertTrue(is_int($trackerId)); $this->assertTrue($trackerId > 0); $tracker1 = Admin_DA::getTracker($trackerId); $ret = Admin_DA::duplicateTracker($trackerId); $this->assertTrue(is_int($ret)); $this->assertTrue($ret > 0); $tracker2 = Admin_DA::getTracker($trackerId); $this->assertTrue(is_array($tracker2)); $this->assertTrue(count($ret)); // compare two trackers $this->assertEqual($tracker1, $tracker2); TestEnv::rollbackTransaction(); }
function _duplicateTracker($aTracker, $checkUniqueNames = false) { $trackerId = $aTracker['tracker_id']; unset($aTracker['tracker_id']); if ($checkUniqueNames) { $aTrackers = Admin_DA::getTrackers(array('advertiser_id' => $aTracker['advertiser_id'])); Admin_DA::_getUniqueName($aTracker, $aTrackers, @$GLOBALS['strCopy']); } // Massage to real field names Admin_DA::_switch($aTracker, 'advertiser_id', 'clientid'); Admin_DA::_switch($aTracker, 'name', 'trackername'); $newTrackerId = Admin_DA::addTracker($aTracker); if (PEAR::isError($newTrackerId)) { return PEAR::raiseError('failed to add tracker in ' . __FILE__ . ',' . __LINE__); } $aPlacementTrackers = Admin_DA::getPlacementTrackers(array('tracker_id' => $trackerId)); foreach ($aPlacementTrackers as $aPlacementTracker) { $aPlacementTracker['tracker_id'] = $newTrackerId; Admin_DA::duplicatePlacementTracker($aPlacementTracker); } $aVariables = Admin_DA::getVariables(array('tracker_id' => $trackerId)); foreach ($aVariables as $aVariable) { $aVariable['tracker_id'] = $newTrackerId; Admin_DA::duplicateVariable($aVariable); } return $newTrackerId; }