[svn-commits] rmudgett: testsuite/asterisk/trunk r3303 - in /asterisk/trunk/tests: ./ predi...

SVN commits to the Digium repositories svn-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 svn-commits mailing list