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

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

    <request>
        <parameter name="service" value="page/NestedCard"/>

        <assert-output name="Card">
            <![CDATA[
            <card id="Exception" title="Exception">
            ]]>
        </assert-output>

        <assert-output name="Exception Name">
        org.apache.tapestry.ApplicationRuntimeException
        </assert-output>

        <assert-output name="Exception Messge">
        Cards may not be nested.
        </assert-output>

        <assert-output name="Component Id">
        [NestedCard/nestedCard]
        </assert-output>

    </request>

</mock-test>

