test152.txml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?xml version="1.0"?>
  2. <!-- test that an illegal array or item value causes error.execution and results in executable content
  3. not being executed. -->
  4. <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">
  5. <datamodel>
  6. <data conf:id="1" conf:expr="0"/>
  7. <data conf:id="2"/>
  8. <data conf:id="3"/>
  9. <data conf:id="4" conf:illegalArray=""/>
  10. <data conf:id="5">
  11. <conf:array123/>
  12. </data>
  13. </datamodel>
  14. <state id="s0">
  15. <onentry>
  16. <!-- invalid array, legal item -->
  17. <foreach conf:item="2" conf:index="3" conf:arrayTextVar="4">
  18. <conf:incrementID id="1"/>
  19. </foreach>
  20. <raise event="foo"/>
  21. </onentry>
  22. <transition event="error.execution" target="s1"/>
  23. <transition event="*" conf:targetfail=""/>
  24. </state>
  25. <state id="s1">
  26. <onentry>
  27. <!-- illegal item, legal array -->
  28. <foreach conf:illegalItem="" conf:index="3" conf:arrayVar="5">
  29. <conf:incrementID id="1"/>
  30. </foreach>
  31. <raise event="bar"/>
  32. </onentry>
  33. <transition event="error.execution" target="s2"/>
  34. <transition event="bar" conf:targetfail=""/>
  35. </state>
  36. <state id="s2">
  37. <!-- check that var1 has its original value (so executable content never got executed -->
  38. <transition conf:idVal="1=0" conf:targetpass=""/>
  39. <transition conf:targetfail=""/>
  40. </state>
  41. <conf:pass/>
  42. <conf:fail/>
  43. </scxml>