<?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>
       
    <request>
    	<parameter name="service" value="page/TemplateExpr"/>
 	
	  	<assert-output name="Valid use of template expression">
<![CDATA[
Application Name: JUnit Mock Application	
]]>
		</assert-output> 	
		
	  	<assert-output name="Specifying informal parameters">
<![CDATA[
Second example: <span class="styleClass">JUnit Mock Application</span>
]]>
		</assert-output> 	
	</request>
			
	<request>
		<parameter name="service" value="page/TemplateExprConflict"/>
		
	  	<assert-output name="Page Title">
<![CDATA[
	<title>Exception</title>
]]>
		</assert-output>	
	
		<assert-output name="Error Message">
An expression for parameter 'value' of component TemplateExprConflict/insertApplicationName in the template for TemplateExprConflict conflicts with an existing binding in the specification.
		</assert-output>	
		
	</request>
	
	<request>
		<parameter name="service" value="page/TemplateExprInformal"/>
		
	  	<assert-output name="Page Title">
<![CDATA[
	<title>Exception</title>
]]>
		</assert-output>	
	
		<assert-output name="Error Message">
The template for TemplateExprInformal contains an expression for parameter 'informal' of component TemplateExprInformal/block, but TemplateExprInformal/block does not allow informal parameters.
		</assert-output>	
		
	</request>	
	
	<request>
		<parameter name="service" value="page/TemplateExprReserved"/>
		
	  	<assert-output name="Page Title">
<![CDATA[
	<title>Exception</title>
]]>
		</assert-output>	
	
		<assert-output name="Error Message">
The template for TemplateExprReserved contains an expression for parameter 'href' of component TemplateExprReserved/link, but 'href' is a reserved parameter name.
		</assert-output>	
		
	</request>	
</mock-test>
    	
