diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-01 22:28:07 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-01 22:28:07 (GMT) |
commit | f19be97dea6fd8da994392d6fa7de5b3f0d9bf3e (patch) | |
tree | 4583fe7d5fa44f128ce92284429b6ee9f2c631bf /test/samples/w3c/txml/test457.txml | |
parent | c912952fb5e8072770262c64932c1d8cf2027cf0 (diff) | |
download | uscxml-f19be97dea6fd8da994392d6fa7de5b3f0d9bf3e.zip uscxml-f19be97dea6fd8da994392d6fa7de5b3f0d9bf3e.tar.gz uscxml-f19be97dea6fd8da994392d6fa7de5b3f0d9bf3e.tar.bz2 |
Still more bugfixes and added w3c tests
Diffstat (limited to 'test/samples/w3c/txml/test457.txml')
-rw-r--r-- | test/samples/w3c/txml/test457.txml | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/samples/w3c/txml/test457.txml b/test/samples/w3c/txml/test457.txml new file mode 100644 index 0000000..5bb856f --- /dev/null +++ b/test/samples/w3c/txml/test457.txml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- test that an the legal iterable collections are arrays, namely objects that satisfy instanceof(Array) in ECMAScript. + the legal values for the 'item' attribute on foreach are legal ECMAScript variable names.. --> + +<scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" datamodel="ecmascript" version="1.0"> +<datamodel> + <data id="Var1" expr="0"/> + <data id="Var2"/> + <data id="Var3"/> + <data id="Var4" expr="7"/> + <data id="Var5" expr="[1,2,3]"/> + <data id="Var6"/> + </datamodel> + + <state id="s0"> + <onentry> +<!-- invalid array, legal item --> + <foreach item="Var2" index="Var3" array="Var4"> + <assign location="Var1" expr="Var1 + 1"/> + </foreach> + <raise event="foo"/> + </onentry> + <transition event="error.execution" target="s1"/> + <transition event="*" target="fail"/> + </state> + + <state id="s1"> + <onentry> +<!-- illegal item, legal array --> + <foreach item="'continue'" index="Var3" array="Var5"> + <assign location="Var1" expr="Var1 + 1"/> + </foreach> + <raise event="bar"/> + </onentry> + <transition event="error.execution" target="s2"/> + <transition event="bar" target="fail"/> + </state> + +<state id="s2"> + <!-- check that var1 has its original value (so executable content never got executed --> + <transition cond="Var1==0" target="s3"/> + <transition target="fail"/> + </state> + + +<!-- finally check that a legal array works properly --> +<state id="s3"> + <onentry> + <assign location="Var6" expr="0"/> + <foreach item="Var2" array="Var5"> + <assign location="Var6" expr="Var6 + Var2"/> + </foreach> + </onentry> + <transition cond="Var6==6" target="pass"/> + <transition target="fail"/> + </state> + <final id="pass"><onentry><log label="Outcome" expr="'pass'"/></onentry></final> + <final id="fail"><onentry><log label="Outcome" expr="'fail'"/></onentry></final> + + + +</scxml>
\ No newline at end of file |