Skip to content

Commit

Permalink
app_confbridge: Test for ConfKick application
Browse files Browse the repository at this point in the history
This tests the new ConfKick application to
ensure that it correctly manipulates
the bridge with different parameters.

ASTERISK-29446

Change-Id: Ia85d6190ab3cf88a7cc4b3071a38dee191bc8898
  • Loading branch information
InterLinked1 authored and Friendly Automation committed Jun 8, 2021
1 parent 7cf20a2 commit 6009a93
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 0 deletions.
@@ -0,0 +1,6 @@
[default_user]
type=user
quiet=yes

[default_bridge]
type=bridge
@@ -0,0 +1,31 @@
[default]
exten => user1,1,Answer()
same => n,ConfBridge(test123)
same => n,GotoIf($["${CONFBRIDGE_RESULT}"="KICKED"]?pass,1:fail,1)
exten => user2,1,Answer()
same => n,Set(GLOBAL(test123user)=${CHANNEL})
same => n,ConfBridge(test123)
same => n,GotoIf($["${CONFBRIDGE_RESULT}"="KICKED"]?pass,1:fail,1)
exten => user3,1,Answer()
same => n,ConfBridge(test123)
same => n,GotoIf($["${CONFBRIDGE_RESULT}"="KICKED"]?pass,1:fail,1)
exten => admin,1,Answer()
same => n,Set(CONFBRIDGE(user,admin)=yes)
same => n,ConfBridge(test123)
same => n,GotoIf($["${CONFBRIDGE_RESULT}"="KICKED"]?pass,1:fail,1)
exten => kicker,1,Answer(1)
same => n,ExecIf($[${CONFBRIDGE_INFO(parties,test123)}=4]?UserEvent(ConfKickSuccess,Result: Pass):UserEvent(ConfKickSuccess,Result: Fail,Reason: ${CONFBRIDGE_INFO(parties,test123)}))
same => n,ConfKick(test123,${test123user})
same => n,Wait(0.1)
same => n,ExecIf($[${CONFBRIDGE_INFO(parties,test123)}=3]?UserEvent(ConfKickSuccess,Result: Pass):UserEvent(ConfKickSuccess,Result: Fail,Reason: ${CONFBRIDGE_INFO(parties,test123)}))
same => n,ConfKick(test123,participants)
same => n,Wait(0.1)
same => n,ExecIf($[${CONFBRIDGE_INFO(parties,test123)}=1]?UserEvent(ConfKickSuccess,Result: Pass):UserEvent(ConfKickSuccess,Result: Fail,Reason: ${CONFBRIDGE_INFO(parties,test123)}))
same => n,ConfKick(test123,all)
same => n,Wait(0.1)
same => n,ExecIf($[${CONFBRIDGE_INFO(parties,test123)}=0]?UserEvent(ConfKickSuccess,Result: Pass):UserEvent(ConfKickSuccess,Result: Fail,Reason: ${CONFBRIDGE_INFO(parties,test123)}))
same => n,Hangup()
exten => fail,1,UserEvent(ConfBridgeKick,Result: Fail,Reason: ${CONFBRIDGE_RESULT})
same => n,Hangup()
exten => pass,1,UserEvent(ConfBridgeKick,Result: Pass)
same => n,Hangup()
96 changes: 96 additions & 0 deletions tests/apps/confbridge/confbridge_confkick/test-config.yaml
@@ -0,0 +1,96 @@
testinfo:
summary: 'Ensure that ConfKick application works as expected'
description: |
'This test ensures that ConfKick functions as expected by
testing that specific, non-admin, and all participants can
be successfully kicked from the bridge.'
test-modules:
test-object:
config-section: test-object-config
typename: 'test_case.TestCaseModule'
modules:
-
config-section: user1-originator
typename: 'pluggable_modules.Originator'
-
config-section: user2-originator
typename: 'pluggable_modules.Originator'
-
config-section: user3-originator
typename: 'pluggable_modules.Originator'
-
config-section: admin-originator
typename: 'pluggable_modules.Originator'
-
config-section: kicker-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

user1-originator:
channel: 'Local/user1@default'
application: 'Echo'
trigger: 'ami_connect'

user2-originator:
channel: 'Local/user2@default'
application: 'Echo'
trigger: 'ami_connect'

user3-originator:
channel: 'Local/user3@default'
application: 'Echo'
trigger: 'ami_connect'

admin-originator:
channel: 'Local/admin@default'
application: 'Echo'
trigger: 'ami_connect'

kicker-originator:
channel: 'Local/kicker@default'
application: 'Echo'
trigger: 'ami_connect'

hangup-monitor:
ids: '0'

ami-config:
-
type: 'headermatch'
conditions:
match:
Event: 'UserEvent'
UserEvent: 'ConfBridgeKick'
requirements:
match:
Result: 'Pass'
count: 4
-
type: 'headermatch'
conditions:
match:
Event: 'UserEvent'
UserEvent: 'ConfKickSuccess'
requirements:
match:
Result: 'Pass'
count: 4

properties:
tags:
- confbridge
- apps
dependencies:
- python: 'twisted'
- python: 'starpy'
- asterisk: 'app_confbridge'
- asterisk: 'app_userevent'
1 change: 1 addition & 0 deletions tests/apps/confbridge/tests.yaml
@@ -1,5 +1,6 @@
# Enter tests here in the order they should be considered for execution:
tests:
- test: 'confbridge_confkick'
- test: 'confbridge_dynamic_menus'
- test: 'confbridge_end_marked'
- test: 'confbridge_marked'
Expand Down

0 comments on commit 6009a93

Please sign in to comment.