/** * test a whole call cycle - start, connect, disconnect * */ public function testWholeCall() { // start call $call = $this->_backend->callStarted($this->_objects['call']); $this->assertEquals($this->_objects['call']->destination, $call->destination); $this->assertTrue(Tinebase_DateTime::now()->sub($call->start)->getTimestamp() >= 0); // sleep for 2 secs (ringing...) sleep(2); // connect call $call = $this->_backend->getCall($this->_objects['call']->getId()); $ringing = $call->ringing; $connectedCall = $this->_backend->callConnected($call); $this->assertEquals($this->_objects['call']->destination, $connectedCall->destination); $this->assertEquals(-1, $call->start->compare($call->connected)); // sleep for 5 secs (talking...) sleep(5); // disconnect call $call = $this->_backend->getCall($this->_objects['call']->getId()); $duration = $call->duration; $disconnectedCall = $this->_backend->callDisconnected($call); $this->assertGreaterThan($duration, $disconnectedCall->duration); $this->assertLessThan(10, $disconnectedCall->ringing, 'wrong ringing duration'); $this->assertLessThan(15, $disconnectedCall->duration, 'wrong duration'); $this->assertEquals(-1, $disconnectedCall->connected->compare($disconnectedCall->disconnected)); }
/** * test start * */ public function testStartCall() { // remove old call try { $call = $this->_backend->getCall($this->_objects['call']->getId()); $backend = Phone_Backend_Factory::factory(Phone_Backend_Factory::CALLHISTORY); $backend->delete($this->_objects['call']->getId()); } catch (Exception $e) { // do nothing } $call = $this->_backend->callStarted($this->_objects['call']); $this->assertEquals($this->_objects['call']->destination, $call->destination); $this->assertTrue(Tinebase_DateTime::now()->sub($call->start)->getTimestamp() >= 0); // sleep for 2 secs (ringing...) sleep(2); }