blob: dc39d50f89cf8f9fedb74903ea9ac2474fe9984f [file] [log] [blame]
<?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="c6" root="context6"/>
<servlet name="app" class="org.apache.tapestry.ApplicationServlet">
<init-parameter name="org.apache.tapestry.engine-class"
value="org.apache.tapestry.junit.mock.c6.C6Engine"/>
</servlet>
<request>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Page Property</title>
]]>
</assert-output>
<assert-output name="Initial Message">
Message: Hello
</assert-output>
<assert-output name="Initial Active Page Names">
Active page names: []
</assert-output>
<assert-output name="Change Message Link">
<![CDATA[
/c6/app?service=direct/0/Home/$DirectLink
]]>
</assert-output>
<assert-expression name="Check No Session"
expression="request.session == null"/>
</request>
<!-- Now, trigger the link. -->
<request>
<parameter name="service" value="direct/0/Home/$DirectLink"/>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Page Property</title>
]]>
</assert-output>
<assert-output name="Changed Message">
Message: Changed
</assert-output>
<assert-output name="Active Page Names">
Active page names: [Home]
</assert-output>
<assert name="Session Attribute">
request.session.getAttribute("app/Home/message").equals("Changed")
</assert>
</request>
<!-- Return to the page, check for the change. -->
<request>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Page Property</title>
]]>
</assert-output>
<assert-output name="Changed Message">
Message: Changed
</assert-output>
<assert-output name="Active Page Names">
Active page names: [Home]
</assert-output>
</request>
<!-- Simulate a failover. -->
<request failover="true">
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Page Property</title>
]]>
</assert-output>
<assert-output name="Changed Message">
Message: Changed
</assert-output>
<assert-output name="Active Page Names">
Active page names: [Home]
</assert-output>
</request>
<!-- Now try page "Two", with the Nested component. -->
<request>
<parameter name="service" value="page/Two"/>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Component Property</title>
]]>
</assert-output>
<assert-output name="Initial Nested Message">
Nested Message: Nested
</assert-output>
<assert-output name="Initial Active Page Names">
Active page names: [Home]
</assert-output>
<assert-output name="Change Message Link">
<![CDATA[
/c6/app?service=direct/1/Two/$Nested.$DirectLink
]]>
</assert-output>
</request>
<!-- Trigger the link in the nested component. -->
<request>
<parameter name="service" value="direct/1/Two/$Nested.$DirectLink"/>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Component Property</title>
]]>
</assert-output>
<assert-output name="Changed Nested Message">
Nested Message: Changed
</assert-output>
<!-- This is going to be a little pain because we can't count on the
ordering! May need to put some kind of sort filter in place in the
presentation. -->
<assert-output name="Changed Active Page Names">
Active page names: [Home, Two]
</assert-output>
<assert name="Session Attribute">
request.session.getAttribute("app/Two/$Nested/message").equals("Changed")
</assert>
</request>
<!-- Check that it works on a revisit. -->
<request>
<parameter name="service" value="page/Two"/>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Component Property</title>
]]>
</assert-output>
<assert-output name="Changed Active Page Names">
Active page names: [Home, Two]
</assert-output>
<assert-output name="Changed Nested Message">
Nested Message: Changed
</assert-output>
</request>
<!-- Check that it works after a failover. -->
<request failover="true">
<parameter name="service" value="page/Two"/>
<assert-output name="Page Title">
<![CDATA[
<title>Peristant Component Property</title>
]]>
</assert-output>
<assert-output name="Changed Active Page Names">
Active page names: [Home, Two]
</assert-output>
<assert-output name="Changed Nested Message">
Nested Message: Changed
</assert-output>
</request>
<!-- Now, test that all sorts of variations on fireObservedChange() work with
different overloaded types. -->
<request>
<parameter name="service" value="page/Four"/>
<assert-output name="Page Title">
<![CDATA[
<title>Property Types</title>
]]>
</assert-output>
<assert-output name="Boolean">
Boolean value: false
</assert-output>
<assert-output name="Char">
Char value: [ ]
</assert-output>
<assert-output name="Byte">
Byte value: 0
</assert-output>
<assert-output name="Short">
Short value: 0
</assert-output>
<assert-output name="Int">
Int value: 0
</assert-output>
<assert-output name="Long">
Long value: 0
</assert-output>
<assert-output name="Float">
Float value: 0.0
</assert-output>
<assert-output name="Double">
Double value: 0.0
</assert-output>
<assert-output name="StringHolder">
StringHolder value: []
</assert-output>
<assert-output name="Create Link">
<![CDATA[
/c6/app?service=direct/1/Four/$DirectLink
]]>
</assert-output>
</request>
<!-- Trigger the link to create values. -->
<request>
<parameter name="service" value="direct/1/Four/$DirectLink"/>
<assert-output name="Page Title">
<![CDATA[
<title>Property Types</title>
]]>
</assert-output>
<assert-output name="Boolean">
Boolean value: true
</assert-output>
<assert-output name="Char">
Char value: [H]
</assert-output>
<assert-output name="Byte">
Byte value: 27
</assert-output>
<assert-output name="Short">
Short value: 127
</assert-output>
<assert-output name="Int">
Int value: 23
</assert-output>
<assert-output name="Long">
Long value: 1234567890123
</assert-output>
<assert-output name="Float">
Float value: -1.5
</assert-output>
<assert-output name="Double">
Double value: 3.142857142857143
</assert-output>
<assert-output name="StringHolder">
StringHolder value: [StringHolder[Surprise!]]
</assert-output>
</request>
<!-- And return to ensure that values are properly restored. -->
<request failover="true">
<parameter name="service" value="page/Four"/>
<assert-output name="Boolean">
Boolean value: true
</assert-output>
<assert-output name="Char">
Char value: [H]
</assert-output>
<assert-output name="Byte">
Byte value: 27
</assert-output>
<assert-output name="Short">
Short value: 127
</assert-output>
<assert-output name="Int">
Int value: 23
</assert-output>
<assert-output name="Long">
Long value: 1234567890123
</assert-output>
<assert-output name="Float">
Float value: -1.5
</assert-output>
<assert-output name="Double">
Double value: 3.142857142857143
</assert-output>
<assert-output name="StringHolder">
StringHolder value: [StringHolder[Surprise!]]
</assert-output>
</request>
</mock-test>