summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2012-03-01 20:15:10 -0500
committerOlivier CrĂȘte <olivier.crete@collabora.com>2012-03-01 20:15:37 -0500
commit06c35847ab427319ed9668faf55ea1926bbd2d91 (patch)
tree0f971ef6b6447fdd3e8d1249d453438d2cf9da8e
parent08dbfffc687d827316c00ef370b4d7c205dad79e (diff)
Add test for sending failure
-rw-r--r--tests/twisted/voip/direction-change.py35
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/twisted/voip/direction-change.py b/tests/twisted/voip/direction-change.py
index 669f9eb..c07d1c2 100644
--- a/tests/twisted/voip/direction-change.py
+++ b/tests/twisted/voip/direction-change.py
@@ -61,6 +61,7 @@ class DirectionChange(calltest.CallTest):
assertEquals(self.self_handle, lss.args[1][0])
assertDoesNotContain('a=sendonly', reinvite_event.sip_message.body)
+
if self.receiving:
assertDoesNotContain('a=inactive',
reinvite_event.sip_message.body)
@@ -367,6 +368,7 @@ class DirectionChange(calltest.CallTest):
EventPattern('sip-ack', cseq=ack_cseq))
# Now let's restart receiving for real
+ self.receiving = True
self.context.reinvite()
acc , rmb = self.q.expect_many(
@@ -497,6 +499,37 @@ class DirectionChange(calltest.CallTest):
ack_cseq = "%s ACK" % reinvite_event.cseq.split()[0]
self.q.expect('sip-ack', cseq=ack_cseq)
+ def sending_failed(self, content):
+
+ self.sending = False
+
+ content.stream.Media.ReportSendingFailure(
+ cs.CALL_SCR_MEDIA_ERROR, "", "sending error")
+
+ o = self.q.expect_many(
+ EventPattern('dbus-signal', signal='SendingStateChanged',
+ args=[cs.CALL_STREAM_FLOW_STATE_STOPPED],
+ path=content.stream.__dbus_object_path__),
+ EventPattern('dbus-signal', signal='LocalSendingStateChanged',
+ path=content.stream.__dbus_object_path__),
+ EventPattern('sip-invite'))
+
+ assertEquals(cs.CALL_SENDING_STATE_NONE, o[1].args[0])
+ assertEquals(self.self_handle, o[1].args[1][0])
+ reinvite_event = o[2]
+
+ assertContains('a=recvonly', reinvite_event.sip_message.body)
+ self.context.check_call_sdp(reinvite_event.sip_message.body)
+ body = reinvite_event.sip_message.body.replace(
+ 'recvonly', self.receiving and 'sendonly' or 'inactive')
+
+ self.context.accept(reinvite_event.sip_message, body)
+
+ ack_cseq = "%s ACK" % reinvite_event.cseq.split()[0]
+ self.q.expect('sip-ack', cseq=ack_cseq)
+
+ self.start_sending(content)
+
def during_call(self):
content = self.contents[0]
@@ -514,6 +547,7 @@ class DirectionChange(calltest.CallTest):
self.stop_start_receiving_user_requested(content)
self.reject_start_receiving(content)
+ self.sending_failed(content)
direction_change_event = [
EventPattern('dbus-signal', signal='LocalSendingStateChanged'),
@@ -526,7 +560,6 @@ class DirectionChange(calltest.CallTest):
self.unhold_succeed()
self.q.unforbid_events(direction_change_event)
-
self.q.unforbid_events(remote_hold_event)
return calltest.CallTest.during_call(self)