/**
  * 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']);
     }
 }
示例#4
0
 /**
  * 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());
 }
示例#5
0
 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']);
     }
 }