[Asterisk-code-review] ConfBridge: Add user timeout test. (testsuite[master])
Anonymous Coward
asteriskteam at digium.com
Thu Nov 19 10:14:28 CST 2015
Anonymous Coward #1000019 has submitted this change and it was merged.
Change subject: ConfBridge: Add user timeout test.
......................................................................
ConfBridge: Add user timeout test.
This adds a test that ensures that the user timeout options for
ConfBridge work as expected. It tests both the configured value in
confbridge.conf as well as the CONFBRIDGE dialplan function.
Change-Id: Ib4d32da391cc9f3a2e85929530b908fa95258238
---
A tests/apps/confbridge/confbridge_timeout/configs/ast1/confbridge.conf
A tests/apps/confbridge/confbridge_timeout/configs/ast1/extensions.conf
A tests/apps/confbridge/confbridge_timeout/test-config.yaml
M tests/apps/confbridge/tests.yaml
4 files changed, 110 insertions(+), 1 deletion(-)
Approvals:
Anonymous Coward #1000019: Verified
Matt Jordan: Looks good to me, approved
Joshua Colp: Looks good to me, but someone else must approve
diff --git a/tests/apps/confbridge/confbridge_timeout/configs/ast1/confbridge.conf b/tests/apps/confbridge/confbridge_timeout/configs/ast1/confbridge.conf
new file mode 100644
index 0000000..e0b2566
--- /dev/null
+++ b/tests/apps/confbridge/confbridge_timeout/configs/ast1/confbridge.conf
@@ -0,0 +1,12 @@
+[default_user]
+type=user
+timeout=10
+;The timeout does not start counting until the participant joins the underlying
+;bridge in the ConfBridge application. This happens after announcing that the
+;participant is the only person in the conference. So that our timing can be
+;more accurate, we turn off announce_only_user so that our attempt to time the
+;user's stay in the ConfBridge is not skewed.
+announce_only_user=no
+
+[default_bridge]
+type=bridge
diff --git a/tests/apps/confbridge/confbridge_timeout/configs/ast1/extensions.conf b/tests/apps/confbridge/confbridge_timeout/configs/ast1/extensions.conf
new file mode 100644
index 0000000..ce2c516
--- /dev/null
+++ b/tests/apps/confbridge/confbridge_timeout/configs/ast1/extensions.conf
@@ -0,0 +1,29 @@
+[default]
+exten => alice,1,NoOp()
+same => n,Goto(default,common,1)
+
+exten => bob,1,NoOp()
+same => n,Set(CONFBRIDGE(user,timeout)=5)
+same => n,Goto(default,common,1)
+
+exten => common,1,NoOp()
+same => n,Answer()
+same => n,Set(BEFORE=${EPOCH})
+same => n,ConfBridge(foo)
+same => n,Set(AFTER=${EPOCH})
+same => n,Set(INTERVAL=$[${AFTER} - ${BEFORE}])
+same => n,GotoIf($[${CONFBRIDGE_RESULT} != TIMEOUT]?Fail1)
+same => n,Set(TOLERANCE=$[${CONFBRIDGE(user,timeout)} + 2])
+same => n,GotoIf($[${INTERVAL} > ${TOLERANCE}]?Fail2)
+same => n,UserEvent(ConfBridgeTimeout,Result: Pass)
+same => n,Goto(hangup)
+
+; CONFBRIDGE_RESULT set to something other than TIMEOUT
+same => n(Fail1),UserEvent(ConfBridgeTimeout,Result: Fail,Reason: ${CONFBRIDGE_RESULT})
+same => n,Goto(hangup)
+
+; ConfBridge timed out at unexpected time
+same => n(Fail2),UserEvent(ConfBridgeTimeout,Result: Fail,Reason: ${INTERVAL})
+same => n,Goto(hangup)
+
+same => n(hangup),Hangup()
diff --git a/tests/apps/confbridge/confbridge_timeout/test-config.yaml b/tests/apps/confbridge/confbridge_timeout/test-config.yaml
new file mode 100644
index 0000000..08010be
--- /dev/null
+++ b/tests/apps/confbridge/confbridge_timeout/test-config.yaml
@@ -0,0 +1,68 @@
+testinfo:
+ summary: 'Ensure that Confbridge user timeouts work as expected'
+ description: |
+ 'This test configures a ConfBridge user profile that has a timeout of 10 seconds.
+ Alice calls into the ConfBridge. We expect that she will be removed from the
+ ConfBridge after 10 seconds.
+ Bob first calls into the CONFBRIDGE dialplan function to set his timeout to 5 seconds.
+ We expect that he will be removed from the ConfBridge after 5 seconds.
+ We ensure that both Bob and Alice have their CONFBRIDGE_RESULT channel variable set
+ to "TIMEOUT" when they are removed from the ConfBridge.'
+
+test-modules:
+ test-object:
+ config-section: test-object-config
+ typename: 'test_case.TestCaseModule'
+ modules:
+ -
+ config-section: alice-originator
+ typename: 'pluggable_modules.Originator'
+ -
+ config-section: bob-originator
+ typename: 'pluggable_modules.Originator'
+ -
+ config-section: hangup-monitor
+ typename: 'pluggable_modules.HangupMonitor'
+ -
+ config-section: ami-config
+ typename: 'ami.AMIEventModule'
+
+test-object-config:
+ connect-ami: True
+
+alice-originator:
+ channel: 'Local/alice at default'
+ application: 'Echo'
+ trigger: 'ami_connect'
+
+bob-originator:
+ channel: 'Local/bob at default'
+ application: 'Echo'
+ trigger: 'ami_connect'
+
+hangup-monitor:
+ ids: '0'
+
+ami-config:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'UserEvent'
+ UserEvent: 'ConfBridgeTimeout'
+ requirements:
+ match:
+ Result: 'Pass'
+ count: 2
+
+
+properties:
+ minversion: '13.7.0'
+ tags:
+ - confbridge
+ - apps
+ dependencies:
+ - python: 'twisted'
+ - python: 'starpy'
+ - asterisk: 'app_confbridge'
+ - asterisk: 'app_userevent'
diff --git a/tests/apps/confbridge/tests.yaml b/tests/apps/confbridge/tests.yaml
index dd91008..aebe64c 100644
--- a/tests/apps/confbridge/tests.yaml
+++ b/tests/apps/confbridge/tests.yaml
@@ -13,4 +13,4 @@
- test: 'confbridge_result'
- test: 'confbridge_triple_lindy'
- test: 'confbridge_end_marked'
-
+ - test: 'confbridge_timeout'
--
To view, visit https://gerrit.asterisk.org/1628
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib4d32da391cc9f3a2e85929530b908fa95258238
Gerrit-PatchSet: 1
Gerrit-Project: testsuite
Gerrit-Branch: master
Gerrit-Owner: Mark Michelson <mmichelson at digium.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Matt Jordan <mjordan at digium.com>
Gerrit-Reviewer: Richard Mudgett <rmudgett at digium.com>
More information about the asterisk-code-review
mailing list