<?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.
-->
<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>      
    
    <!-- Check that the home service is the default service. -->
    
    <request>
    			
		<assert-output name="English Blurb">
If it's not Scottish, it's crap!
		</assert-output>
	</request>		

	<request>
	  	<parameter name="service" value="page/Assets"/>
		
		<assert-output name="Home Link">
<![CDATA[		
href="/mock/app?service=home"		
]]>
		</assert-output>
	
	</request>
	
<!-- Double check that home service works when named. -->
	
	<request>
	  	<parameter name="service" value="home"/>
		
		<assert-output name="English Blurb">
If it's not Scottish, it's crap!
		</assert-output>
				
	</request>	
			 	 	 
</mock-test>
    	
