Implemented all test cases of RenderState and MutableRenderState. 6 Tests in this module are still failing both on browser and test suite.
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState.java b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState.java
index 0c16bd3..e4337ca 100644
--- a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState.java
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState.java
@@ -78,6 +78,22 @@
ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
/*
+ * TestCase: V3RenderStateTests_SPEC1_12_RenderState_general
+ */
+ /*
+ * Details:
+ * "RenderState interface provides read-only access to the render state."
+ */
+ {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GENERAL);
+ result.setTcSuccess(true);
+ result.appendTcDetail(
+ "There are no setter methods in RenderState interface.");
+ result.writeTo(writer);
+ }
+
+ /*
* TestCase: V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters
*/
/*
@@ -101,7 +117,7 @@
mutableRenderParams.setValue("tr0_private", "true");
mutableRenderParams.setValue("tr0_public", "true");
TestLink tb = new TestLink(
- "V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters",
+ V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS,
renderURL);
tb.writeTo(writer);
}
@@ -152,7 +168,7 @@
RenderURL renderURL = portletResp.createRenderURL();
// renderURL.setPortletMode(PortletMode.UNDEFINED);
TestLink tb = new TestLink(
- "V3RenderStateTests_SPEC1_12_RenderState_getPortletMode2",
+ V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETPORTLETMODE2,
renderURL);
tb.writeTo(writer);
}
@@ -187,7 +203,7 @@
RenderURL renderURL = portletResp.createRenderURL();
// renderURL.setWindowState(WindowState.UNDEFINED);
TestLink tb = new TestLink(
- "V3RenderStateTests_SPEC1_12_RenderState_getWindowState2",
+ V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETWINDOWSTATE2,
renderURL);
tb.writeTo(writer);
}
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState2.java b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState2.java
new file mode 100644
index 0000000..ea9c9de
--- /dev/null
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC1_12_RenderState2.java
@@ -0,0 +1,92 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package javax.portlet.tck.portlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.annotations.PortletConfiguration;
+import javax.portlet.tck.beans.TestResult;
+import javax.portlet.tck.util.ModuleTestCaseDetails;
+
+import static javax.portlet.tck.util.ModuleTestCaseDetails.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case
+ * names are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the
+ * additionalTCs.xml file into the complete list of test case names for
+ * execution by the driver.
+ *
+ */
+
+@PortletConfiguration(portletName = "RenderStateTests_SPEC1_12_RenderState2")
+public class RenderStateTests_SPEC1_12_RenderState2 implements Portlet {
+
+ @Override
+ public void init(PortletConfig config) throws PortletException {
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void processAction(ActionRequest portletReq,
+ ActionResponse portletResp) throws PortletException, IOException {
+ }
+
+ @Override
+ public void render(RenderRequest portletReq, RenderResponse portletResp)
+ throws PortletException, IOException {
+
+ PrintWriter writer = portletResp.getWriter();
+ ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+
+ /*
+ * TestCase: V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters3
+ */
+ /*
+ * Details:
+ * "If no render parameters are available, the object will be empty."
+ */
+ {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS3);
+ if (portletReq.getRenderParameters().isEmpty()) {
+ result.setTcSuccess(true);
+ } else {
+ result.appendTcDetail(
+ "Failed because render parameters are not empty. RenderState.getRenderParameters() method returned "
+ + portletReq.getRenderParameters().size()
+ + " render parameters.");
+ }
+ result.writeTo(writer);
+ }
+
+ }
+
+}
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState.java b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState.java
new file mode 100644
index 0000000..415985c
--- /dev/null
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState.java
@@ -0,0 +1,633 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package javax.portlet.tck.portlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import javax.portlet.ActionParameters;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.ActionURL;
+import javax.portlet.GenericPortlet;
+import javax.portlet.MutableRenderParameters;
+import javax.portlet.PortletException;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderMode;
+import javax.portlet.RenderParameters;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
+import javax.portlet.annotations.CustomPortletMode;
+import javax.portlet.annotations.CustomWindowState;
+import javax.portlet.annotations.PortletApplication;
+import javax.portlet.annotations.PortletConfiguration;
+import javax.portlet.annotations.Supports;
+import javax.portlet.tck.beans.TestButton;
+import javax.portlet.tck.beans.TestResult;
+import javax.portlet.tck.constants.Constants;
+import javax.portlet.tck.util.ModuleTestCaseDetails;
+
+import static javax.portlet.tck.util.ModuleTestCaseDetails.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case
+ * names are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the
+ * additionalTCs.xml file into the complete list of test case names for
+ * execution by the driver.
+ *
+ */
+
+@PortletApplication(customPortletModes = {
+ @CustomPortletMode(name = "custom1", portalManaged = false) }, customWindowStates = {
+ @CustomWindowState(name = "custom1") })
+@PortletConfiguration(portletName = "RenderStateTests_SPEC2_12_MutableRenderState", publicParams = {
+ "tr0_public" }, supports = {
+ @Supports(mimeType = "text/html", portletModes = { "view", "help",
+ "edit", "custom1" }, windowStates = {
+ "maximized, minimized, normal, custom1" }) })
+public class RenderStateTests_SPEC2_12_MutableRenderState
+ extends GenericPortlet {
+
+ @Override
+ public void processAction(ActionRequest portletReq,
+ ActionResponse portletResp) throws PortletException, IOException {
+
+ ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+ StringWriter writer = new StringWriter();
+
+ ActionParameters actionParams = portletReq.getActionParameters();
+ String action = actionParams.getValue(Constants.BUTTON_PARAM_NAME);
+ MutableRenderParameters renderParams = portletResp.getRenderParameters();
+
+ if (action != null) {
+ if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters
+ */
+ /*
+ * Details:
+ * "Returns an MutableRenderParameters object representing the private and public render parameters."
+ */
+ if (!renderParams.isEmpty() && renderParams.isPublic("tr0_public")
+ && renderParams.getValue("tr0_public") != null
+ && renderParams.getValue("tr0_public").equals("true")
+ && renderParams.getValue("tr0_private") != null
+ && renderParams.getValue("tr0_private").equals("true")) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ }
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS2)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters2
+ */
+ /*
+ * Details:
+ * "The MutableRenderParameters object return by this method is mutable."
+ */
+ renderParams.setValue("tr1", "true");
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode
+ */
+ /*
+ * Details:
+ * "Sets the portlet mode of a portlet to the given portlet mode."
+ */
+ portletResp.setPortletMode(PortletMode.HELP);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE2)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode2
+ */
+ /*
+ * Details:
+ * "A custom portlet mode declared in deployment descriptor could be set."
+ */
+ portletResp.setPortletMode(new PortletMode("custom1"));
+ renderParams.setValue("tr_setPortlet2", "true");
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE3)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode3
+ */
+ /*
+ * Details:
+ * "Not more than one portlet mode can be set. If more than one portlet mode is set, only the last one set is valid."
+ */
+ portletResp.setPortletMode(PortletMode.EDIT);
+ portletResp.setPortletMode(PortletMode.HELP);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE4)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode4
+ */
+ /*
+ * Details:
+ * "Throws PortletModeException if the portlet cannot switch to this mode."
+ */
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE4);
+ try {
+ portletResp.setPortletMode(PortletMode.UNDEFINED);
+ } catch (PortletModeException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE5)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode5
+ */
+ /*
+ * Details:
+ * "Throws IllegalStateException if the method is invoked after sendRedirect has been called."
+ */
+ // TODO: Fix it.
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE5);
+ try {
+ portletResp.sendRedirect("");
+ portletResp.setPortletMode(PortletMode.UNDEFINED);
+ } catch (IllegalStateException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE6)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode6
+ */
+ /*
+ * Details:
+ * "Throws IllegalArgumentException if the input parameter is null."
+ */
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE6);
+ try {
+ portletResp.setPortletMode(null);
+ } catch (IllegalArgumentException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState
+ */
+ /*
+ * Details:
+ * "Sets the window state of a portlet to the given window state."
+ */
+ portletResp.setWindowState(WindowState.NORMAL);
+ renderParams.setValue("tr_setWindow", "true");
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE2)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState2
+ */
+ /*
+ * Details:
+ * "A custom window state declared in deployment descriptor could be set."
+ */
+ portletResp.setWindowState(new WindowState("custom1"));
+ renderParams.setValue("tr_setWindow2", "true");
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE3)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState3
+ */
+ /*
+ * Details:
+ * "Not more than one window state can be set. If more than one window state is set, only the last one set is valid."
+ */
+ portletResp.setWindowState(WindowState.MAXIMIZED);
+ portletResp.setWindowState(WindowState.NORMAL);
+ renderParams.setValue("tr_setWindow3", "true");
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE4)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState4
+ */
+ /*
+ * Details:
+ * "Throws WindowStateException if the portlet cannot switch to this state."
+ */
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE4);
+ try {
+ portletResp.setWindowState(WindowState.UNDEFINED);
+ } catch (WindowStateException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE5)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState5
+ */
+ /*
+ * Details:
+ * "Throws IllegalStateException if the method is invoked after sendRedirect has been called."
+ */
+ // TODO: Fix it.
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE5);
+ try {
+ portletResp.sendRedirect("");
+ portletResp.setWindowState(WindowState.UNDEFINED);
+ } catch (IllegalStateException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ } else if (action.equals(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE6)) {
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState6
+ */
+ /*
+ * Details:
+ * "Throws IllegalArgumentException if the input parameter is null."
+ */
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE6);
+ try {
+ portletResp.setWindowState(null);
+ } catch (IllegalArgumentException e) {
+ result.setTcSuccess(true);
+ result.appendTcDetail(e.toString());
+ }
+ result.writeTo(writer);
+ }
+ }
+
+ PortletSession ps = portletReq.getPortletSession();
+ ps.setAttribute(
+ Constants.RESULT_ATTR_PREFIX
+ + "RenderStateTests_SPEC2_12_MutableRenderState",
+ writer.toString());
+
+ }
+
+ @Override
+ public void render(RenderRequest portletReq, RenderResponse portletResp)
+ throws PortletException, IOException {
+
+ portletResp.setContentType("text/html");
+ PrintWriter writer = portletResp.getWriter();
+ ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+
+ PortletSession ps = portletReq.getPortletSession();
+ String msg = (String) ps.getAttribute(Constants.RESULT_ATTR_PREFIX
+ + "RenderStateTests_SPEC2_12_MutableRenderState");
+ ps.removeAttribute(Constants.RESULT_ATTR_PREFIX
+ + "RenderStateTests_SPEC2_12_MutableRenderState");
+
+ if (msg != null && msg.length() > 0) {
+ writer.write("<p>" + msg + "</p>\n");
+ }
+
+ RenderParameters renderParams = portletReq.getRenderParameters();
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters
+ */
+ /*
+ * Details:
+ * "Returns an MutableRenderParameters object representing the private and public render parameters."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ MutableRenderParameters mutableRenderParams = actionURL
+ .getRenderParameters();
+ mutableRenderParams.setValue("tr0_private", "true");
+ mutableRenderParams.setValue("tr0_public", "true");
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters2
+ */
+ /*
+ * Details:
+ * "The MutableRenderParameters object return by this method is mutable."
+ */
+ if (renderParams.getValue("tr1") != null
+ && renderParams.getValue("tr1").equals("true")) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS2);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ } else {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS2,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase: V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode
+ */
+ /*
+ * Details:
+ * "Sets the portlet mode of a portlet to the given portlet mode."
+ */
+ if (portletReq.getPortletMode().equals(PortletMode.HELP)) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ } else {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode2
+ */
+ /*
+ * Details:
+ * "A custom portlet mode declared in deployment descriptor could be set."
+ */
+ if (renderParams.getValue("tr_setPortlet2") == null) {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE2,
+ actionURL);
+ tb.writeTo(writer);
+ } else {
+ // TODO: Weird exception here.. Fix it.
+ super.render(portletReq, portletResp);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode3
+ */
+ /*
+ * Details:
+ * "Not more than one portlet mode can be set. If more than one portlet mode is set, only the last one set is valid."
+ */
+ if (portletReq.getPortletMode().equals(PortletMode.HELP)) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE3);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ } else {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE3,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode4
+ */
+ /*
+ * Details:
+ * "Throws PortletModeException if the portlet cannot switch to this mode."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE4,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode5
+ */
+ /*
+ * Details:
+ * "Throws IllegalStateException if the method is invoked after sendRedirect has been called."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE5,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode6
+ */
+ /*
+ * Details:
+ * "Throws IllegalArgumentException if the input parameter is null."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE6,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase: V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState
+ */
+ /*
+ * Details:
+ * "Sets the window state of a portlet to the given window state."
+ */
+ if (renderParams.getValue("tr_setWindow") != null
+ && renderParams.getValue("tr_setWindow").equals("true")
+ && portletReq.getWindowState().equals(WindowState.NORMAL)) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ } else {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState2
+ */
+ /*
+ * Details:
+ * "A custom window state declared in deployment descriptor could be set."
+ */
+ if (renderParams.getValue("tr_setWindow2") == null) {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE2,
+ actionURL);
+ tb.writeTo(writer);
+ } else {
+ //TODO: Implement test case
+ //super.render(portletReq, portletResp);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState3
+ */
+ /*
+ * Details:
+ * "Not more than one window state can be set. If more than one window state is set, only the last one set is valid."
+ */
+ if (renderParams.getValue("tr_setWindow3") != null
+ && renderParams.getValue("tr_setWindow3").equals("true")
+ && portletReq.getWindowState().equals(WindowState.NORMAL)) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE3);
+ result.setTcSuccess(true);
+ result.writeTo(writer);
+ } else {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE3,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState4
+ */
+ /*
+ * Details:
+ * "Throws WindowStateException if the portlet cannot switch to this state."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE4,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState5
+ */
+ /*
+ * Details:
+ * "Throws IllegalStateException if the method is invoked after sendRedirect has been called."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE5,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState6
+ */
+ /*
+ * Details:
+ * "Throws IllegalArgumentException if the input parameter is null."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE6,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ }
+
+ @RenderMode(name = "custom1")
+ public void doView(RenderRequest portletReq, RenderResponse portletResp)
+ throws PortletException, IOException {
+
+ PrintWriter writer = portletResp.getWriter();
+
+ ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode2
+ */
+ /*
+ * Details:
+ * "A custom portlet mode declared in deployment descriptor could be set."
+ */
+ RenderParameters renderParams = portletReq.getRenderParameters();
+ if (renderParams.getValue("tr_setPortlet2") != null
+ && renderParams.getValue("tr_setPortlet2").equals("true")) {
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE2);
+ if (portletReq.getPortletMode().equals(new PortletMode("custom1"))) {
+ result.setTcSuccess(true);
+ } else {
+ result.appendTcDetail(
+ "Failed because portlet mode is not CUSTOM1 but "
+ + portletReq.getPortletMode().toString());
+ }
+ result.writeTo(writer);
+ }
+ }
+
+}
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState2.java b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState2.java
new file mode 100644
index 0000000..af4b9d0
--- /dev/null
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/portlets/RenderStateTests_SPEC2_12_MutableRenderState2.java
@@ -0,0 +1,126 @@
+/* Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package javax.portlet.tck.portlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.ActionURL;
+import javax.portlet.MutableActionParameters;
+import javax.portlet.Portlet;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.annotations.PortletConfiguration;
+import javax.portlet.tck.beans.TestButton;
+import javax.portlet.tck.beans.TestResult;
+import javax.portlet.tck.constants.Constants;
+import javax.portlet.tck.util.ModuleTestCaseDetails;
+
+import static javax.portlet.tck.util.ModuleTestCaseDetails.*;
+
+/**
+ * This portlet implements several test cases for the JSR 362 TCK. The test case
+ * names are defined in the /src/main/resources/xml-resources/additionalTCs.xml
+ * file. The build process will integrate the test case names defined in the
+ * additionalTCs.xml file into the complete list of test case names for
+ * execution by the driver.
+ *
+ */
+
+@PortletConfiguration(portletName = "RenderStateTests_SPEC2_12_MutableRenderState2")
+public class RenderStateTests_SPEC2_12_MutableRenderState2 implements Portlet {
+
+ @Override
+ public void init(PortletConfig config) throws PortletException {
+ }
+
+ @Override
+ public void destroy() {
+ }
+
+ @Override
+ public void processAction(ActionRequest portletReq,
+ ActionResponse portletResp) throws PortletException, IOException {
+
+ ModuleTestCaseDetails tcd = new ModuleTestCaseDetails();
+ StringWriter writer = new StringWriter();
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters3
+ */
+ /*
+ * Details:
+ * "If no render parameters are available, the object will be empty."
+ */
+ TestResult result = tcd.getTestResultFailed(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS3);
+ if(portletResp.getRenderParameters().isEmpty()){
+ result.setTcSuccess(true);
+ }
+ result.writeTo(writer);
+
+ PortletSession ps = portletReq.getPortletSession();
+ ps.setAttribute(Constants.RESULT_ATTR_PREFIX + "RenderStateTests_SPEC2_12_MutableRenderState2", writer.toString());
+
+ }
+
+ @Override
+ public void render(RenderRequest portletReq, RenderResponse portletResp)
+ throws PortletException, IOException {
+
+ portletResp.setContentType("text/html");
+ PrintWriter writer = portletResp.getWriter();
+
+ PortletSession ps = portletReq.getPortletSession();
+ String msg = (String) ps.getAttribute(Constants.RESULT_ATTR_PREFIX + "RenderStateTests_SPEC2_12_MutableRenderState2");
+ ps.removeAttribute(Constants.RESULT_ATTR_PREFIX + "RenderStateTests_SPEC2_12_MutableRenderState2");
+
+ if (msg != null && msg.length() > 0) {
+ writer.write("<p>" + msg + "</p>\n");
+ }
+
+ /*
+ * TestCase:
+ * V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters3
+ */
+ /*
+ * Details:
+ * "If no render parameters are available, the object will be empty."
+ */
+ {
+ ActionURL actionURL = portletResp.createActionURL();
+ MutableActionParameters mutableActionParams = actionURL
+ .getActionParameters();
+ mutableActionParams.clear();
+ TestButton tb = new TestButton(
+ V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS3,
+ actionURL);
+ tb.writeTo(writer);
+ }
+
+ }
+
+}
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java
index 399697a..71d7d60 100644
--- a/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/java/javax/portlet/tck/util/ModuleTestCaseDetails.java
@@ -34,24 +34,57 @@
*/
public class ModuleTestCaseDetails extends TestCaseDetails {
+ public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GENERAL = "V3RenderStateTests_SPEC1_12_RenderState_general";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS = "V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS2 = "V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters2";
+ public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS3 = "V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters3";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETPORTLETMODE = "V3RenderStateTests_SPEC1_12_RenderState_getPortletMode";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETPORTLETMODE2 = "V3RenderStateTests_SPEC1_12_RenderState_getPortletMode2";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETWINDOWSTATE = "V3RenderStateTests_SPEC1_12_RenderState_getWindowState";
public final static String V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETWINDOWSTATE2 = "V3RenderStateTests_SPEC1_12_RenderState_getWindowState2";
-
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS = "V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS2 = "V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters2";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS3 = "V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters3";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE2 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode2";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE3 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode3";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE4 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode4";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE5 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode5";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE6 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode6";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE2 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState2";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE3 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState3";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE4 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState4";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE5 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState5";
+ public final static String V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE6 = "V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState6";
private final static Map<String, String> tcd = new HashMap<String, String>();
static {
+ tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GENERAL, "RenderState interface provides read-only access to the render state.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS, "Returns an RenderParameters object representing the private and public render parameters.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS2, "The RenderParameters object return by this method is immutable.");
+ tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETRENDERPARAMETERS3, "If no render parameters are available, the object will be empty.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETPORTLETMODE, "Returns the current portlet mode of the portlet.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETPORTLETMODE2, "If the portlet mode is not available, PortletMode.UNDEFINED is returned.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETWINDOWSTATE, "Returns the current window state of the portlet.");
tcd.put(V3RENDERSTATETESTS_SPEC1_12_RENDERSTATE_GETWINDOWSTATE2, "If the window state is not available, WindowState.UNDEFINED is returned.");
-
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS, "Returns an MutableRenderParameters object representing the private and public render parameters.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS2, "The MutableRenderParameters object return by this method is mutable.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_GETRENDERPARAMETERS3, "If no render parameters are available, the object will be empty.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE, "Sets the portlet mode of a portlet to the given portlet mode.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE2, "A custom portlet mode declared in deployment descriptor could be set.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE3, "Not more than one portlet mode can be set. If more than one portlet mode is set, only the last one set is valid.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE4, "Throws PortletModeException if the portlet cannot switch to this mode.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE5, "Throws IllegalStateException if the method is invoked after sendRedirect has been called.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETPORTLETMODE6, "Throws IllegalArgumentException if the input parameter is null.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE, "Sets the window state of a portlet to the given window state.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE2, "A custom window state declared in deployment descriptor could be set.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE3, "Not more than one window state can be set. If more than one window state is set, only the last one set is valid.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE4, "Throws WindowStateException if the portlet cannot switch to this state.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE5, "Throws IllegalStateException if the method is invoked after sendRedirect has been called.");
+ tcd.put(V3RENDERSTATETESTS_SPEC2_12_MUTABLERENDERSTATE_SETWINDOWSTATE6, "Throws IllegalArgumentException if the input parameter is null.");
+
}
/**
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalPages.xml b/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalPages.xml
index a08270c..557b3eb 100644
--- a/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalPages.xml
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalPages.xml
@@ -33,6 +33,9 @@
<render-config default="About Apache Pluto">
<page xmlns="" name="V3RenderStateTests" uri="/WEB-INF/themes/pluto-default-theme.jsp">
<portlet context="/tck-V3RenderStateTests-3.0-SNAPSHOT" name="RenderStateTests_SPEC1_12_RenderState"/>
+<portlet context="/tck-V3RenderStateTests-3.0-SNAPSHOT" name="RenderStateTests_SPEC1_12_RenderState2"/>
+<portlet context="/tck-V3RenderStateTests-3.0-SNAPSHOT" name="RenderStateTests_SPEC2_12_MutableRenderState"/>
+<portlet context="/tck-V3RenderStateTests-3.0-SNAPSHOT" name="RenderStateTests_SPEC2_12_MutableRenderState2"/>
</page>
</render-config>
</pluto-portal-driver>
diff --git a/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalTCs.xml b/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalTCs.xml
index 8685d64..3495e7b 100644
--- a/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalTCs.xml
+++ b/portlet-tck_3.0/V3RenderStateTests/src/main/resources/xml-resources/additionalTCs.xml
@@ -20,10 +20,27 @@
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!-- JSR 362 API RenderStateTests test case names and page mappings -->
+<entry key="V3RenderStateTests_SPEC1_12_RenderState_general">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters2">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC1_12_RenderState_getRenderParameters3">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getPortletMode">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getPortletMode2">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getWindowState">V3RenderStateTests</entry>
<entry key="V3RenderStateTests_SPEC1_12_RenderState_getWindowState2">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters2">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_getRenderParameters3">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode2">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode3">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode4">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode5">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setPortletMode6">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState2">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState3">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState4">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState5">V3RenderStateTests</entry>
+<entry key="V3RenderStateTests_SPEC2_12_MutableRenderState_setWindowState6">V3RenderStateTests</entry>
</properties>