/** * Sets up the fixture. * * This method is called before a test is executed. */ protected function setUp() { Tinebase_TransactionManager::getInstance()->startTransaction(Tinebase_Core::getDb()); // we need that because the voip db tables can have a different prefix Tinebase_Core::set('voipdbTablePrefix', SQL_TABLE_PREFIX); $phoneId = Tinebase_Record_Abstract::generateUID(); $this->_objects['location'] = new Voipmanager_Model_Snom_Location(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'registrar' => 'registrar')); $this->_objects['software'] = new Voipmanager_Model_Snom_Software(array('id' => Tinebase_Record_Abstract::generateUID())); $this->_objects['setting'] = new Voipmanager_Model_Snom_Setting(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => Tinebase_Record_Abstract::generateUID(), 'description' => Tinebase_Record_Abstract::generateUID(), 'language_w' => true)); $this->_objects['phonesettings'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $phoneId, 'language' => 'Deutsch')); $this->_objects['template'] = new Voipmanager_Model_Snom_Template(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'software_id' => $this->_objects['software']->getId(), 'setting_id' => $this->_objects['setting']->getId())); $this->_objects['phone'] = new Voipmanager_Model_Snom_Phone(array('id' => $phoneId, 'macaddress' => "1234567890cd", 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phoneOwner'] = array('account_id' => Zend_Registry::get('currentAccount')->getId(), 'account_type' => 'user'); $rights = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner'])); $this->_objects['phone']->rights = $rights; // create phone, location, template $snomLocationBackend = new Voipmanager_Backend_Snom_Location(); $snomTemplateBackend = new Voipmanager_Backend_Snom_Template(); $snomSoftwareBackend = new Voipmanager_Backend_Snom_Software(); $snomPhoneBackend = new Voipmanager_Backend_Snom_Phone(); $snomSettingBackend = new Voipmanager_Backend_Snom_Setting(); $snomPhoneSettingsBackend = new Voipmanager_Backend_Snom_PhoneSettings(); $snomSoftwareBackend->create($this->_objects['software']); $snomLocationBackend->create($this->_objects['location']); $snomTemplateBackend->create($this->_objects['template']); $snomSettingBackend->create($this->_objects['setting']); $snomPhoneBackend->create($this->_objects['phone']); $snomPhoneSettingsBackend->create($this->_objects['phonesettings']); }
/** * Sets up the fixture. * This method is called before a test is executed. * * @access protected */ protected function setUp() { parent::setUp(); $this->_json = new Phone_Frontend_Json(); $this->_adminUser = Tinebase_Core::getUser(); $this->_objects['location'] = new Voipmanager_Model_Snom_Location(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'registrar' => 'registrar')); $this->_objects['software'] = new Voipmanager_Model_Snom_Software(array('id' => Tinebase_Record_Abstract::generateUID())); $this->_objects['setting'] = new Voipmanager_Model_Snom_Setting(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'test setting', 'description' => 'test setting')); $this->_objects['template'] = new Voipmanager_Model_Snom_Template(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'model' => 'snom320', 'software_id' => $this->_objects['software']->getId(), 'setting_id' => $this->_objects['setting']->getId())); $this->_objects['phone'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "1234567890cd", 'description' => 'user phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phone1'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "a234567890cd", 'description' => 'second user phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phone2'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "1a34567890cd", 'description' => 'jsmith phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phonesetting'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone']->getId(), 'web_language' => 'English')); $this->_objects['phonesetting1'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone1']->getId(), 'web_language' => 'English')); $this->_objects['phonesetting2'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone2']->getId(), 'web_language' => 'English')); $this->_objects['phoneOwner'] = array('account_id' => $this->_adminUser->getId(), 'account_type' => 'user'); $this->_objects['phoneOwner2'] = array('account_id' => $this->_personas['jsmith']->getId(), 'account_type' => 'user'); $rights = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner'])); $rights1 = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner'])); $rights2 = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner2'])); $this->_objects['phone']->rights = $rights; $this->_objects['phone1']->rights = $rights1; $this->_objects['phone2']->rights = $rights2; $this->_objects['context'] = new Voipmanager_Model_Asterisk_Context(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'test context', 'description' => 'test context')); $this->_objects['sippeer'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['sippeer1'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['sippeer2'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['line'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone']->getId(), 'asteriskline_id' => $this->_objects['sippeer']->getId(), 'linenumber' => 1, 'lineactive' => 1)); $this->_objects['line1'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone1']->getId(), 'asteriskline_id' => $this->_objects['sippeer1']->getId(), 'linenumber' => 1, 'lineactive' => 1)); $this->_objects['line2'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone2']->getId(), 'asteriskline_id' => $this->_objects['sippeer2']->getId(), 'linenumber' => 1, 'lineactive' => 1)); // create phone, location, template, rights $phoneBackend = new Voipmanager_Backend_Snom_Phone(array('modelName' => 'Phone_Model_MyPhone')); $snomLocationBackend = new Voipmanager_Backend_Snom_Location(); $snomSettingBackend = new Voipmanager_Backend_Snom_Setting(); $snomPhoneSettingBackend = new Voipmanager_Backend_Snom_PhoneSettings(); $snomTemplateBackend = new Voipmanager_Backend_Snom_Template(); $snomSoftwareBackend = new Voipmanager_Backend_Snom_Software(); $snomLineBackend = new Voipmanager_Backend_Snom_Line(); $asteriskSipPeerBackend = new Voipmanager_Backend_Asterisk_SipPeer(); $asteriskContextBackend = new Voipmanager_Backend_Asterisk_Context(); $snomSoftwareBackend->create($this->_objects['software']); $snomLocationBackend->create($this->_objects['location']); $snomSettingBackend->create($this->_objects['setting']); $snomTemplateBackend->create($this->_objects['template']); $phoneBackend->create($this->_objects['phone']); $phoneBackend->create($this->_objects['phone1']); $phoneBackend->create($this->_objects['phone2']); $phoneBackend->setPhoneRights($this->_objects['phone']); $phoneBackend->setPhoneRights($this->_objects['phone1']); $phoneBackend->setPhoneRights($this->_objects['phone2']); $asteriskContextBackend->create($this->_objects['context']); $asteriskSipPeerBackend->create($this->_objects['sippeer']); $asteriskSipPeerBackend->create($this->_objects['sippeer1']); $asteriskSipPeerBackend->create($this->_objects['sippeer2']); $snomLineBackend->create($this->_objects['line']); $snomLineBackend->create($this->_objects['line1']); $snomLineBackend->create($this->_objects['line2']); $snomPhoneSettingBackend->create($this->_objects['phonesetting']); $snomPhoneSettingBackend->create($this->_objects['phonesetting1']); $snomPhoneSettingBackend->create($this->_objects['phonesetting2']); /******************** call history *************************/ $phoneController = Phone_Controller::getInstance(); $this->_objects['call1'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid1', 'line_id' => $this->_objects['line']->getId(), 'phone_id' => $this->_objects['phone']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '26', 'destination' => '0406437435')); $this->_objects['call2'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid2', 'line_id' => $this->_objects['line']->getId(), 'phone_id' => $this->_objects['phone']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '26', 'destination' => '050364354')); $this->_objects['call2a'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid2a', 'line_id' => $this->_objects['line1']->getId(), 'phone_id' => $this->_objects['phone1']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '27', 'destination' => '050364354')); $this->_objects['call3'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid3', 'line_id' => $this->_objects['line2']->getId(), 'phone_id' => $this->_objects['phone2']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '78', 'destination' => '050998877')); $this->_objects['call4'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid4', 'line_id' => $this->_objects['line2']->getId(), 'phone_id' => $this->_objects['phone2']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '78', 'destination' => '05036998877')); $this->_objects['paging'] = array('start' => 0, 'limit' => 50, 'sort' => 'start', 'dir' => 'ASC'); $this->_objects['filter1'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '')); $this->_objects['filter2'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '05036'), array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone1']->getId())))); $this->_objects['filter2a'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '05036'), array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone1']->getId())))); $this->_objects['filter2b'] = array(array('field' => 'destination', 'operator' => 'contains', 'value' => '05036')); $this->_objects['filter3'] = array(array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone']->getId())))); $this->_objects['filter4'] = array(array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone2']->getId())))); $this->_objects['filter5'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '998877')); // create calls $phoneController->callStarted($this->_objects['call1']); $phoneController->callStarted($this->_objects['call2']); $phoneController->callStarted($this->_objects['call2a']); $phoneController->callStarted($this->_objects['call3']); $phoneController->callStarted($this->_objects['call4']); }
/** * appends user settings * * @param Voipmanager_Model_Snom_Phone $_phone * @param SimpleXMLElement $_xml */ protected function _appendUserSettings(Voipmanager_Model_Snom_Phone $_phone, SimpleXMLElement $_xml) { $phoneSettinsgBackend = new Voipmanager_Backend_Snom_PhoneSettings($this->_db); $phoneSettings = $phoneSettinsgBackend->get($_phone->getId()); $templateBackend = new Voipmanager_Backend_Snom_Template($this->_db); $template = $templateBackend->get($_phone->template_id); $defaultPhoneSettingsBackend = new Voipmanager_Backend_Snom_Setting($this->_db); $defaultPhoneSettings = $defaultPhoneSettingsBackend->get($template->setting_id); $userSettings = array(); foreach ($phoneSettings as $key => $value) { if ($key == 'phone_id') { continue; } $isWritableProperty = $key . '_w'; if (!$defaultPhoneSettings->has($isWritableProperty)) { continue; } if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) { Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' Writable property: ' . $key); } if ($defaultPhoneSettings->{$isWritableProperty} == true && $value !== NULL) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Setting ' . $key . ' = ' . $value); } $userSettings[$key]['value'] = $value; $userSettings[$key]['perms'] = 'RW'; } else { if ($defaultPhoneSettings->{$key} !== NULL) { $userSettings[$key]['value'] = $defaultPhoneSettings->{$key}; if ($defaultPhoneSettings->{$isWritableProperty} == true) { $userSettings[$key]['perms'] = 'RW'; } else { $userSettings[$key]['perms'] = 'RO'; } } } } foreach ($userSettings as $key => $value) { $child = $_xml->addChild($key, $value['value']); $child->addAttribute('perm', $value['perms']); } }
/** * Tears down the fixture * This method is called after a test is executed. * * @access protected */ protected function tearDown() { // remove phone, location, template $phoneBackend = new Voipmanager_Backend_Snom_Phone(); $snomLocationBackend = new Voipmanager_Backend_Snom_Location(); $snomTemplateBackend = new Voipmanager_Backend_Snom_Template(); $snomSoftwareBackend = new Voipmanager_Backend_Snom_Software(); $snomSettingBackend = new Voipmanager_Backend_Snom_Setting(); $snomLineBackend = new Voipmanager_Backend_Snom_Line(); $asteriskSipPeerBackend = new Voipmanager_Backend_Asterisk_SipPeer(); $callHistoryBackend = Phone_Backend_Factory::factory(Phone_Backend_Factory::CALLHISTORY); $snomPhoneSettingBackend = new Voipmanager_Backend_Snom_PhoneSettings(); $snomPhoneSettingBackend->delete($this->_objects['phone']->getId()); $phoneBackend->delete($this->_objects['phone']->getId()); $snomLocationBackend->delete($this->_objects['location']->getId()); $snomTemplateBackend->delete($this->_objects['template']->getId()); $snomSoftwareBackend->delete($this->_objects['software']->getId()); $snomSettingBackend->delete($this->_objects['setting']->getId()); $snomLineBackend->delete($this->_objects['line']->getId()); $asteriskSipPeerBackend->delete($this->_objects['sippeer']->getId()); $callHistoryBackend->delete($this->_objects['call1']->getId()); $callHistoryBackend->delete($this->_objects['call2']->getId()); }
protected function _appendUserSettings(Voipmanager_Model_Snom_Phone $_phone, SimpleXMLElement $_xml) { $phoneSettinsgBackend = new Voipmanager_Backend_Snom_PhoneSettings($this->_db); $phoneSettings = $phoneSettinsgBackend->get($_phone->getId()); $templateBackend = new Voipmanager_Backend_Snom_Template($this->_db); $template = $templateBackend->get($_phone->template_id); $defaultPhoneSettingsBackend = new Voipmanager_Backend_Snom_Setting($this->_db); $defaultPhoneSettings = $defaultPhoneSettingsBackend->get($template->setting_id); $userSettings = array(); foreach ($phoneSettings as $key => $value) { if ($key == 'phone_id') { continue; } $isWriteAbleProperty = $key . '_writable'; if (!$defaultPhoneSettings->has($isWriteAbleProperty)) { continue; } if ($defaultPhoneSettings->{$isWriteAbleProperty} == true && $value !== NULL) { $userSettings[$key]['value'] = $value; $userSettings[$key]['perms'] = 'RW'; } elseif ($defaultPhoneSettings->{$key} !== NULL) { $userSettings[$key]['value'] = $defaultPhoneSettings->{$key}; if ($defaultPhoneSettings->{$isWriteAbleProperty} == true) { $userSettings[$key]['perms'] = 'RW'; } else { $userSettings[$key]['perms'] = 'RO'; } } } foreach ($userSettings as $key => $value) { $child = $_xml->addChild($key, $value['value']); $child->addAttribute('perm', $value['perms']); } }