[asterisk-commits] rmudgett: testsuite/asterisk/trunk r3303 - in /asterisk/trunk/tests: ./ predi...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Jul 9 10:41:04 CDT 2012
Author: rmudgett
Date: Mon Jul 9 10:40:59 2012
New Revision: 3303
URL: http://svnview.digium.com/svn/testsuite?view=rev&rev=3303
Log:
Predial testsuite test.
Exercises the Dial and FollowMe applications predial subroutine handlers.
(closes issue SWP-4204)
Reported by: Matt Jordan
Tested by: rmudgett
Review: https://reviewboard.asterisk.org/r/2006/
Added:
asterisk/trunk/tests/predial/
asterisk/trunk/tests/predial/configs/
asterisk/trunk/tests/predial/configs/ast1/
asterisk/trunk/tests/predial/configs/ast1/extensions.conf (with props)
asterisk/trunk/tests/predial/configs/ast1/followme.conf (with props)
asterisk/trunk/tests/predial/run-test (with props)
asterisk/trunk/tests/predial/test-config.yaml (with props)
Modified:
asterisk/trunk/tests/tests.yaml
Added: asterisk/trunk/tests/predial/configs/ast1/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/predial/configs/ast1/extensions.conf?view=auto&rev=3303
==============================================================================
--- asterisk/trunk/tests/predial/configs/ast1/extensions.conf (added)
+++ asterisk/trunk/tests/predial/configs/ast1/extensions.conf Mon Jul 9 10:40:59 2012
@@ -1,0 +1,165 @@
+[predial]
+exten => xtn,1,UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => xtn,2,Return
+exten => xtn,3,UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => xtn,4,Return
+exten => xtn,n(c1),UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => xtn,n,Return
+exten => xtn,n(c2),UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => xtn,n,Return
+
+
+[caller_context]
+exten => ans,1,Answer()
+exten => ans,n,Wait(120)
+exten => ans,n,Hangup()
+
+
+[called_context]
+exten => busy1,1,Busy()
+
+exten => busy2,1,Busy()
+
+exten => ans,1,Answer()
+exten => ans,n,Wait(1)
+exten => ans,n,UserEvent(U_Connected,test: ${TEST_EXTEN},to: ${EXTEN})
+exten => ans,n,Hangup()
+
+exten => ans_fm,1,Answer()
+; Must wait for the FollowMe menu to complete before choosing to accept the call.
+exten => ans_fm,n,Wait(5)
+exten => ans_fm,n,SendDTMF(1)
+exten => ans_fm,n,Wait(1)
+exten => ans_fm,n,UserEvent(U_Connected,test: ${TEST_EXTEN},to: ${EXTEN})
+exten => ans_fm,n,Hangup()
+
+
+[test_context]
+exten => h,1,UserEvent(U_Hangup,test: ${TEST_EXTEN},channel: ${CHANNEL(name)})
+
+exten => predial,1,UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => predial,2,Return
+exten => predial,3,UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => predial,4,Return
+exten => predial,n(c1),UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => predial,n,Return
+exten => predial,n(c2),UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => predial,n,Return
+
+
+exten => single_test0,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test0,2,Dial(Local/ans at called_context,,B(5(${EXTEN}^CALLER^${EXTEN}))b(7(${EXTEN}^callee^${EXTEN})))
+exten => single_test0,3,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test0,4,Hangup()
+exten => single_test0,5,UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => single_test0,6,Return()
+exten => single_test0,7,UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => single_test0,8,Return()
+
+exten => single_test1,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test1,n,Dial(Local/ans at called_context,,B(c1(${EXTEN}^CALLER^${EXTEN}))b(c2(${EXTEN}^callee^${EXTEN}))))
+exten => single_test1,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test1,n,Hangup()
+exten => single_test1,n(c1),UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => single_test1,n,Return()
+exten => single_test1,n(c2),UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => single_test1,n,Return()
+
+exten => single_test2,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test2,n,Dial(Local/ans at called_context,,B(predial^1(${EXTEN}^CALLER^predial))b(predial^3(${EXTEN}^callee^predial)))
+exten => single_test2,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test2,n,Hangup()
+
+exten => single_test3,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test3,n,Dial(Local/ans at called_context,,B(predial^c1(${EXTEN}^CALLER^predial))b(predial^c2(${EXTEN}^callee^predial)))
+exten => single_test3,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test3,n,Hangup()
+
+exten => single_test4,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test4,n,Dial(Local/ans at called_context,,B(predial^xtn^1(${EXTEN}^CALLER^xtn))b(predial^xtn^3(${EXTEN}^callee^xtn)))
+exten => single_test4,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test4,n,Hangup()
+
+exten => single_test5,1,Set(__TEST_EXTEN=${EXTEN})
+exten => single_test5,n,Dial(Local/ans at called_context,,B(predial^xtn^c1(${EXTEN}^CALLER^xtn))b(predial^xtn^c2(${EXTEN}^callee^xtn)))
+exten => single_test5,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => single_test5,n,Hangup()
+
+
+exten => forked_test0,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test0,2,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(5(${EXTEN}^CALLER^${EXTEN}))b(7(${EXTEN}^callee^${EXTEN})))
+exten => forked_test0,3,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test0,4,Hangup()
+exten => forked_test0,5,UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => forked_test0,6,Return()
+exten => forked_test0,7,UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => forked_test0,8,Return()
+
+exten => forked_test1,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test1,n,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(c1(${EXTEN}^CALLER^${EXTEN}))b(c2(${EXTEN}^callee^${EXTEN}))))
+exten => forked_test1,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test1,n,Hangup()
+exten => forked_test1,n(c1),UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => forked_test1,n,Return()
+exten => forked_test1,n(c2),UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => forked_test1,n,Return()
+
+exten => forked_test2,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test2,n,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(predial^1(${EXTEN}^CALLER^predial))b(predial^3(${EXTEN}^callee^predial)))
+exten => forked_test2,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test2,n,Hangup()
+
+exten => forked_test3,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test3,n,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(predial^c1(${EXTEN}^CALLER^predial))b(predial^c2(${EXTEN}^callee^predial)))
+exten => forked_test3,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test3,n,Hangup()
+
+exten => forked_test4,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test4,n,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(predial^xtn^1(${EXTEN}^CALLER^xtn))b(predial^xtn^3(${EXTEN}^callee^xtn)))
+exten => forked_test4,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test4,n,Hangup()
+
+exten => forked_test5,1,Set(__TEST_EXTEN=${EXTEN})
+exten => forked_test5,n,Dial(Local/busy1 at called_context&Local/ans at called_context,,B(predial^xtn^c1(${EXTEN}^CALLER^xtn))b(predial^xtn^c2(${EXTEN}^callee^xtn)))
+exten => forked_test5,n,UserEvent(U_After,test: ${EXTEN},status: FAILED Dial continued in dialplan for ${EXTEN}. DIALSTATUS=${DIALSTATUS})
+exten => forked_test5,n,Hangup()
+
+
+exten => followme_test0,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test0,2,FollowMe(test_me,dB(5(${EXTEN}^CALLER^${EXTEN}))b(7(${EXTEN}^callee^${EXTEN})))
+exten => followme_test0,3,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test0,4,Hangup()
+exten => followme_test0,5,UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => followme_test0,6,Return()
+exten => followme_test0,7,UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => followme_test0,8,Return()
+
+exten => followme_test1,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test1,n,FollowMe(test_me,dB(c1(${EXTEN}^CALLER^${EXTEN}))b(c2(${EXTEN}^callee^${EXTEN}))))
+exten => followme_test1,n,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test1,n,Hangup()
+exten => followme_test1,n(c1),UserEvent(U_Predial,test: ${ARG1},which: CALLER,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => followme_test1,n,Return()
+exten => followme_test1,n(c2),UserEvent(U_Predial,test: ${ARG1},which: callee,who: ${ARG2},exten: ${EXTEN},expected: ${ARG3})
+exten => followme_test1,n,Return()
+
+exten => followme_test2,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test2,n,FollowMe(test_me,dB(predial^1(${EXTEN}^CALLER^predial))b(predial^3(${EXTEN}^callee^predial)))
+exten => followme_test2,n,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test2,n,Hangup()
+
+exten => followme_test3,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test3,n,FollowMe(test_me,dB(predial^c1(${EXTEN}^CALLER^predial))b(predial^c2(${EXTEN}^callee^predial)))
+exten => followme_test3,n,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test3,n,Hangup()
+
+exten => followme_test4,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test4,n,FollowMe(test_me,dB(predial^xtn^1(${EXTEN}^CALLER^xtn))b(predial^xtn^3(${EXTEN}^callee^xtn)))
+exten => followme_test4,n,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test4,n,Hangup()
+
+exten => followme_test5,1,Set(__TEST_EXTEN=${EXTEN})
+exten => followme_test5,n,FollowMe(test_me,dB(predial^xtn^c1(${EXTEN}^CALLER^xtn))b(predial^xtn^c2(${EXTEN}^callee^xtn)))
+exten => followme_test5,n,UserEvent(U_After,test: ${EXTEN},status: FAILED FollowMe continued in dialplan for ${EXTEN}.)
+exten => followme_test5,n,Hangup()
+
Propchange: asterisk/trunk/tests/predial/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/predial/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/predial/configs/ast1/extensions.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/predial/configs/ast1/followme.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/predial/configs/ast1/followme.conf?view=auto&rev=3303
==============================================================================
--- asterisk/trunk/tests/predial/configs/ast1/followme.conf (added)
+++ asterisk/trunk/tests/predial/configs/ast1/followme.conf Mon Jul 9 10:40:59 2012
@@ -1,0 +1,4 @@
+[test_me]
+context=called_context
+number=busy1,20
+number=busy2&ans_fm,20
Propchange: asterisk/trunk/tests/predial/configs/ast1/followme.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/predial/configs/ast1/followme.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/predial/configs/ast1/followme.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/predial/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/predial/run-test?view=auto&rev=3303
==============================================================================
--- asterisk/trunk/tests/predial/run-test (added)
+++ asterisk/trunk/tests/predial/run-test Mon Jul 9 10:40:59 2012
@@ -1,0 +1,194 @@
+#!/usr/bin/env python
+'''
+Copyright (C) 2012, Digium, Inc.
+Richard Mudgett <rmudgett at digium.com>
+
+This program is free software, distributed under the terms of
+the GNU General Public License Version 2.
+'''
+
+import sys
+import logging
+from twisted.internet import reactor
+
+sys.path.append("lib/python")
+from asterisk.TestCase import TestCase
+
+logger = logging.getLogger(__name__)
+
+
+class PredialTest(TestCase):
+ def __init__(self):
+ TestCase.__init__(self)
+
+ self.test_complete = False
+
+ # Number of tests in each series
+ self.single_tests = 6
+ self.forked_tests = 6
+ self.followme_tests = 6
+
+ self.test_series = 0
+
+ # Total number of subtests run
+ self.test_count = 0
+ # Number of subtests that passed
+ self.pass_count = 0
+
+ # Create an Asterisk instance ...
+ self.create_asterisk()
+
+ # Initiate next test call.
+ def initiate_next_test(self, ami):
+ # Determine which test call to make.
+ if 0 < self.single_tests:
+ # Setup the current test in the series
+ self.test_name = "single_test%d" % self.test_series
+ self.expected_predial_out_count = 1
+
+ # Prepare for next test in the series
+ self.test_series += 1
+ if self.single_tests <= self.test_series:
+ # Did all single_tests
+ self.single_tests = 0
+ self.test_series = 0
+ elif 0 < self.forked_tests:
+ # Setup the current test in the series
+ self.test_name = "forked_test%d" % self.test_series
+ self.expected_predial_out_count = 2
+
+ # Prepare for next test in the series
+ self.test_series += 1
+ if self.forked_tests <= self.test_series:
+ # Did all forked_tests
+ self.forked_tests = 0
+ self.test_series = 0
+ elif 0 < self.followme_tests:
+ # Setup the current test in the series
+ self.test_name = "followme_test%d" % self.test_series
+ self.expected_predial_out_count = 3
+
+ # Prepare for next test in the series
+ self.test_series += 1
+ if self.followme_tests <= self.test_series:
+ # Did all followme_tests
+ self.followme_tests = 0
+ self.test_series = 0
+ else:
+ # Evaluate overall test result and end test
+ if self.test_count == self.pass_count:
+ self.passed = True
+ self.stop_reactor()
+ return
+
+ # Reset UserEvent counts and flags.
+ self.predial_in_count = 0
+ self.predial_out_count = 0
+ self.saw_connected = False
+ self.saw_after = False
+
+ self.test_count += 1
+
+ # Originate the test call.
+ logger.info("Starting Test %s" % self.test_name)
+ df = ami.originate(channel = "Local/ans at caller_context", exten = self.test_name, context = "test_context", priority = 1)
+ df.addErrback(self.handleOriginateFailure)
+
+ # Called when got UserEvent event from the Asterisk instance
+ def evt_userevent(self, ami, event):
+ if self.test_complete:
+ return
+ # We want the AMI UserEvent header but the headers put
+ # in as dictionary keys are lowercased.
+ evt = event.get("userevent")
+ tst = event.get("test")
+
+ if tst != self.test_name:
+ logger.debug("Stale Test: " + str(tst) + " UserEvent: " + str(evt) + " Expected-test: " + str(self.test_name))
+ return
+
+ if evt == "U_Predial":
+ which = event.get("which")
+ who = event.get("who")
+ exten = event.get("exten")
+ expected = event.get("expected")
+ logger.debug("Test: " + str(tst) + " UserEvent: " + str(evt) + " which: " + str(which) + " who: " + str(who) + " exten: " + str(exten) + " expected: " + str(expected))
+ if exten != expected:
+ logger.warning("Test: " + str(tst) + " UserEvent: " + str(evt) + " exten: " + str(exten) + " expected: " + str(expected) + " Does not match!")
+ return
+ if exten != "predial" and exten != "xtn" and exten != tst:
+ logger.warning("Test: " + str(tst) + " UserEvent: " + str(evt) + " exten: " + str(exten) + " is unknown")
+ return
+ if which != who:
+ logger.warning("Test: " + str(tst) + " UserEvent: " + str(evt) + " which: " + str(which) + " who: " + str(who) + " Does not match!")
+ return
+ if which == "CALLER":
+ self.predial_in_count += 1
+ elif which == "callee":
+ self.predial_out_count += 1
+ else:
+ logger.warning("Test: " + str(tst) + " UserEvent: " + str(evt) + " which: " + str(which) + " is unknown")
+ return
+ if evt == "U_Connected":
+ to = event.get("to")
+ logger.debug("Test: " + str(tst) + " UserEvent: " + str(evt) + " to: " + str(to))
+ self.saw_connected = True
+ return
+ if evt == "U_After":
+ status = event.get("status")
+ logger.warning("Test: " + str(tst) + " UserEvent: " + str(evt) + " status: " + str(status))
+ self.saw_after = True
+ return
+ if evt == "U_Hangup":
+ channel = event.get("channel")
+ logger.debug("Test: " + str(tst) + " UserEvent: " + str(evt) + " channel: " + str(channel))
+
+ # Evaluate subtest result
+ if not self.saw_after \
+ and self.saw_connected \
+ and self.predial_in_count == 1 \
+ and self.predial_out_count == self.expected_predial_out_count:
+ self.pass_count += 1
+ else:
+ logger.warning("Test " + str(self.test_name) + " failed")
+
+ # Give each subtest the full time
+ self.reset_timeout()
+
+ self.initiate_next_test(ami)
+ return
+ logger.debug("Test: " + str(tst) + " UserEvent: " + str(evt) + " Unknown UserEvent")
+
+ # This is called for each AMI connection established.
+ def ami_connect(self, ami):
+ # Add AMI event triggers
+ # Ast1 events to handle
+ self.ami[ami.id].registerEvent("UserEvent", self.evt_userevent)
+ self.initiate_next_test(ami)
+
+ # This is called when the reactor has started running.
+ def run(self):
+ TestCase.run(self)
+ self.create_ami_factory()
+
+ # This is called when we stop the reactor.
+ def stop_reactor(self):
+ self.test_complete = True
+
+ TestCase.stop_reactor(self)
+
+
+def main():
+ # Run Predial Test
+ test = PredialTest()
+ reactor.run()
+ if test.passed:
+ logger.info("Test passed")
+ return 0
+ return 1
+
+if __name__ == "__main__":
+ sys.exit(main() or 0)
+
+
+# vim:sw=4:ts=4:expandtab:textwidth=79
Propchange: asterisk/trunk/tests/predial/run-test
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/predial/run-test
------------------------------------------------------------------------------
svn:executable = *
Propchange: asterisk/trunk/tests/predial/run-test
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/predial/run-test
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/predial/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/predial/test-config.yaml?view=auto&rev=3303
==============================================================================
--- asterisk/trunk/tests/predial/test-config.yaml (added)
+++ asterisk/trunk/tests/predial/test-config.yaml Mon Jul 9 10:40:59 2012
@@ -1,0 +1,14 @@
+testinfo:
+ summary: 'Test Dial and FollowMe predial subroutines'
+ description: |
+ 'Before Dial and FollowMe initiate outgoing calls, the user has the option
+ of running a dialplan subroutine. This test verifies that the expected
+ predial routines are called.'
+
+properties:
+ minversion: '11.0.0'
+ dependencies:
+ - asterisk: 'app_dial'
+ - asterisk: 'app_followme'
+ tags:
+ - predial
Propchange: asterisk/trunk/tests/predial/test-config.yaml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/predial/test-config.yaml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/predial/test-config.yaml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: asterisk/trunk/tests/tests.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/tests.yaml?view=diff&rev=3303&r1=3302&r2=3303
==============================================================================
--- asterisk/trunk/tests/tests.yaml (original)
+++ asterisk/trunk/tests/tests.yaml Mon Jul 9 10:40:59 2012
@@ -26,6 +26,7 @@
- dir: 'fastagi'
- dir: 'agi'
- dir: 'pbx'
+ - test: 'predial'
- dir: 'fax'
- dir: 'apps'
- dir: 'connected_line'
More information about the asterisk-commits
mailing list