12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?xml version="1.0"?>
- <!-- we test that #_invokeid works as a target of <send> . A child script is invoked and sends us
- childToParent once its running. Then we send it the event parentToChild using its invokeid as the target.
- If it receives this event, it sends sends the event eventReceived to its parent session (ths session).
- If we get this event, we pass, otherwise the child script eventually times out sends invoke.done and we fail.
- We also set a timeout in this process to make sure the test doesn't hang -->
- <scxml initial="s0" conf:datamodel="" version="1.0" xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance">
-
- <state id="s0" initial="s01" >
- <onentry>
- <send event="timeout" delay="5s"/>
- </onentry>
-
- <invoke type="scxml" id="invokedChild">
- <content>
- <!-- let the parent session know we're running by sending childToParent, then wait for parentToChild.
- If we get it, send eventReceived. If we don't we eventually time out -->
- <scxml initial="sub0" version="1.0" conf:datamodel="" xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance">
-
- <state id="sub0">
- <onentry>
- <send event="childToParent" target="#_parent"/>
- <send event="timeout" delay="3s"/>
- </onentry>
-
- <transition event="parentToChild" target="subFinal">
- <send target="#_parent" event="eventReceived"/>
- </transition>
-
- <transition event="timeout" target="subFinal"/>
- </state>
- <final id="subFinal"/>
- </scxml>
- </content>
- </invoke>
-
- <transition event="timeout" conf:targetfail=""/>
- <transition event="done.invoke" conf:targetfail=""/>
-
- <state id="s01">
- <transition event="childToParent" target="s02">
- <send target="#_invokedChild" event="parentToChild"/>
- </transition>
- </state>
- <state id="s02">
- <transition event="eventReceived" conf:targetpass=""/>
- </state>
- </state>
- <conf:pass/>
- <conf:fail/>
- </scxml>
|