<?xml version="1.0" encoding="UTF-8"?>
<test id="wml/state/variables/substitution/3" class="A" scope="wml" testtype="application" type="auto" source="wml13#10.3.1" device="both">
  <assertion>When a variable is referenced within any element or attribute
with a content type of %vdata, and that variable reference is enclosed in
parenthesis using the pattern '(' name ':' conversion ')', the value of the
variable is converted before it is substituted. Legal conversion values are
"noesc", "escape", and "unesc" - meaning "no change", "URL-escape the value",
and "URL-unescape the value" respectively.
</assertion>
  <results>
    <result>
      <name>test</name>
      <value>pass</value>
    </result>
    <result>
      <name>t1</name>
      <value>.*</value>
    </result>
    <result>
      <name>t2</name>
      <value>.*</value>
    </result>
    <result>
      <name>t3</name>
      <value>.*</value>
    </result>
  </results>
  <method>
    <![CDATA[<card newcontext="true" id="main">
<onevent type="onenterforward">
<go href="#card1">
<setvar name="testvalue" value="x%20Y %5A"/>
</go>
</onevent>
<auto_failed>
</card>]]>
  </method>
  <cards>
    <card id="1">
      <![CDATA[<card id="card1">
<onevent type="onenterforward">
<go href="<script1>#main('test','card2')">
<setvar name="t1value" value="$(testvalue:noesc)"/>
<setvar name="t2value" value="$(testvalue:escape)"/>
<setvar name="t3value" value="$(testvalue:unesc)"/>
</go>
</onevent>
<auto_failed>
</card>
]]>
    </card>
    <card id="2">
      <![CDATA[<card id="card2">
<onevent type="onenterforward">
<go href="<responseurl>">
<postfield name="test" value="$test"/>
<postfield name="t1" value="$t1"/>
<postfield name="t2" value="$t2"/> 
<postfield name="t3" value="$t3"/> 
<sessionvars>
</go>
</onevent>
<auto_failed>
</card>
]]>
    </card>
  </cards>
  <scripts>
    <script id="1">
      <![CDATA[extern function main(myvar,next)
{
	var result = 'fail';
	var t1 = WMLBrowser.getVar('t1value');
	var t2 = WMLBrowser.getVar('t2value');
	var t3 = WMLBrowser.getVar('t3value');
	if (t1 == "x%20Y %5A" &&
		t2 == "x%2520Y%20%255A" &&
		t3 == "x Y Z")
	{
		result = 'pass';
	}
	WMLBrowser.setVar(myvar,result);
	WMLBrowser.setVar('t1',t1);
	WMLBrowser.setVar('t2',t2);
	WMLBrowser.setVar('t3',t3);
	
	WMLBrowser.go('#' + next);
	return 1;
}



]]>
    </script>
  </scripts>
</test>

