public static V1ServiceDescription createServiceDescription(
      boolean requiresRegistration, int numberOfProperties) {
    V1ServiceDescription sd = WSRP1TypeFactory.createServiceDescription(requiresRegistration);

    if (requiresRegistration) {
      List<V1PropertyDescription> descriptions =
          new ArrayList<V1PropertyDescription>(numberOfProperties);
      for (int i = 0; i < numberOfProperties; i++) {
        descriptions.add(
            WSRP1TypeFactory.createPropertyDescription("prop" + i, WSRPConstants.XSD_STRING));
      }
      sd.setRegistrationPropertyDescription(WSRP1TypeFactory.createModelDescription(descriptions));
    }

    return sd;
  }
Esempio n. 2
0
  @Test
  public void testInitCookieNoRegistrationWhenRegistrationRequired() throws Exception {
    configureRegistrationSettings(true, false);

    V1InitCookie initCookie = WSRP1TypeFactory.createInitCookie(null);
    try {
      producer.initCookie(initCookie);
      ExtendedAssert.fail("Should have thrown InvalidRegistration!");
    } catch (V1InvalidRegistration invalidRegistration) {
      // expected
    } catch (Exception e) {
      ExtendedAssert.fail(e.getMessage());
    }
  }
Esempio n. 3
0
  /**
   * Test to make sure setting the UserContext doesn't appear in the getRemoteUser method call.
   *
   * @throws Exception
   */
  @Test
  public void testGetMarkupWithUserContext() throws Exception {
    undeploy(DEFAULT_MARKUP_PORTLET_WAR);
    String userContextPortletArchive = "test-usercontext-portlet.war";
    deploy(userContextPortletArchive);

    try {
      V1GetMarkup getMarkup = createMarkupRequestForCurrentlyDeployedPortlet();
      getMarkup.setUserContext(WSRP1TypeFactory.createUserContext("johndoe"));

      V1MarkupResponse response = producer.getMarkup(getMarkup);
      // Since the tests are not using WS-Security, the user is not logged in and should not be
      // displayed when the portlet calls getRemoteUser
      checkMarkupResponse(response, "user: null");
    } finally {
      undeploy(userContextPortletArchive);
    }
  }
/**
 * @author <a
 *     href="mailto:[email protected]?subject=org.gatein.wsrp.test.ServiceDescriptionBehavior">Chris
 *     Laprun</a>
 * @version $Revision: 11320 $
 * @since 2.6
 */
public class ServiceDescriptionBehavior extends TestProducerBehavior
    implements WSRPV1ServiceDescriptionPortType {
  protected V1ServiceDescription serviceDescription;
  private static final V1ServiceDescription DEFAULT_SERVICE_DESCRIPTION =
      WSRP1TypeFactory.createServiceDescription(false);
  public static final ServiceDescriptionBehavior DEFAULT = new ServiceDescriptionBehavior();

  protected List<V1PortletDescription> offeredPortlets;
  private boolean requiresRegistration;
  private V1CookieProtocol cookieProtocol;
  private V1ModelDescription registrationProperties;

  public ServiceDescriptionBehavior() {
    offeredPortlets = new LinkedList<V1PortletDescription>();
  }

  public void setRequiresRegistration(boolean requiresRegistration) {
    this.requiresRegistration = requiresRegistration;
  }

  public void setRequiresInitCookie(V1CookieProtocol requiresInitCookie) {
    this.cookieProtocol = requiresInitCookie;
  }

  public void setServiceDescription(boolean requiresRegistration, int numberOfProps) {
    V1ServiceDescription sd = createServiceDescription(requiresRegistration, numberOfProps);
    offeredPortlets = sd.getOfferedPortlets();
    this.requiresRegistration = sd.isRequiresRegistration();
    registrationProperties = sd.getRegistrationPropertyDescription();
  }

  public static V1ServiceDescription getDefaultServiceDescription() {
    return DEFAULT_SERVICE_DESCRIPTION;
  }

  public void addPortletDescription(V1PortletDescription portletDescription) {
    offeredPortlets.add(portletDescription);
  }

  public Set<String> getPortletHandles() {
    Set<String> handles = new HashSet<String>(offeredPortlets.size());

    for (V1PortletDescription description : offeredPortlets) {
      handles.add(description.getPortletHandle());
    }

    return handles;
  }

  public int getPortletNumber() {
    return offeredPortlets.size();
  }

  public static V1ServiceDescription createServiceDescription(
      boolean requiresRegistration, int numberOfProperties) {
    V1ServiceDescription sd = WSRP1TypeFactory.createServiceDescription(requiresRegistration);

    if (requiresRegistration) {
      List<V1PropertyDescription> descriptions =
          new ArrayList<V1PropertyDescription>(numberOfProperties);
      for (int i = 0; i < numberOfProperties; i++) {
        descriptions.add(
            WSRP1TypeFactory.createPropertyDescription("prop" + i, WSRPConstants.XSD_STRING));
      }
      sd.setRegistrationPropertyDescription(WSRP1TypeFactory.createModelDescription(descriptions));
    }

    return sd;
  }

  public void getServiceDescription(
      @WebParam(name = "registrationContext", targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          V1RegistrationContext registrationContext,
      @WebParam(name = "desiredLocales", targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          List<String> desiredLocales,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "requiresRegistration",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<Boolean> requiresRegistration,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "offeredPortlets",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1PortletDescription>> offeredPortlets,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "userCategoryDescriptions",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1ItemDescription>> userCategoryDescriptions,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "customUserProfileItemDescriptions",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1ItemDescription>> customUserProfileItemDescriptions,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "customWindowStateDescriptions",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1ItemDescription>> customWindowStateDescriptions,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "customModeDescriptions",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1ItemDescription>> customModeDescriptions,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "requiresInitCookie",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<V1CookieProtocol> requiresInitCookie,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "registrationPropertyDescription",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<V1ModelDescription> registrationPropertyDescription,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "locales",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<String>> locales,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "resourceList",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<V1ResourceList> resourceList,
      @WebParam(
              mode = WebParam.Mode.OUT,
              name = "extensions",
              targetNamespace = "urn:oasis:names:tc:wsrp:v1:types")
          Holder<List<V1Extension>> extensions)
      throws V1InvalidRegistration, V1OperationFailed {
    incrementCallCount();
    offeredPortlets.value = this.offeredPortlets;
    requiresRegistration.value = this.requiresRegistration;
    requiresInitCookie.value = this.cookieProtocol;
    registrationPropertyDescription.value = registrationProperties;
  }
}