summaryrefslogtreecommitdiffstats
path: root/test/w3c/xpath/test513.scxml
blob: bc29bb4adb5bbec42d2cc45c9607d247d0c02a10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?xml version="1.0" encoding="UTF-8"?><!-- test that we get an HTTP success code back on successful delivery.  To run this test, implementations
must support an extension to send: if the parameter httpResponse is present with value 'true', then when
the processor gets an http response code back, it must raise an event 'http.n1.nrest' where 'ni' is
the first digit of the response code and 'nrest' are the remaining digits--><scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" datamodel="xpath" version="1.0">
  
<state id="s0" initial="s01">
  <datamodel>
    <data id="Var1"/>
    </datamodel>
    
  <onentry>
    <send event="timeout" delay="30s"/>
    </onentry>
  <invoke type="http://www.w3.org/TR/scxml/">
    <content>
    <!-- child script. Once we're running send childRunning to parent and include basicHTTPAccess URI -->
    <scxml initial="child0" datamodel="xpath" version="1.0">
       <state id="child0">
         <onentry>
           <send target="#_parent" event="childRunning">
             <param name="uri" expr="_ioprocessors/processor[@name=&#34;http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor&#34;]/location/text()"/>
             </send>
          </onentry>
        </state>
     </scxml>
      </content>
    </invoke>
    
    <transition event="*" target="fail"/>
    
    <state id="s01">
    <!-- when we get the event from the child, extract the access uri and use
    the basicHTTP event i/o processor to send it an event -->
      <transition event="childRunning" target="s02">
        <assign location="$Var1" expr="$_event/data/data[@id='uri']/text()"/>
         <send event="test" targetexpr="$Var1" httpResponse="true" type="http://www.w3.org/TR/scxml/#BasicHTTPEventProcessor"/>
     </transition>
     </state>
     
     <state id="s02">
     <!-- the child should send this back automatically. It does not need to take
     any transition on the event -->
  <transition event="HTTP.2" target="pass"/>
 </state>
 </state>
  
   <final id="pass"><onentry><log label="Outcome" expr="'pass'"/></onentry></final>
   <final id="fail"><onentry><log label="Outcome" expr="'fail'"/></onentry></final>

</scxml>