-
Type:
New Feature
-
Status: Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: facesbridge-tck-5.0.0, facesbridge-spec-5.0.0, bridge-impl-5.0.0
-
Labels:None
The JavaDoc for ExternalContext.encodeActionURL(String) includes includes the following language for JSF 2.2:
Encoding the ClientWindow
Call ClientWindow.isClientWindowRenderModeEnabled(javax.faces.context.FacesContext). If the result is false take no further action and return the rewritten URL. If the result is true, call getClientWindow(). If the result is non-null, call ClientWindow.getId() and append the id to the query string of the URL, making the necessary allowances for a pre-existing query string or no query-string.
Call ClientWindow.getQueryURLParameters(javax.faces.context.FacesContext). If the result is non-null, for each parameter in the map, unconditionally add that parameter to the URL.
The name of the query string parameter is given by the value of the constant ResponseStateManager.CLIENT_WINDOW_URL_PARAM.
The FacesBridge must implement these requirements.
TCK: encodeActionURLJSFViewActionTest (bridge-tck-main-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the ACTION_PHASE (due to a navigation result triggering a navigation-rule), that it does not generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the HEADER_PHASE, since the bridge is required to set URL parameters returned by ExternalContext.encodeActionURL(String) as render parameters that survive into the HEADER_PHASE and RENDER_PHASE.
TCK: encodeActionURLJSFViewActionTest (bridge-tck-flows-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the ACTION_PHASE (due to a navigation result triggering a navigation-rule), that it does generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the HEADER_PHASE, since the bridge is required to set URL parameters returned by ExternalContext.encodeActionURL(String) as render parameters that survive into the HEADER_PHASE and RENDER_PHASE.
TCK: encodeActionURLJSFViewEventTest (bridge-tck-main-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the EVENT_PHASE (due to Ch6TestEventHandler.handleEvent(FacesContext,Event) returning an EventNavigationResult, that it does not generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the HEADER_PHASE, since the bridge is required to set URL parameters returned by ExternalContext.encodeActionURL(String) as render parameters that survive into the HEADER_PHASE and RENDER_PHASE.
TCK: encodeActionURLJSFViewEventTest (bridge-tck-flows-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the EVENT_PHASE (due to Ch6TestEventHandler.handleEvent(FacesContext,Event) returning an EventNavigationResult, that it does generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the HEADER_PHASE, since the bridge is required to set URL parameters returned by ExternalContext.encodeActionURL(String) as render parameters that survive into the HEADER_PHASE and RENDER_PHASE.
TCK: encodeActionURLJSFViewRenderTest (bridge-tck-main-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the RENDER_PHASE (due to the XHTML view containing an <f:form/> component tag), that it does not generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the ACTION_PHASE, since the "jsfwid" and custom client window URL parameters would be submitted as action parameters.
TCK: encodeActionURLJSFViewRenderTest (bridge-tck-flows-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the RENDER_PHASE (due to the XHTML view containing an <f:form/> component tag), that it does generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the ACTION_PHASE, since the "jsfwid" and custom client window URL parameters would be submitted as action parameters.
TCK: encodeActionURLJSFViewResourceTest (bridge-tck-main-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the RESOURCE_PHASE (due to the XHTML view containing an initial <h:form/> with <f:ajax/>, which upon submitting, causes a re-render of the DOM with an <h:form/> that is not submitted by Ajax), that it does not generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the ACTION_PHASE in a subsequent full-page (non-Ajax) postback, since the "jsfwid" and custom client window URL parameters would be submitted as action parameters.
TCK: encodeActionURLJSFViewResourceTest (bridge-tck-flows-portlet)
- Ensure that when ExternalContext.encodeActionURL(String) is called during the RESOURCE_PHASE (due to the XHTML view containing an initial <h:form/> with <f:ajax/>, which upon submitting, causes a re-render of the DOM with an <h:form/> that is not submitted by Ajax), that it does generate a URL that contains the "jsfwid" and custom client window parameters. This can be verified in the ACTION_PHASE in a subsequent full-page (non-Ajax) postback, since the "jsfwid" and custom client window URL parameters would be submitted as action parameters.