#
# 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.
#
#
# File containing values expected by the test Portlet.
# If you are embedding the Pluto Container in a non-Pluto
# Portal, you may find it useful to modify these values.
#
# org.apache.pluto.testsuite.ExpectedResults is used to
# load this file.

# The value we expect to return from renderRequest.getPortalContext().getPortalInfo();

expected.serverInfo = Pluto/1.1.0-SNAPSHOT
expected.version.major=1
expected.version.minor=0

expected.portalInfo = pluto-portal-driver/1.1.0-SNAPSHOT

expected.security.role=tomcat
expected.security.role.mapped=plutoTestRole
