<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id$ -->
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- Tests stale session exception with a DirectLink. -->

<mock-test>
    <context name="mock"/>
    
    <servlet name="app" class="org.apache.tapestry.ApplicationServlet">
  		<init-parameter
  			name="org.apache.tapestry.application-specification"
  			value="/org/apache/tapestry/junit/mock/app/Mock.application"/>
  	</servlet>  	
  	
  	<!-- Simulate clicking the link, which should send the
  	     user to the Protected page.  -->
  	     
  	<request>
  		<parameter name="service" value="page/Stale"/>
  		
  		<assert-output name="Title">
<![CDATA[
<title>StaleSession Test Page</title>
]]>
		</assert-output>
		
		<assert-output name="DirectLink URL">
<![CDATA[
href="/mock/app?service=direct/0/Stale/directLink"
]]>		
		</assert-output>
		

		<assert-output name="ActionLink URL">
<![CDATA[
href="/mock/app?service=action/0/Stale/0/actionLink"
]]>		
		</assert-output>		
		
		<assert-output-matches name="Form Parameter Names" subgroup="1">
<![CDATA[
<input type="hidden".*? name="(.*?)".*?/>		
]]>
			<match>service</match>
			<match>sp</match>
			<match>Form1</match>
		</assert-output-matches>

		<assert-output-matches name="Form Parameter Values" subgroup="1">
<![CDATA[
<input type="hidden".*? value="(.*?)".*?/>		
]]>
			<match>direct/0/Stale/form</match>
			<match>S1</match>
			<match></match>
		</assert-output-matches>

				
	</request>
	
	<!-- Now trigger each in turn. -->
	
	<request>
		<parameter name="service" value="direct/1/Stale/directLink"/>
		
		<assert-output name="StaleSession (DirectLink)">
<![CDATA[
<title>Stale Session</title>
]]>
		</assert-output>
	</request>
	
	<!-- Simulate stateful action link. -->
	
	<request>
		<parameter name="service" value="action/1/Stale/0/actionLink"/>
		
		<assert-output name="StaleSession (ActionLink)">
<![CDATA[
<title>Stale Session</title>
]]>
		</assert-output>
	</request>
	
	<request>
		<parameter name="service" value="direct/1/Stale/form"/>
		<parameter name="sp" value="S1"/>
		<parameter name="Form1" value=""/>
		
		<assert-output name="StaleSession (Form)">
<![CDATA[
<title>Stale Session</title>
]]>
		</assert-output>
	</request>  	
</mock-test>