[asterisk-commits] jrose: testsuite/asterisk/trunk r4338 - in /asterisk/trunk/tests/apps/confbri...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Nov 11 14:30:29 CST 2013
Author: jrose
Date: Mon Nov 11 14:30:26 2013
New Revision: 4338
URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=4338
Log:
confbridge: Test dynamic menus
(issue ASTERISK-22760)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3000/
Added:
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf (with props)
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf (with props)
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf (with props)
asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml (with props)
Modified:
asterisk/trunk/tests/apps/confbridge/tests.yaml
Added: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf?view=auto&rev=4338
==============================================================================
--- asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf (added)
+++ asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf Mon Nov 11 14:30:26 2013
@@ -1,0 +1,12 @@
+[general]
+
+[test_menu]
+type = menu
+0 = playback(hello-world)
+1 = leave_conference
+
+[default_bridge]
+type = bridge
+
+[default_user]
+type = user
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/confbridge.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf?view=auto&rev=4338
==============================================================================
--- asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf Mon Nov 11 14:30:26 2013
@@ -1,0 +1,66 @@
+; Confbridge contexts and extensions
+
+[confbridge]
+; Phase 0
+; 0 should perform conference exit
+exten => single_option, 1, NoOp()
+ same => n,Set(CONFBRIDGE(menu,0)=leave_conference)
+ same => n,ConfBridge(1)
+ same => n,UserEvent(TestStatus, status: ConfBridge exit)
+ same => n,Hangup()
+
+; Phase 1
+; 0 should perform playback while 1 performs conference exit
+exten => multiple_options, 1, NoOp()
+ same => n,Set(CONFBRIDGE(menu,0)=playback(tt-weasels))
+ same => n,Set(CONFBRIDGE(menu,1)=leave_conference)
+ same => n,ConfBridge(1)
+ same => n,UserEvent(TestStatus, status: ConfBridge exit)
+ same => n,Hangup()
+
+; Phase 2
+; 0 should be in tact from test_menu, 1 should have the test_menu option replaced with the dynamic menu option, 2 should be all new from the dynamic menu option.
+exten => template_override, 1, NoOp()
+ same => n,Set(CONFBRIDGE(menu,template)=test_menu)
+ same => n,Set(CONFBRIDGE(menu,1)=playback(tt-weasels))
+ same => n,Set(CONFBRIDGE(menu,2)=leave_conference)
+ same => n,ConfBridge(1)
+ same => n,UserEvent(TestStatus, status: ConfBridge exit)
+ same => n,Hangup()
+
+; Phase 3
+; None of the dynamic menu options should be used and everything from the test_menu profile should be in tact.
+exten => profile_argument, 1, NoOp()
+ same => n,Set(CONFBRIDGE(menu,1)=playback(tt-somethingwrong))
+ same => n,Set(CONFBRIDGE(menu,2)=playback(tt-somethingwrong))
+ same => n,ConfBridge(1,,,test_menu)
+ same => n,UserEvent(TestSTatus, status: ConfBridge exit)
+
+exten => h,1,NoOp()
+ same => n,UserEvent(TestStatus, status: Hangup exit)
+
+[default]
+
+exten => sendDTMF,1,NoOp()
+ same => n,Verbose(1, Sending DTMF Signal ${DTMF_TO_SEND})
+ same => n,SendDTMF(${DTMF_TO_SEND})
+ same => n,Goto(wait,1)
+
+exten => sendAudio,1,NoOp()
+ same => n,Verbose(1, Sending audio file ${TALK_AUDIO})
+ same => n,Playback(${TALK_AUDIO})
+ same => n,Goto(wait,1)
+
+exten => sendAudioWithDTMF,1,NoOp()
+ same => n,Verbose(1, Sending audio file ${TALK_AUDIO})
+ same => n,Playback(${TALK_AUDIO})
+ same => n,Verbose(1, Sending DTMF Signal ${DTMF_TO_SEND})
+ same => n,SendDTMF(${DTMF_TO_SEND})
+ same => n,Goto(wait,1)
+
+exten => hangup,1,NoOp()
+ same => n,Verbose(1, Hanging up)
+ same => n,Hangup()
+
+exten => wait,1,NoOp()
+ same => n,Wait(10000)
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf?view=auto&rev=4338
==============================================================================
--- asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf (added)
+++ asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf Mon Nov 11 14:30:26 2013
@@ -1,0 +1,12 @@
+[general]
+bindaddr = 127.0.0.1
+
+[ast2_g722]
+type = friend
+context = confbridge
+fromuser = ast2_g722
+host = 127.0.0.2
+disallow = all
+allow = g722
+qualify = no
+insecure = invite
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/configs/ast1/sip.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml?view=auto&rev=4338
==============================================================================
--- asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml (added)
+++ asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml Mon Nov 11 14:30:26 2013
@@ -1,0 +1,391 @@
+testinfo:
+ summary: 'Basic functionality test for CONFBRIDGE dynamic menus.'
+ description: |
+ Uses the CONFBRIDGE dialplan function to test dynamic menu creation for
+ the following:
+ * That when a single option is applied, it gets applied and can be used
+ * That when multiple options are applied, each option gets applied and
+ can be used
+ * That when a template option is used it inherits options from the
+ template and replaces options from the template that were specified
+ * That when the application argument for using a menu profile is used,
+ the dynamic menu options are ignored
+ For each test, all of the expected menu actions are attempted and failure to hit
+ any of them will result in failure of the test.
+
+test-modules:
+ test-object:
+ config-section: test-object-config
+ typename: 'apptest.AppTest'
+
+test-object-config:
+ app: 'ConfBridge'
+ scenarios:
+ -
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeStart'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 0: Conference Started'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeEnd'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 0: Conference Ended'
+ -
+ action-type: 'end-scenario'
+ channels:
+ -
+ channel-id: 'SingleOption'
+ channel-name: 'LOCAL/single_option at confbridge'
+ context: 'default'
+ exten: 'wait'
+ start-on-create: True
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeJoin'
+ Conference: '1'
+ Channel: 'Local/single_option at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 0: Single Option Join Event received'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '0'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_LEAVE'
+ Channel: 'Local/single_option at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 0: Single Option Caller invoked menu action to leave conference.'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeLeave'
+ Conference: '1'
+ Channel: 'Local/single_option at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 0: Single Option Leave Event received'
+
+ -
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeStart'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Conference Started'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeEnd'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Conference Ended'
+ -
+ action-type: 'end-scenario'
+ channels:
+ -
+ channel-id: 'MultipleOptions'
+ channel-name: 'LOCAL/multiple_options at confbridge'
+ context: 'default'
+ exten: 'wait'
+ start-on-create: True
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeJoin'
+ Conference: '1'
+ Channel: 'Local/multiple_options at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Multiple Options Join Event received'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '0'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_PLAYBACK'
+ Channel: 'Local/multiple_options at confbridge-.*'
+ Message: 'tt-weasels'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Multiple Options DTMF option for "0" successfully executed playback of tt-weasels'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '1'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_LEAVE'
+ Channel: 'Local/multiple_options at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Multiple Options Caller invoked menu action to leave conference.'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeLeave'
+ Conference: '1'
+ Channel: 'Local/multiple_options at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 1: Multiple Options Leave Event received'
+
+ -
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeStart'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Conference Started'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeEnd'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Conference Ended'
+ -
+ action-type: 'end-scenario'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'CONF_MENU_PLAYBACK'
+ Message: 'tt-somethingwrong'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'fail-test'
+ message: 'Phase 2: Any test that plays tt-somethingwrong has failed us!'
+ channels:
+ -
+ channel-id: 'MultipleOptions'
+ channel-name: 'LOCAL/template_override at confbridge'
+ context: 'default'
+ exten: 'wait'
+ start-on-create: True
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeJoin'
+ Conference: '1'
+ Channel: 'Local/template_override at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Multiple Options Join Event received'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '0'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_PLAYBACK'
+ Channel: 'Local/template_override at confbridge-.*'
+ Message: 'hello-world'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Multiple Options DTMF option for "0" successfully executed playback of hello-world'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '1'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_PLAYBACK'
+ Channel: 'Local/template_override at confbridge-.*'
+ Message: 'tt-weasels'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Multiple Options DTMF option for "0" successfully executed playback of tt-weasels'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '2'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_LEAVE'
+ Channel: 'Local/template_override at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Multiple Options Caller invoked menu action to leave conference.'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeLeave'
+ Conference: '1'
+ Channel: 'Local/template_override at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 2: Multiple Options Leave Event received'
+
+ -
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeStart'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Conference Started'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeEnd'
+ Conference: '1'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Conference Ended'
+ -
+ action-type: 'end-scenario'
+ channels:
+ -
+ channel-id: 'MultipleOptions'
+ channel-name: 'LOCAL/profile_argument at confbridge'
+ context: 'default'
+ exten: 'wait'
+ start-on-create: True
+ events:
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeJoin'
+ Conference: '1'
+ Channel: 'Local/profile_argument at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Profile Specified Join Event received'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '0'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_PLAYBACK'
+ Channel: 'Local/profile_argument at confbridge-.*'
+ Message: 'hello-world'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Profile Specified DTMF option for "0" successfully executed playback of tt-weasels'
+ -
+ action-type: 'send-dtmf'
+ delay: '1'
+ dtmf: '1'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'TestEvent'
+ State: 'CONF_MENU_LEAVE'
+ Channel: 'Local/profile_argument at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Profile Specified Caller invoked menu action to leave conference.'
+ -
+ type: 'headermatch'
+ conditions:
+ match:
+ Event: 'ConfbridgeLeave'
+ Conference: '1'
+ Channel: 'Local/profile_argument at confbridge-.*'
+ actions:
+ -
+ action-type: 'set-expected-result'
+ expected-result: 'Phase 3: Profile Specified Leave Event received'
+
+properties:
+ minversion: '13.0.0'
+ tags:
+ - confbridge
+ - apps
+ dependencies:
+ - buildoption: 'TEST_FRAMEWORK'
+ - python : 'twisted'
+ - python : 'starpy'
+ - asterisk : 'app_confbridge'
+ - asterisk : 'app_senddtmf'
+ - asterisk : 'app_playback'
+
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/apps/confbridge/confbridge_dynamic_menus/test-config.yaml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: asterisk/trunk/tests/apps/confbridge/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/apps/confbridge/tests.yaml?view=diff&rev=4338&r1=4337&r2=4338
==============================================================================
--- asterisk/trunk/tests/apps/confbridge/tests.yaml (original)
+++ asterisk/trunk/tests/apps/confbridge/tests.yaml Mon Nov 11 14:30:26 2013
@@ -3,3 +3,4 @@
- test: 'confbridge_marked'
- test: 'confbridge_nominal'
- test: 'confbridge_recording'
+ - test: 'confbridge_dynamic_menus'
More information about the asterisk-commits
mailing list