Author: bdaw
Date: 2008-03-19 10:33:37 -0400 (Wed, 19 Mar 2008)
New Revision: 10334
Modified:
modules/portlet/trunk/portlet/pom.xml
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/EscapeXMLTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/URLWriteThrowsIOExceptionTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/PublicRenderParameterTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceServingTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/userinformation/NullProfileForUnauthenticatedIdentityTestCase.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/Assertion.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/ResultProducingListener.java
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/TestCaseAnnotationProcessor.java
Log:
- jsr286 --> jsr168 assertion mappings
- improved test coverage report generation
- start on api assertions
Modified: modules/portlet/trunk/portlet/pom.xml
===================================================================
--- modules/portlet/trunk/portlet/pom.xml 2008-03-19 13:27:45 UTC (rev 10333)
+++ modules/portlet/trunk/portlet/pom.xml 2008-03-19 14:33:37 UTC (rev 10334)
@@ -153,22 +153,6 @@
<build>
<plugins>
- <!--<plugin>-->
- <!--<groupId>org.apache.maven.plugins</groupId>-->
- <!--<artifactId>maven-compiler-plugin</artifactId>-->
- <!--<executions>-->
- <!--<execution>-->
- <!--<goals>-->
- <!--<goal>testCompile</goal>-->
- <!--</goals>-->
- <!--</execution>-->
- <!--</executions>-->
- <!--<configuration>-->
- <!--<testExcludes>-->
-
<!--<exclude>org/jboss/portal/unit/reports/*</exclude>-->
- <!--</testExcludes>-->
- <!--</configuration>-->
- <!--</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
@@ -220,26 +204,6 @@
</configuration>
</plugin>
- <!--<plugin>-->
- <!--<groupId>org.apache.myfaces.tobago</groupId>-->
- <!--<artifactId>maven-apt-plugin</artifactId>-->
- <!--<executions>-->
- <!--<execution>-->
- <!--<phase>test</phase>-->
- <!--<configuration>-->
- <!--<generated>.apt_generated</generated>-->
- <!--<aptOptions>x=3</aptOptions>-->
- <!--<target>1.5</target>-->
- <!--<nocompile>true</nocompile>-->
- <!--<showWarnings>true</showWarnings>-->
-
<!--<factory>org.jboss.portal.unit.reports.TestCaseAPF</factory>-->
- <!--</configuration>-->
- <!--<goals>-->
- <!--<goal>testExecute</goal>-->
- <!--</goals>-->
- <!--</execution>-->
- <!--</executions>-->
- <!--</plugin>-->
</plugins>
</build>
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/EscapeXMLTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/EscapeXMLTestCase.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/EscapeXMLTestCase.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -46,7 +46,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-(a)TestCase(Assertion.API_BASE_URL_1)
+(a)TestCase(Assertion.API286_BASE_URL_5)
public class EscapeXMLTestCase
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/URLWriteThrowsIOExceptionTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/URLWriteThrowsIOExceptionTestCase.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/api/portleturl/URLWriteThrowsIOExceptionTestCase.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -44,7 +44,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-(a)TestCase(Assertion.API_BASE_URL_2)
+(a)TestCase(Assertion.API286_BASE_URL_5)
public class URLWriteThrowsIOExceptionTestCase
{
public URLWriteThrowsIOExceptionTestCase(PortletTestCase seq)
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/PublicRenderParameterTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/PublicRenderParameterTestCase.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/portletrequests/PublicRenderParameterTestCase.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -59,7 +59,7 @@
* @version $Revision: 630 $
*/
@TestCase({
- Assertion.JSR168_1000
+ Assertion.JSR286_125
})
public class PublicRenderParameterTestCase
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceServingTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceServingTestCase.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/resourceserving/ResourceServingTestCase.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -50,7 +50,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-(a)TestCase({Assertion.JSR168_1000})
+(a)TestCase({Assertion.JSR286_123,Assertion.JSR286_125})
public class ResourceServingTestCase
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/userinformation/NullProfileForUnauthenticatedIdentityTestCase.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/userinformation/NullProfileForUnauthenticatedIdentityTestCase.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/test/portlet/jsr286/tck/userinformation/NullProfileForUnauthenticatedIdentityTestCase.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -45,7 +45,7 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 630 $
*/
-(a)TestCase(/*Assertion.JSR286_302*/)
+(a)TestCase({Assertion.JSR286_302})
public class NullProfileForUnauthenticatedIdentityTestCase
{
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/Assertion.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/Assertion.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/Assertion.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -24,6 +24,56 @@
import javax.portlet.PortletURL;
import javax.portlet.BaseURL;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.CacheControl;
+import javax.portlet.ClientDataRequest;
+import javax.portlet.Event;
+import javax.portlet.EventPortlet;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.GenericPortlet;
+import javax.portlet.MimeResponse;
+import javax.portlet.PortalContext;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletResponse;
+import javax.portlet.PortletSecurityException;
+import javax.portlet.PortletSession;
+import javax.portlet.PortletSessionUtil;
+import javax.portlet.PortletURLGenerationListener;
+import javax.portlet.PreferencesValidator;
+import javax.portlet.ProcessAction;
+import javax.portlet.ProcessEvent;
+import javax.portlet.RenderMode;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.ResourceServingPortlet;
+import javax.portlet.ResourceURL;
+import javax.portlet.StateAwareResponse;
+import javax.portlet.WindowState;
+import javax.portlet.filter.ActionFilter;
+import javax.portlet.filter.ActionRequestWrapper;
+import javax.portlet.filter.ActionResponseWrapper;
+import javax.portlet.filter.EventFilter;
+import javax.portlet.filter.EventRequestWrapper;
+import javax.portlet.filter.EventResponseWrapper;
+import javax.portlet.filter.FilterChain;
+import javax.portlet.filter.FilterConfig;
+import javax.portlet.filter.PortletFilter;
+import javax.portlet.filter.RenderRequestWrapper;
+import javax.portlet.filter.RenderResponseWrapper;
+import javax.portlet.filter.ResourceFilter;
+import javax.portlet.filter.ResourceRequestWrapper;
+import javax.portlet.filter.ResourceResponseWrapper;
/**
* Define TCK assertions.
@@ -45,6 +95,9 @@
JSR168_6(new TCK(6), "The destroy method must not be called because the
initialization is" +
" considered unsuccessful."),
+
+ JSR168_7(new TCK(7),""),
+
JSR168_8(new TCK(8), "A RuntimeException thrown during initialization must be
handled as a" +
" PortletException."),
@@ -70,14 +123,20 @@
" method must not be invoked within the current client request"),
JSR168_18(new TCK(18), Status.disabled("spec?"), "If a permanent
unavailability is indicated by the UnavailableException, the" +
- " portlet container must remove the portlet from service immediately, call the
portlet�s destroy method, and release" +
+ " portlet container must remove the portlet from service immediately, call the
portlet's destroy method, and release" +
" the portlet object."),
JSR168_19(new TCK(19), Status.disabled("spec?"), "A RuntimeException
thrown during the request handling must be handled as a" +
" PortletException"),
- JSR168_24(new TCK(24), ""),
+ JSR168_24(new TCK(24), "If the root resource bundle does not contain the
resources for these values and " +
+ "the values are defined inline, the portlet container must add the inline
values as resources of the root " +
+ "resource bundle."),
+ JSR168_25(new TCK(25), "If the portlet definition does not define a resource
bundle and the information" +
+ " is defined inline in the deployment descriptor, the portlet container must
create a ResourceBundle and populate" +
+ " it, with the inline values, using the keys defined in the PLT.25.10 Resource
Bundles Section."),
+
JSR168_26(new TCK(26), "A render URL is an optimization for a special type of
action URLs. The" +
" portal/portletcontainer must not invoke the processAction method of the
targeted portlet."),
@@ -177,7 +236,7 @@
JSR168_60(new TCK(60), "If the user is not authenticated the getAuthType method
must return null"),
JSR168_61(new TCK(61), "If the portlet container supports additional content
types for the" +
- " portlet�s output, it must declare the additional content types through the
getResponseContentTypes method of the" +
+ " portlet's output, it must declare the additional content types through
the getResponseContentTypes method of the" +
" request object. The returned Enumeration of strings should contain the
content types the portlet container" +
" supports in order of preference. The first element of the enumeration must
be the same content type returned by" +
" the getResponseContentType method."),
@@ -291,7 +350,7 @@
JSR168_95(new TCK(95), Status.postponed("why?"), ""),
JSR168_96(new TCK(96), "All changes made to PortletPreferences object not
followed by a call to" +
- " the store method must be discarded when the portlet finishes the 20
processAction method."),
+ " the store method must be discarded when the portlet finishes the
processAction method."),
JSR168_97(new TCK(97), "If the store method is invoked within the scope of a
render method" +
" invocation, it must throw an IllegalStateException."),
@@ -328,6 +387,11 @@
JSR168_107(new TCK(107), "In addition, if within these portlet requests more than
one portlet" +
" creates a session, the session object must be the same for all the portlets
in the same portlet application"),
+ JSR168_108(new TCK(108), "PortletSession objects must be scoped at the portlet
application context level."),
+
+ JSR168_109(new TCK(109), "The portlet container must not share the PortletSession
object or the " +
+ "attributes stored in it among different portlet applications or among
different user sessions."),
+
JSR168_110(new TCK(110), "Any object stored in the session using the
APPLICATION_SCOPE is" +
" available to any other portlet that belongs to the same portlet application
and that handles a request identified" +
" as being a part of the same session."),
@@ -364,7 +428,7 @@
JSR168_120(new TCK(120), Status.jbossUntestable("why?"), ""),
JSR168_121(new TCK(121), "The getRequestDispatcher method takes a String argument
describing a" +
- " path within the scope of the PortletContext of a portlet application. This
path must begin with a �/� and it is" +
+ " path within the scope of the PortletContext of a portlet application. This
path must begin with a / and it is" +
" relative to the PortletContext root."),
JSR168_122(new TCK(122), "The getNamedDispatcher method takes a String argument
indicating the" +
@@ -431,8 +495,6 @@
//
******************************************************************************************************************
- JSR168_1000(new TCK(1000), "todo ???"),
-
// PLT.2 Overview
JSR286_1(new TCK(1, "PLT.2.5"), Status.specUntestable(""),
"Portlet V2.0 containers must support deploying JSR 168 portlets and the JSR 168
deployment descriptor"),
@@ -443,20 +505,20 @@
JSR286_3(new TCK(3, "PLT.5.1"), Status.specUntestable(""),
"In the case where a portlet is deployed as part of a" +
" portlet application marked as distributable, in the web.xml deployment
descriptor, a portlet container may " +
"instantiate only one portlet object per portlet definition -in the deployment
descriptor- per virtual machine (VM)."),
- JSR286_4(new TCK(4, "PLT.5.2.1"), "The portlet container must load the
portlet class using the same ClassLoader " +
+ JSR286_4(new TCK(4, "PLT.5.2.1"), Status.specUntestable(""),
"The portlet container must load the portlet class using the same ClassLoader "
+
"the servlet container uses for the web application part of the portlet
application."),
- JSR286_5(new TCK(5, "PLT.5.2.2"), "After the portlet object is
instantiated, the portlet container must initialize " +
+ JSR286_5(new TCK(5, "PLT.5.2.2"), JSR168_4, "After the portlet object
is instantiated, the portlet container must initialize " +
"the portlet before invoking it to handle requests."),
- JSR286_6(new TCK(6, "PLT.5.2.2.1"), "During initialization, the portlet
object may throw an UnavailableException " +
+ JSR286_6(new TCK(6, "PLT.5.2.2.1"), JSR168_5, "During initialization,
the portlet object may throw an UnavailableException " +
"or a PortletException. In this case, the portlet container must not place the
portlet object into active " +
"service and it must release the portlet object."),
- JSR286_7(new TCK(7, "PLT.5.2.2.1"), "The destroy method must not be
called because the initialization is considered " +
+ JSR286_7(new TCK(7, "PLT.5.2.2.1"), JSR168_6, "The destroy method must
not be called because the initialization is considered " +
"unsuccessful."),
- JSR286_8(new TCK(8, "PLT.5.2.2.1"), "The portlet container may
reattempt to instantiate and initialize the portlets " +
+ JSR286_8(new TCK(8, "PLT.5.2.2.1"), JSR168_7, "The portlet container
may reattempt to instantiate and initialize the portlets " +
"at any time after a failure. The exception to this rule is when an
UnavailableException indicates a minimum time " +
"of unavailability. When this happens the portlet container must wait for 30
the specified time to pass before " +
"creating and initializing a new portlet object."),
- JSR286_9(new TCK(9, "PLT.5.2.2.1"), "A RuntimeException thrown during
initialization must be handled as a " +
+ JSR286_9(new TCK(9, "PLT.5.2.2.1"), JSR168_8, "A RuntimeException
thrown during initialization must be handled as a " +
"PortletException."),
JSR286_10(new TCK(10, "PLT.5.2.3"), Status.specUntestable(""),
"Once the destroy method is called on a portlet " +
"object, the portlet container must not route any requests to that portlet
object."),
@@ -467,13 +529,13 @@
"destroyed."),
JSR286_13(new TCK(13, "PLT.5.2.3"), Status.specUntestable(""),
"After the destroy method completes, the portlet " +
"container must release the portlet object so that it is eligible for garbage
collection."),
- JSR286_14(new TCK(14, "PLT.5.4"), "If the client request is triggered
by an action URL, the portal/portlet-container " +
+ JSR286_14(new TCK(14, "PLT.5.4"), JSR168_9, "If the client request is
triggered by an action URL, the portal/portlet-container " +
"must first trigger the action request by invoking the processAction method of
the targeted portlet."),
JSR286_15(new TCK(15, "PLT.5.4"), "The portal/portlet-container must
wait until the action request finishes. Then, " +
"the portal/portlet-container should call the processEvent methods of the
event receiving portlets and after the " +
"event processing is finished must trigger the render request by invoking the
render method for all the portlets " +
"in the portal page with the possible exception of portlets for which their
content is being cached."),
- JSR286_16(new TCK(16, "PLT.5.4"), "If the client request is triggered
by a render URL, the portal/portlet-container " +
+ JSR286_16(new TCK(16, "PLT.5.4"), JSR168_11, "If the client request is
triggered by a render URL, the portal/portlet-container " +
"must invoke the render method for all the portlets in the portal page with
the possible exception of portlets " +
"for which their content is being cached."),
JSR286_17(new TCK(17, "PLT.5.4"), "If the client request is triggered
by a resource URL, the portal/portlet-container " +
@@ -494,14 +556,14 @@
JSR286_24(new TCK(24, "PLT.5.4.7"), Status.specUntestable(""),
"If a permanent unavailability is indicated by the " +
"UnavailableException, the portlet container must remove the portlet from
service immediately, call the portlet’s " +
"destroy method, and release the portlet object"),
- JSR286_25(new TCK(25, "PLT.5.4.7"), "A RuntimeException thrown during
the request handling must be handled as a " +
+ JSR286_25(new TCK(25, "PLT.5.4.7"), JSR168_19, "A RuntimeException
thrown during the request handling must be handled as a " +
"PortletException."),
// PLT.6 Portlet Config
- JSR286_26(new TCK(26, "PLT.6.2"), "If the root resource bundle does not
contain the resources for these values and " +
+ JSR286_26(new TCK(26, "PLT.6.2"), JSR168_24, "If the root resource
bundle does not contain the resources for these values and " +
"the values are defined inline, the portlet container must add the inline
values as resources of the root " +
"resource bundle."),
- JSR286_27(new TCK(27, "PLT.6.2"), "If the portlet definition does not
define a resource bundle and the information" +
+ JSR286_27(new TCK(27, "PLT.6.2"), JSR168_25, "If the portlet definition
does not define a resource bundle and the information" +
" is defined inline in the deployment descriptor, the portlet container must
create a ResourceBundle and populate" +
" it, with the inline values, using the keys defined in the PLT.25.10 Resource
Bundles Section."),
JSR286_28(new TCK(28, "PLT.6.3"), "The getDefaultNamespace method of
the PortletConfig interface returns the " +
@@ -530,30 +592,30 @@
// PLT,7 Portlet URLs
- JSR286_35(new TCK(35, "PLT.7.1"), "The portal/portlet-container must
not invoke the processAction method of the " +
+ JSR286_35(new TCK(35, "PLT.7.1"), JSR168_26, "The
portal/portlet-container must not invoke the processAction method of the " +
"targeted portlet of a render URL."),
- JSR286_36(new TCK(36, "PLT.7.1"), "The portal/portlet-container must
ensure that all the parameters set when " +
+ JSR286_36(new TCK(36, "PLT.7.1"), JSR168_27, "The
portal/portlet-container must ensure that all the parameters set when " +
"constructing the render URL become render parameters of the subsequent render
requests for the portlet."),
- JSR286_37(new TCK(37, "PLT.7.1.1"), "A call to any of the setParameter
methods must replace any parameter with " +
+ JSR286_37(new TCK(37, "PLT.7.1.1"), JSR168_28, "A call to any of the
setParameter methods must replace any parameter with " +
"the same name previously set."),
JSR286_38(new TCK(38, "PLT.7.1.1"), "All the parameters a portlet adds
to a BaseURL object must be made available " +
"to the portlet as request parameters."),
- JSR286_39(new TCK(39, "PLT.7.1.1"), "The portlet-container must
“x-www-form-urlencoded” encode parameter names and " +
+ JSR286_39(new TCK(39, "PLT.7.1.1"), JSR168_30, "The portlet-container
must “x-www-form-urlencoded” encode parameter names and " +
"values added to a BaseURL object."),
- JSR286_40(new TCK(40, "PLT.7.1.1"), "If a portal/portlet-container
encodes additional information as parameters, it " +
+ JSR286_40(new TCK(40, "PLT.7.1.1"), JSR168_31, "If a
portal/portlet-container encodes additional information as parameters, it " +
"must namespace them properly to avoid collisions with the parameters set and
used by the portlet."),
- JSR286_41(new TCK(41, "PLT.7.1.2"), "A portlet cannot create a portlet
URL using a portlet mode that is not defined " +
+ JSR286_41(new TCK(41, "PLT.7.1.2"), JSR168_32, "A portlet cannot create
a portlet URL using a portlet mode that is not defined " +
"as supported by the portlet or that the user it is not allowed to use. The
setPortletMode methods must throw a " +
"PortletModeException in that situation."),
JSR286_42(new TCK(42, "PLT.7.1.2"), "The change of portlet mode must be
effective for the request triggered by the " +
"portlet URL."),
JSR286_43(new TCK(43, "PLT.7.1.2"), "If the portlet mode is not set for
a URL, it must have the portlet mode of the " +
"current request as default."),
- JSR286_44(new TCK(45, "PLT.7.1.2"), "A portlet cannot create a portlet
URL using a window state that is not supported " +
+ JSR286_44(new TCK(45, "PLT.7.1.2"), JSR168_34, "A portlet cannot create
a portlet URL using a window state that is not supported " +
"by the portlet container. The setWindowState method must throw a
WindowStateException if that is the case."),
JSR286_45(new TCK(44, "PLT.7.1.2"), "If the window state is not set for
a URL, it must have the window state of the " +
"current request as default."),
- JSR286_46(new TCK(46, "PLT.7.1.3"), "If setSecure is called with true,
the transport for the request triggered with " +
+ JSR286_46(new TCK(46, "PLT.7.1.3"), JSR168_35, "If setSecure is called
with true, the transport for the request triggered with " +
"this URL must be secure (i.e. HTTPS)."),
JSR286_47(new TCK(47, "PLT.7.2.1"), "If the portlet application has
specified one or more PortletURLGenerationListener " +
"classes in the portlet deployment descriptor the portlet container must call:
the method filterActionURL method for " +
@@ -575,9 +637,9 @@
JSR286_52(new TCK(52, "PLT.8.5"), "If no matching annotated method is
found GenericPortlet will dispatch to the " +
"doView, doEdit or doHelp method depending on the portlet mode indicated in
the request using the doDispatch " +
"method or throws a PortletException if the mode is not VIEW, EDIT, or
HELP."),
- JSR286_53(new TCK(53, "PLT.8.6"), "As all portlets must support the
VIEW portlet mode, VIEW does not have to be " +
+ JSR286_53(new TCK(53, "PLT.8.6"), JSR168_37, "As all portlets must
support the VIEW portlet mode, VIEW does not have to be " +
"indicated."),
- JSR286_54(new TCK(54, "PLT.8.6"), "The portlet must not be invoked in a
portlet mode that has not been declared " +
+ JSR286_54(new TCK(54, "PLT.8.6"), JSR168_38, "The portlet must not be
invoked in a portlet mode that has not been declared " +
"as supported for a given markup type."),
JSR286_55(new TCK(55, "PLT.8.6"), Status.specUntestable(""),
"The portlet container must ignore all references to " +
"custom portlet modes that are not supported by the portal implementation, or
that have no mapping to portlet " +
@@ -585,7 +647,7 @@
// PLT.9 Window States
- JSR286_56(new TCK(56, "PLT.9.4"), "If a custom window state defined in
the deployment descriptor is not mapped to " +
+ JSR286_56(new TCK(56, "PLT.9.4"), JSR168_40, "If a custom window state
defined in the deployment descriptor is not mapped to " +
"a custom window state provided by the portal, portlets must not be invoked in
that window state."),
JSR286_57(new TCK(57, "PLT.9.5"), "As all portlets must at least
support the pre-defined window states NORMAL, " +
"MAXIMIZED, MINIMIZED, these window states do not have to be
indicated."),
@@ -599,13 +661,13 @@
"associated with each portlet application deployed into a portlet
container."),
JSR286_60(new TCK(60, "PLT.10.1"), Status.specUntestable(""),
"In cases where the container is distributed over many " +
"virtual machines, a portlet application will have an instance of the
PortletContext interface for each VM."),
- JSR286_61(new TCK(61, "PLT.10.3"), "The initialization parameters
accessible through the PortletContext must be the " +
+ JSR286_61(new TCK(61, "PLT.10.3"), JSR168_43, "The initialization
parameters accessible through the PortletContext must be the " +
"same that are accessible through the ServletContext of the portlet
application."),
- JSR286_62(new TCK(62, "PLT.10.3"), "A direct consequence of this is
that data stored in the ServletContext by " +
+ JSR286_62(new TCK(62, "PLT.10.3"), JSR168_44, "A direct consequence of
this is that data stored in the ServletContext by " +
"servlets or JSPs is accessible to portlets through the PortletContext and
vice versa."),
- JSR286_63(new TCK(63, "PLT.10.3"), "The PortletContext must offer
access to the same set of resources the " +
+ JSR286_63(new TCK(63, "PLT.10.3"), JSR168_45, "The PortletContext must
offer access to the same set of resources the " +
"ServletContext exposes."),
- JSR286_64(new TCK(64, "PLT.10.3"), "It must be accessible as a context
attribute using the same constant " +
+ JSR286_64(new TCK(64, "PLT.10.3"), JSR168_46, "It must be accessible as
a context attribute using the same constant " +
"defined in the Servlet Specification SVR 3 Servlet Context Chapter,
javax.servlet.context.tempdir."),
JSR286_65(new TCK(64, "PLT.10.3"), "The portlet context must follow the
same behavior and functionality that " +
"the servlet context has for virtual hosting and reloading considerations.
(see Servlet Specification SVR 3 " +
@@ -701,22 +763,22 @@
// PLT.12 Portlet Responses
- JSR286_100(new TCK(100, "PLT.12.1.3"), "The getNamespace method must
provide the portlet with a mechanism that " +
+ JSR286_100(new TCK(100, "PLT.12.1.3"), JSR168_86, "The getNamespace
method must provide the portlet with a mechanism that " +
"ensures the uniqueness of the returned string in the whole portal
page"),
JSR286_101(new TCK(101, "PLT.12.1.3"), "The getNamespace method must
return the same value for the lifetime of " +
"the portlet window."),
- JSR286_102(new TCK(102, "PLT.12.1.3"), "The getNamespace method must
return a valid identifier as defined in the " +
+ JSR286_102(new TCK(102, "PLT.12.1.3"), JSR168_88, "The getNamespace
method must return a valid identifier as defined in the " +
"3.8 Identifier Section of the Java Language Specification Second
Edition."),
- JSR286_103(new TCK(103, "PLT.12.2.1"), "A call to any of the
setRenderParameter methods must replace any " +
+ JSR286_103(new TCK(103, "PLT.12.2.1"), JSR168_72, "A call to any of the
setRenderParameter methods must replace any " +
"parameter with the same name previously set."),
- JSR286_104(new TCK(104, "PLT.12.2.2"), "If a portlet attempts to set a
portlet mode that it is not allowed to switch " +
+ JSR286_104(new TCK(104, "PLT.12.2.2"), JSR168_69, "If a portlet
attempts to set a portlet mode that it is not allowed to switch " +
"to, a PortletModeException must be thrown."),
- JSR286_105(new TCK(105, "PLT.12.2.2"), "If a portlet attempts to set a
window state that it is not allowed to switch " +
+ JSR286_105(new TCK(105, "PLT.12.2.2"), JSR168_68, "If a portlet
attempts to set a window state that it is not allowed to switch " +
"to, a WindowStateException must be thrown."),
- JSR286_106(new TCK(106, "PLT.12.3.1"), "The sendRedirect(String
location) method instructs the portal/portlet-container " +
+ JSR286_106(new TCK(106, "PLT.12.3.1"), JSR168_65, "The
sendRedirect(String location) method instructs the portal/portlet-container " +
"to set the appropriate headers and content body to redirect the user to a
different URL. A fully qualified URL " +
"or a full path URL must be specified. If a relative path URL is given, an
IllegalArgumentException must be thrown."),
- JSR286_107(new TCK(107, "PLT.12.3.1"), "If the sendRedirect(String
location) method is called after the setPortletMode, " +
+ JSR286_107(new TCK(107, "PLT.12.3.1"), JSR168_66, "If the
sendRedirect(String location) method is called after the setPortletMode, " +
"setWindowState, setRenderParameter or setRenderParameters methods of the
ActionResponse interface, an " +
"IllegalStateException must be thrown and the redirection must not be
executed."),
JSR286_108(new TCK(108, "PLT.12.3.1"), "If a relative path URL is
given, an IllegalArgumentException must be thrown."),
@@ -726,22 +788,22 @@
"key provided with the renderUrlParamName parameter."),
JSR286_111(new TCK(111, "PLT.12.3.1"), "New values for portlet mode,
window state, private or public render " +
"parameters must be encoded in the attached render URLcxi,"),
- JSR286_112(new TCK(112, "PLT.12.3.1"), "For the render response the
setContentType method must throw an " +
+ JSR286_112(new TCK(112, "PLT.12.3.1"), JSR168_76, "For the render
response the setContentType method must throw an " +
"IllegalArgumentException if the content type set does not match (including
wildcard matching) any of the " +
"content types returned by the getResponseContentType method of the
PortletRequest objectcxii."),
- JSR286_113(new TCK(113, "PLT.12.3.1"), "If the portlet has set a
content type, the getContentType method must " +
+ JSR286_113(new TCK(113, "PLT.12.3.1"), JSR168_78, "If the portlet has
set a content type, the getContentType method must " +
"return it. Otherwise, the getContentType method must return null."),
- JSR286_114(new TCK(114, "PLT.12.5.2"), "A portlet may generate its
content by writing to the OutputStream or to " +
+ JSR286_114(new TCK(114, "PLT.12.5.2"), JSR168_79, "A portlet may
generate its content by writing to the OutputStream or to " +
"the Writer of the MimeResponse object. A portlet must use only one of these
objects. The portlet container must " +
"throw an IllegalStateException if a portlet attempts to use both."),
- JSR286_115(new TCK(115, "PLT.12.5.5"), "The getBufferSize method
returns the size of the underlying buffer being " +
+ JSR286_115(new TCK(115, "PLT.12.5.5"), JSR168_80, "The getBufferSize
method returns the size of the underlying buffer being " +
"used. If no buffering is being used, this method must return the int value of
0 (zero)."),
- JSR286_116(new TCK(116, "PLT.12.5.5"), "The portlet can request a
preferred buffer size by using the setBufferSize " +
+ JSR286_116(new TCK(116, "PLT.12.5.5"), JSR168_81, "The portlet can
request a preferred buffer size by using the setBufferSize " +
"method. The buffer assigned is not required to be the size requested by the
portlet, but must be at least as " +
"large as the size requested."),
- JSR286_117(new TCK(117, "PLT.12.5.5"), "The reset method clears data in
the buffer when the response is not " +
+ JSR286_117(new TCK(117, "PLT.12.5.5"), JSR168_82, "The reset method
clears data in the buffer when the response is not " +
"committed. Properties set by the portlet prior to the reset call must be
cleared as well."),
- JSR286_118(new TCK(118, "PLT.12.5.5"), "If the response is committed
and the reset or resetBuffer method is called, " +
+ JSR286_118(new TCK(118, "PLT.12.5.5"), JSR168_83, "If the response is
committed and the reset or resetBuffer method is called, " +
"an IllegalStateException must be thrown."),
JSR286_119(new TCK(119, "PLT.12.5.5"), "The response and its associated
buffer must be unchanged."),
JSR286_120(new TCK(120, "PLT.12.5.5"), "When using a buffer, the
container must immediately flush the contents of " +
@@ -817,73 +879,74 @@
// PLT.17 Portlet Preferences
JSR286_148(new TCK(148, "PLT.17.1"), "Preferences attributes can be set
to null"),
- JSR286_149(new TCK(149, "PLT.17.1"), "Preferences values must not be
modified if the values in the Map are altered"),
- JSR286_150(new TCK(150, "PLT.17.1"), "The reset method must reset a
preference attribute to its default value. " +
+ JSR286_149(new TCK(149, "PLT.17.1"), JSR168_91, "Preferences values
must not be modified if the values in the Map are altered"),
+ JSR286_150(new TCK(150, "PLT.17.1"), JSR168_92, "The reset method must
reset a preference attribute to its default value. " +
"If there is no default value, the preference attribute must be
deleted."),
- JSR286_151(new TCK(151, "PLT.17.1"), "If a preference attribute is read
only, the setValue, setValues and reset " +
+ JSR286_151(new TCK(151, "PLT.17.1"), JSR168_93, "If a preference
attribute is read only, the setValue, setValues and reset " +
"methods must throw a ReadOnlyException when the portlet is in any of the
standard modes."),
- JSR286_152(new TCK(152, "PLT.17.1"), "The store method must persist all
the changes made to the PortletPreferences " +
+ JSR286_152(new TCK(152, "PLT.17.1"), JSR168_94, "The store method must
persist all the changes made to the PortletPreferences " +
"object in the persistent store."),
- JSR286_153(new TCK(153, "PLT.17.1"), "The store method must be
conducted as an atomic transaction regardless of how " +
+ JSR286_153(new TCK(153, "PLT.17.1"), JSR168_95, "The store method must
be conducted as an atomic transaction regardless of how " +
"many preference attributes have been modified."),
JSR286_154(new TCK(154, "PLT.17.1"), "All changes made to
PortletPreferences object not followed by a call to the " +
"store method must be discarded when the portlet finishes the processAction,
processEvent, or serveResource method."),
- JSR286_155(new TCK(155, "PLT.17.1"), "If the store method is invoked
within the scope of a render method invocation, " +
+ JSR286_155(new TCK(155, "PLT.17.1"), JSR168_97, "If the store method is
invoked within the scope of a render method invocation, " +
"it must throw an IllegalStateException."),
JSR286_156(new TCK(156, "PLT.17.1"), "The PortletPreferences object
must reflect the current values of the " +
"persistent store when the portlet container invokes the processAction,
processEvent, render and serveResource " +
"methods of the portlet."),
- JSR286_157(new TCK(157, "PLT.17.3"), "If a preference attribute
definition does not contain the read-only element " +
+ JSR286_157(new TCK(157, "PLT.17.3"), JSR168_99, "If a preference
attribute definition does not contain the read-only element " +
"set to true, the preference attribute is modifiable when the portlet is
processing an action request in any " +
"of the standard portlet modes (VIEW, EDIT or HELP)."),
- JSR286_158(new TCK(158, "PLT.17.3"), "Portlets are not restricted to
use preference attributes defined in the " +
+ JSR286_158(new TCK(158, "PLT.17.3"), JSR168_100, "Portlets are not
restricted to use preference attributes defined in the " +
"deployment descriptor. They can programmatically add preference attributes
using names not defined in the " +
"deployment descriptor. These preferences attributes must be treated as
modifiable attributes."),
- JSR286_159(new TCK(159, "PLT.17.4"), "When a validator is associated
with the preferences of a portlet definition, " +
+ JSR286_159(new TCK(159, "PLT.17.4"), JSR168_103, "When a validator is
associated with the preferences of a portlet definition, " +
"the store method of the PortletPreferences implementation must invoke the
validate method of the validator " +
"before writing the changes to the persistent store."),
- JSR286_160(new TCK(160, "PLT.17.4"), "If a ValidatorException is
thrown, the portlet container must cancel the " +
+ JSR286_160(new TCK(160, "PLT.17.4"), JSR168_104, "If a
ValidatorException is thrown, the portlet container must cancel the " +
"store operation and it must propagate the exception to the portlet."),
- JSR286_161(new TCK(161, "PLT.17.4"), "If the validation is successful,
the store operation must be completed"),
+ JSR286_161(new TCK(161, "PLT.17.4"), JSR168_105, "If the validation is
successful, the store operation must be completed"),
// PLT.18 Sessions
- JSR286_162(new TCK(162, "PLT.18.1"), "For portlets within the same
portlet application, a portlet container must " +
+ JSR286_162(new TCK(162, "PLT.18.1"), JSR168_106, "For portlets within
the same portlet application, a portlet container must " +
"ensure that every portlet request generated as result of a group of requests
originated from the portal to " +
"complete a single client request receive or acquire the same
session."),
- JSR286_163(new TCK(163, "PLT.18.1"), "In addition, if within these
portlet requests more than one portlet creates " +
+ JSR286_163(new TCK(163, "PLT.18.1"), JSR168_107, "In addition, if
within these portlet requests more than one portlet creates " +
"a session, the session object must be the same for all the portlets in the
same portlet application"),
- JSR286_164(new TCK(164, "PLT.18.2"), "PortletSession objects must be
scoped at the portlet application context level."),
- JSR286_165(new TCK(165, "PLT.18.2"), "The portlet container must not
share the PortletSession object or the " +
+ JSR286_164(new TCK(164, "PLT.18.2"), JSR168_108, "PortletSession
objects must be scoped at the portlet application context level."),
+ JSR286_165(new TCK(165, "PLT.18.2"), JSR168_109, "The portlet container
must not share the PortletSession object or the " +
"attributes stored in it among different portlet applications or among
different user sessions."),
- JSR286_166(new TCK(166, "PLT.18.3"), "Any object stored in the session
using the APPLICATION_SCOPE is available " +
+ JSR286_166(new TCK(166, "PLT.18.3"), JSR168_110, "Any object stored in
the session using the APPLICATION_SCOPE is available " +
"to any other portlet that belongs to the same portlet application and that
handles a request identified as " +
"being a part of the same session."),
- JSR286_167(new TCK(167, "PLT.18.3"), "Objects stored in the session
using the PORTLET_SCOPE must be available to " +
+ JSR286_167(new TCK(167, "PLT.18.3"), JSR168_111, "Objects stored in the
session using the PORTLET_SCOPE must be available to " +
"the portlet during requests for the same portlet window that the objects
where stored from."),
JSR286_168(new TCK(168, "PLT.18.3"), "The object must be stored in the
APPLICATION_SCOPE with the following " +
"fabricated attribute name
‘javax.portlet.p.<ID>?<ATTRIBUTE_NAME>’. <ID> is a unique identification
for the " +
- "portlet window (assigned by the portal/portlet-container) that must be equal
to the ID returned by the PortletRequest.getWindowID() method and not contain a ‘?’
character."),
- JSR286_169(new TCK(169, "PLT.18.4"), "The container must ensure that
all attributes placed in the PortletSession " +
+ "portlet window (assigned by the portal/portlet-container) that must be equal
to the ID returned by the" +
+ " PortletRequest.getWindowID() method and not contain a ‘?’
character."),
+ JSR286_169(new TCK(169, "PLT.18.4"), JSR168_113, "The container must
ensure that all attributes placed in the PortletSession " +
"are also available in the HttpSession of the portlet application. A direct
consequence of this is that data " +
"stored in the HttpSession by servlets or JSPs of the Portlet Application is
accessible to portlets through " +
"the PortletSession in the portlet application scope."),
- JSR286_170(new TCK(170, "PLT.18.4"), "Conversely, data stored by
portlets in the PortletSession in the portlet " +
+ JSR286_170(new TCK(170, "PLT.18.4"), JSR168_114, "Conversely, data
stored by portlets in the PortletSession in the portlet " +
"application scope is accessible to servlets and JSPs through the
HttpSession."),
- JSR286_171(new TCK(171, "PLT.18.4"), "If the HttpSession object is
invalidated, the PortletSession object must " +
+ JSR286_171(new TCK(171, "PLT.18.4"), JSR168_115, "If the HttpSession
object is invalidated, the PortletSession object must " +
"also be invalidated by the portlet container."),
- JSR286_172(new TCK(172, "PLT.18.4"), "If the PortletSession object is
invalidated by a portlet, the portlet " +
+ JSR286_172(new TCK(172, "PLT.18.4"), JSR168_116, "If the PortletSession
object is invalidated by a portlet, the portlet " +
"container must invalidate the associated HttpSession object."),
- JSR286_173(new TCK(173, "PLT.18.4.1"), "The getAttribute, setAttribute,
removeAttribute and getAttributeNames " +
+ JSR286_173(new TCK(173, "PLT.18.4.1"), JSR168_117, "The getAttribute,
setAttribute, removeAttribute and getAttributeNames " +
"methods of the PortletSession interface must provide the same functionality
as the methods of the HttpSession " +
"interface with identical names adhering to the following rules: The attribute
names must be the same if " +
"APPLICATION_SCOPE scope is used."),
- JSR286_174(new TCK(174, "PLT.18.4.1"), "The getAttribute, setAttribute,
removeAttribute and getAttributeNames " +
+ JSR286_174(new TCK(174, "PLT.18.4.1"), JSR168_118, "The getAttribute,
setAttribute, removeAttribute and getAttributeNames " +
"methods of the PortletSession interface must provide the same functionality
as the methods of the HttpSession " +
"interface with identical names adhering to the following rules: The attribute
name has to conform with the " +
"specified prefixing if PORTLET_SCOPE is used."),
- JSR286_175(new TCK(175, "PLT.18.4.1"), "The getAttribute, setAttribute,
removeAttribute and getAttributeNames " +
+ JSR286_175(new TCK(175, "PLT.18.4.1"), JSR168_119, "The getAttribute,
setAttribute, removeAttribute and getAttributeNames " +
"methods of the PortletSession interface must provide the same functionality
as the methods of the HttpSession " +
"interface with identical names adhering to the following rules: The variant
of these methods that does not " +
"receive a scope must be treated as PORTLET_SCOPE."),
@@ -1249,16 +1312,21 @@
// PLT.24 Security
- JSR286_307(new TCK(307, "PLT.24.2"), "The values that the Portlet API
getRemoteUser and getUserPrincipal methods " +
+ JSR286_307(new TCK(307, "PLT.24.2"), Status.postponed("No security/auth
tests for now"), "The values that the Portlet" +
+ " API getRemoteUser and getUserPrincipal methods " +
"return the same values returned by the equivalent methods of the servlet
response object."),
- JSR286_308(new TCK(308, "PLT.24.3"), "The container uses the mapping of
security-role-ref to security-role when " +
+ JSR286_308(new TCK(308, "PLT.24.3"), Status.postponed("No security/auth
tests for now"), "The container uses the " +
+ "mapping of security-role-ref to security-role when " +
"determining the return value of the call."),
- JSR286_309(new TCK(309, "PLT.24.3"), "If the security-role-ref element
does not define a role-link element, the " +
+ JSR286_309(new TCK(309, "PLT.24.3"), Status.postponed("No security/auth
tests for now"), "If the security-role-ref" +
+ " element does not define a role-link element, the " +
"container must default to checking the role-name element argument against the
list of securityrole elements " +
"defined in the web.xml deployment descriptor of the portlet
application."),
- JSR286_310(new TCK(310, "PLT.24.4"), "When it is specified, the
container must propagate the security identity of " +
+ JSR286_310(new TCK(310, "PLT.24.4"), Status.postponed("No security/auth
tests for now"), "When it is specified, the " +
+ "container must propagate the security identity of " +
"the caller to the EJB layer in terms of the security role name defined in the
run-as element."),
- JSR286_311(new TCK(311, "PLT.24.4"), "The security role name must be
one of the security role names defined for the " +
+ JSR286_311(new TCK(311, "PLT.24.4"), Status.postponed("No security/auth
tests for now"), "The security role name must " +
+ "be one of the security role names defined for the " +
"web.xml deployment descriptor."),
@@ -1268,7 +1336,8 @@
// PLT.26 Portlet Tag Library
- JSR286_312(new TCK(312, "PLT.26.1"), "The portlet-container must
provide an implementation of the portlet tag library"),
+ JSR286_312(new TCK(312, "PLT.26.1"), Status.disabled("Every testcase
test this"), "The portlet-container must provide " +
+ "an implementation of the portlet tag library"),
JSR286_313(new TCK(313, "PLT.26.1"), "The defineObjects tag must define
the following variables in the JSP page: " +
"[REF TO THE SPEC]"),
JSR286_314(new TCK(314, "PLT.26.2"), Status.specUntestable(""),
"The defineObjects tag must not define any " +
@@ -1358,9 +1427,120 @@
//
******************************************************************************************************************
- API_BASE_URL_1(new API(BaseURL.class), "parameter escapeXML"),
- API_BASE_URL_2(new API(BaseURL.class), "write methods throws an IOException is
propagated to caller")
+ API286_ACTION_REQUEST_1(new API(ActionRequest.class), Status.disabled("no
methods"), "none"),
+
+ API286_ACTION_RESPONSE_1(new API(ActionResponse.class), "sendRedirect()"),
+
+ API286_BASE_URL_1(new API(BaseURL.class), "setParameter()"),
+ API286_BASE_URL_2(new API(BaseURL.class), "setSecure()"),
+ API286_BASE_URL_3(new API(BaseURL.class), "toString()"),
+ API286_BASE_URL_4(new API(BaseURL.class), "getParameterMap()"),
+ API286_BASE_URL_5(new API(BaseURL.class), "write()"),
+ API286_BASE_URL_6(new API(BaseURL.class), "addProperty()"),
+ API286_BASE_URL_7(new API(BaseURL.class), "setProperty()"),
+
+ API286_CACHE_CONTROL(new API(CacheControl.class), ""),
+
+ API286_CLIENT_DATA_REQUEST(new API(ClientDataRequest.class), ""),
+
+ API286_EVENT(new API(Event.class), ""),
+
+ API286_EVENT_PORTLET(new API(EventPortlet.class), ""),
+
+ API286_EVENT_REQUEST(new API(EventRequest.class), ""),
+
+ API286_EVENT_RESPONSE(new API(EventResponse.class), ""),
+
+ API286_GENERIC_PORTLET(new API(GenericPortlet.class), ""),
+
+ API286_MIME_RESPONSE(new API(MimeResponse.class), ""),
+
+ API286_PORTAL_CONTEXT(new API(PortalContext.class), ""),
+
+ API286_PORTLET(new API(Portlet.class), ""),
+
+ API286_PORTLET_CONFIG(new API(PortletConfig.class), ""),
+
+ API286_PORTLET_EXCEPTION(new API(PortletException.class), ""),
+
+ API286_PORTLET_MODE(new API(PortletMode.class), ""),
+
+ API286_PORTLET_MODE_EXCEPTION(new API(PortletModeException.class), ""),
+
+ API286_PORTLET_PREFERENCES(new API(PortletPreferences.class), ""),
+
+ API286_PORTLET_REQUEST(new API(PortletRequest.class), ""),
+
+ API286_PORTLET_REQUEST_DISPATCHER(new API(PortletRequestDispatcher.class),
""),
+
+ API286_PORTLET_RESPONSE(new API(PortletResponse.class), ""),
+
+ API286_PORTLET_SECURITY_EXCEPTION(new API(PortletSecurityException.class),
""),
+
+ API286_PORTLET_SESSION(new API(PortletSession.class), ""),
+
+ API286_PORTLET_SESSION_UTIL(new API(PortletSessionUtil.class), ""),
+
+ API286_PORTLET_URL(new API(PortletURL.class), ""),
+
+ API286_PORTLET_URL_GENERATION_LISTENER(new API(PortletURLGenerationListener.class),
""),
+
+ API286_PREFERENCES_VALIDATOR(new API(PreferencesValidator.class), ""),
+
+ API286_PROCESS_ACTION(new API(ProcessAction.class), ""),
+
+ API286_PROCESS_EVENT(new API(ProcessEvent.class), ""),
+
+ API286_RENDER_MODE(new API(RenderMode.class), ""),
+
+ API286_RENDER_REQUEST(new API(RenderRequest.class), ""),
+
+ API286_RENDER_RESPONSE(new API(RenderResponse.class), ""),
+
+ API286_RESOURCE_REQUEST(new API(ResourceRequest.class), ""),
+
+ API286_RESOURCE_RESPONSE(new API(ResourceResponse.class), ""),
+
+ API286_RESOURCE_SERVING_PORTLET(new API(ResourceServingPortlet.class), ""),
+
+ API286_RESOURCE_URL(new API(ResourceURL.class), ""),
+
+ API286_STATE_AWARE_RESPONSE(new API(StateAwareResponse.class), ""),
+
+ API286_WINDOW_STATE(new API(WindowState.class), ""),
+
+
+ // Portlet Filter
+
+ API286_ACTION_FILTER(new API(ActionFilter.class), ""),
+
+ API286_ACTION_REQUEST_WRAPPER(new API(ActionRequestWrapper.class), ""),
+
+ API286_ACTION_RESPONSE_WRAPPER(new API(ActionResponseWrapper.class), ""),
+
+ API286_EVENT_FILTER(new API(EventFilter.class), ""),
+
+ API286_EVENT_REQUEST_WRAPPER(new API(EventRequestWrapper.class), ""),
+
+ API286_EVENT_RESPONSE_WRAPPER(new API(EventResponseWrapper.class), ""),
+
+ API286_FILTER_CHAIN(new API(FilterChain.class), ""),
+
+ API286_FILTER_CONFIG(new API(FilterConfig.class), ""),
+
+ API286_PORTLET_FILTER(new API(PortletFilter.class), ""),
+
+ API286_RENDER_REQUEST_WRAPPER(new API(RenderRequestWrapper.class), ""),
+
+ API286_RENDER_RESPONSE_WRAPPER(new API(RenderResponseWrapper.class), ""),
+
+ API286_RESOURCE_FILTER(new API(ResourceFilter.class), ""),
+
+ API286_RESOURCE_REQUEST_WRAPPER(new API(ResourceRequestWrapper.class), ""),
+
+ API286_RESOURCE_RESPONSE_WRAPPER(new API(ResourceResponseWrapper.class),
""),
+
;
/**
@@ -1407,7 +1587,7 @@
public String toString()
{
- return "TCK[index=" + index + ",section=" + section +
"]";
+ return "TCK[index=" + index + ";section=" + section +
"]";
}
}
@@ -1475,7 +1655,10 @@
public static class Active extends Status
{
-
+ public String toString()
+ {
+ return "ACTIVE";
+ }
}
public static class Inactive extends Status
@@ -1507,6 +1690,11 @@
{
return msg;
}
+
+ public String toString()
+ {
+ return "INACTIVE[" + type.name() + ";" + getMessage() +
"]";
+ }
}
public static class Untestable extends Inactive
@@ -1532,6 +1720,12 @@
{
return kind;
}
+
+
+ public String toString()
+ {
+ return "UNTESTABLE[" + kind.name() + ";" + getMessage() +
"]";
+ }
}
public static class Duplicate extends Active
@@ -1558,6 +1752,11 @@
{
return description;
}
+
+ public String toString()
+ {
+ return "DUPLICATED[" + target != null ? target.name() : "" +
";" + description + "]";
+ }
}
/** . */
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/ResultProducingListener.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/ResultProducingListener.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/ResultProducingListener.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -55,6 +55,10 @@
try
{
+ //Add 168 assertions test cases to related 286
+ mergeAssertions();
+
+
if (!TestCaseAnnotationProcessor.jsr168Assertions.keySet().isEmpty())
{
print(TestCaseAnnotationProcessor.jsr168Assertions, jsr168File,
"JSR168_", jsr168Max);
@@ -74,36 +78,117 @@
}
}
+
+ private void mergeAssertions()
+ {
+ Map<String, Set<String>> jsr168a =
TestCaseAnnotationProcessor.jsr168Assertions;
+ Map<String, Set<String>> jsr286a =
TestCaseAnnotationProcessor.jsr286Assertions;
+
+ Set<String> names286 = jsr286a.keySet();
+
+ for (String name286 : names286)
+ {
+
+ Assertion assertion286 = getAssertion(name286);
+
+ Assertion related168 = assertion286.getAssertion();
+
+ if(related168 != null)
+ {
+ jsr286a.get(name286).addAll(jsr168a.get(related168.name()));
+ }
+
+ }
+ }
+
+
+
private void print(Map<String, Set<String>> map, String fileName, String
pre, int max) throws Exception
{
+ // Simple stats
+
+ int total = 0;
+ int tested = 0;
+ int not_tested = 0;
+ int inactive = 0;
+
File f = new File(fileName);
Writer writer = new FileWriter(f, false);
-
+
+ StringBuilder output = new StringBuilder();
for (int i = 1; i <= max; i++)
{
+ total++;
+
String assertionName = pre + i;
Set<String> testCases = map.get(assertionName);
+
+ // Grab Assertion object based on name
+
Assertion assertion = getAssertion(assertionName);
String description = assertion != null ?
assertion.getDescription().replaceAll(",", " ").trim() :
"";
- writer.write(assertionName + ", " + description + '\n');
+
+ if (assertion != null && assertion.getRef() != null)
+ {
+
output.append(assertionName).append(",").append(assertion.getRef().toString()).append('\n');
+ output.append("DESCRIPTION:
,").append(description).append('\n');
+ }
+ else
+ {
+
output.append(assertionName).append(",").append(description).append('\n');
+ }
+
+
+ if (assertion != null && assertion.getStatus() != null)
+ {
+ Assertion.Status status = assertion.getStatus();
+ output.append("STATUS:,").append(status).append("\n");
+
+ if (status instanceof Assertion.Inactive || status instanceof
Assertion.Duplicate)
+ {
+ inactive++;
+ }
+ }
+
+
if (testCases != null)
{
+ tested++;
for (String testCase : testCases)
{
- writer.write(" ," + testCase + "\n");
+ output.append("TEST_CASE:
,").append(testCase).append("\n");
}
}
+ else
+ {
+ not_tested++;
+ output.append("TEST_CASE:,NOT_TESTED\n");
+ }
- writer.write(" ,\n");
+ output.append(" ,\n");
}
+ output.append("\n\n");
+
+ writer.write("STATISTICS:,**************************\n");
+ writer.write("TOTAL:," + total + "\n");
+ writer.write("TESTED:," + tested + "\n");
+ writer.write("NOT TESTED:," + not_tested + "\n");
+ writer.write("INACTIVE:," + inactive + " (POSTPONED; TODO; DISABLED;
UNTESTABLE or DUPLICATE) \n");
+ float ratio = (float)tested/(float)(total-inactive);
+ writer.write("TESTED RATIO:," + ratio + " ( TESTED/(TOTAL-INACTIVE)
) \n");
+
+ writer.write("\n\n\n\n");
+ writer.write(output.toString());
+ writer.write("\n");
+
writer.close();
}
Modified:
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/TestCaseAnnotationProcessor.java
===================================================================
---
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/TestCaseAnnotationProcessor.java 2008-03-19
13:27:45 UTC (rev 10333)
+++
modules/portlet/trunk/portlet/src/test/java/org/jboss/portal/unit/reports/TestCaseAnnotationProcessor.java 2008-03-19
14:33:37 UTC (rev 10334)
@@ -71,11 +71,14 @@
public static String jsr286AssertionPre = "JSR286";
+ public static String api286AssertionPre = "API286";
public static Map<String, Set<String>> jsr168Assertions = new
HashMap<String, Set<String>>();
public static Map<String, Set<String>> jsr286Assertions = new
HashMap<String, Set<String>>();
+ public static Map<String, Set<String>> api286Assertions = new
HashMap<String, Set<String>>();
+
//private int counter;
public TestCaseAnnotationProcessor(AnnotationProcessorEnvironment env) {
@@ -138,6 +141,10 @@
{
am = jsr286Assertions;
}
+ else if (tck.startsWith(api286AssertionPre))
+ {
+ am = api286Assertions;
+ }
else
{
continue;