<?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="c2" root="context2"/>

  	<servlet name="app" class="org.apache.tapestry.ApplicationServlet">
  		<init-parameter
  			name="org.apache.tapestry.application-specification"
  			value="/org/apache/tapestry/junit/mock/c2/C2.application"/>
  	</servlet>      
    

	<request>
		<parameter name="service" value="page/ImplicitComponents"/>
		
		<assert-output name="Page Title">
<![CDATA[
<title>ImplicitComponents Page</title>
]]>
		</assert-output>
	
		<assert-output name="CRoot output">
This content provided by component CRoot.
		</assert-output>
		
		<assert-output name="CWebInf output">
This content provided by component CWebInf.
		</assert-output>

		<assert-output name="CWebInfApp output">
This content provided by component CWebInfApp.
		</assert-output>	
		
		<assert-output name="CApp output">
This content provided by component CApp.
		</assert-output>			
		
		<assert-output name="CRelative output">
This content provided by component CRelative.
		</assert-output>	
						
	</request>		
						 	 	 
</mock-test>
    	
