Uploaded image for project: 'PUBLIC - Liferay Faces'
  1. PUBLIC - Liferay Faces
  2. FACES-3092

ClientWindow requirements for encodeActionURL(String url)

    Details

      Description

      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.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:

                Packages

                Version Package
                facesbridge-tck-5.0.0
                facesbridge-spec-5.0.0
                bridge-impl-5.0.0