@Test
 public void verifyClearPassWithUsernameMissingInCache() throws Exception {
   final ClearPassController controller = new ClearPassController(this.map);
   final MockHttpServletRequest req = new MockHttpServletRequest();
   req.setRemoteUser("casuser");
   final ModelAndView mv = controller.handleRequestInternal(req, new MockHttpServletResponse());
   assertEquals(mv.getViewName(), ClearPassController.DEFAULT_SERVICE_FAILURE_VIEW_NAME);
   assertTrue(mv.getModel().containsKey(ClearPassController.MODEL_FAILURE_DESCRIPTION));
 }
  @Test
  public void testEditProfile() throws Exception {
    log.debug("testing edit profile...");
    request = newGet("/userform.html");
    request.setRemoteUser("user");

    user = c.showForm(request, new MockHttpServletResponse());
    assertEquals("Tomcat User", user.getFullName());
  }
  @Test
  public void verifyClearPassSuccess() throws Exception {
    final ClearPassController controller = new ClearPassController(this.map);
    final MockHttpServletRequest req = new MockHttpServletRequest();
    req.setRemoteUser("casuser");
    this.map.put("casuser", "password");

    final ModelAndView mv = controller.handleRequestInternal(req, new MockHttpServletResponse());
    assertEquals(mv.getViewName(), ClearPassController.DEFAULT_SERVICE_SUCCESS_VIEW_NAME);
    assertTrue(mv.getModel().containsKey(ClearPassController.MODEL_CLEARPASS));
    assertTrue(mv.getModel().containsValue("password"));
  }
  @Test
  public void testAddWithMissingFields() throws Exception {
    request = newPost("/userform.html");
    user = new User();
    user.setFirstName("Jack");
    request.setRemoteUser("user");

    BindingResult errors = new DataBinder(user).getBindingResult();
    c.onSubmit(user, errors, request, new MockHttpServletResponse());

    assertEquals(4, errors.getAllErrors().size());
  }
  @Test
  public void testSave() throws Exception {
    request = newPost("/userform.html");
    // set updated properties first since adding them later will
    // result in multiple parameters with the same name getting sent
    User user = ((UserManager) applicationContext.getBean("userManager")).getUser("-1");
    user.setConfirmPassword(user.getPassword());
    user.setLastName("Updated Last Name");

    request.setRemoteUser(user.getUsername());

    BindingResult errors = new DataBinder(user).getBindingResult();
    c.onSubmit(user, errors, request, new MockHttpServletResponse());

    assertFalse(errors.hasErrors());
    assertNotNull(request.getSession().getAttribute("successMessages"));
  }
  @Test
  public void shouldRemoveASessionAttendeeWhenNotGoing() {
    // ARRANGE
    int conferenceSessionId = 1;
    String emailId = "emailId";

    MockHttpServletRequest httpServletRequest = new MockHttpServletRequest();
    httpServletRequest.setRemoteUser(emailId);

    SessionAttendeeRepository repository = mock(SessionAttendeeRepository.class);

    // ACT
    SessionAttendeeController controller = new SessionAttendeeController(repository);
    controller.notGoing(conferenceSessionId, httpServletRequest);

    // ASSERT
    verify(repository).remove(new SessionAttendee(emailId, conferenceSessionId));
  }
  @Test
  public void shouldCreateASessionAttendeeWhenGoing() {
    // ARRANGE
    int conferenceSessionId = 1;
    String emailId = "emailId";

    MockHttpServletRequest httpServletRequest = new MockHttpServletRequest();
    httpServletRequest.setRemoteUser(emailId);

    SessionAttendeeRepository repository = mock(SessionAttendeeRepository.class);
    SessionAttendee createdConferenceSessionAttendee =
        new SessionAttendee(emailId, conferenceSessionId);
    when(repository.save(isA(SessionAttendee.class))).thenReturn(createdConferenceSessionAttendee);

    // ACT
    SessionAttendeeController controller = new SessionAttendeeController(repository);
    controller.going(conferenceSessionId, httpServletRequest);

    // ASSERT
    assertThat(createdConferenceSessionAttendee.getSessionId(), is(conferenceSessionId));
    assertThat(createdConferenceSessionAttendee.getAttendeeEmail(), is(emailId));
  }
  @Test
  public void testProcessLoginEvents() throws Exception {
    final IntegerWrapper counter = new IntegerWrapper();

    JAASHelper jaasHelper = JAASHelper.getInstance();

    JAASHelper.setInstance(
        new JAASHelper() {

          @Override
          protected long doGetJaasUserId(long companyId, String name)
              throws PortalException, SystemException {

            try {
              return super.doGetJaasUserId(companyId, name);
            } finally {
              counter.increment();
            }
          }
        });

    if (mainServlet == null) {
      MockServletContext mockServletContext =
          new AutoDeployMockServletContext(getResourceBasePath(), new FileSystemResourceLoader());

      MockServletConfig mockServletConfig = new MockServletConfig(mockServletContext);

      MainServlet mainServlet = new MainServlet();

      try {
        mainServlet.init(mockServletConfig);
      } catch (ServletException se) {
        throw new RuntimeException("The main servlet could not be initialized");
      }
    }

    Date lastLoginDate = _user.getLastLoginDate();

    MockHttpServletRequest mockHttpServletRequest =
        new MockHttpServletRequest(
            mainServlet.getServletContext(), HttpMethods.GET, StringPool.SLASH);

    mockHttpServletRequest.setRemoteUser(String.valueOf(_user.getUserId()));

    JAASAction preJAASAction = new JAASAction();
    JAASAction postJAASAction = new JAASAction();

    try {
      EventsProcessorUtil.registerEvent(PropsKeys.LOGIN_EVENTS_PRE, preJAASAction);
      EventsProcessorUtil.registerEvent(PropsKeys.LOGIN_EVENTS_POST, postJAASAction);

      mainServlet.service(mockHttpServletRequest, new MockHttpServletResponse());

      Assert.assertEquals(2, counter.getValue());
      Assert.assertTrue(preJAASAction.isRan());
      Assert.assertTrue(postJAASAction.isRan());

      _user = UserLocalServiceUtil.getUser(_user.getUserId());

      Assert.assertFalse(lastLoginDate.after(_user.getLastLoginDate()));
    } finally {
      EventsProcessorUtil.unregisterEvent(PropsKeys.LOGIN_EVENTS_PRE, postJAASAction);
      EventsProcessorUtil.unregisterEvent(PropsKeys.LOGIN_EVENTS_POST, postJAASAction);

      JAASHelper.setInstance(jaasHelper);
    }
  }
Exemple #9
0
  public Tuple service(String method, String path, Map<String, String> headers, byte[] data) {

    WebDAVStorage webDAVStorage = new DLWebDAVStorageImpl();

    webDAVStorage.setToken("document_library");

    WebDAVUtil.addStorage(webDAVStorage);

    WebDAVServlet webDAVServlet = new WebDAVServlet();

    String requestURI = _CONTEXT_PATH + _SERVLET_PATH + _PATH_INFO_PREFACE + path;

    MockHttpServletRequest mockHttpServletRequest = new MockHttpServletRequest(method, requestURI);

    mockHttpServletRequest.setContextPath(_CONTEXT_PATH);
    mockHttpServletRequest.setServletPath(_SERVLET_PATH);
    mockHttpServletRequest.setPathInfo(_PATH_INFO_PREFACE + path);

    try {
      mockHttpServletRequest.setRemoteUser(String.valueOf(TestPropsValues.getUserId()));
    } catch (Exception e) {
      Assert.fail("User ID cannot be initialized");
    }

    if (headers == null) {
      headers = new HashMap<String, String>();
    }

    headers.put(HttpHeaders.USER_AGENT, getUserAgent());

    try {
      throw new Exception();
    } catch (Exception e) {
      StackTraceElement[] stackTraceElements = e.getStackTrace();

      for (StackTraceElement stackTraceElement : stackTraceElements) {
        String methodName = stackTraceElement.getMethodName();

        if (methodName.equals("setUp")
            || methodName.equals("tearDown")
            || methodName.startsWith("test")) {

          String testName =
              StringUtil.extractLast(stackTraceElement.getClassName(), CharPool.PERIOD);

          testName =
              StringUtil.replace(testName, new String[] {"WebDAV", "Test"}, new String[] {"", ""});

          headers.put(
              "X-Litmus",
              testName
                  + ": ("
                  + stackTraceElement.getMethodName()
                  + ":"
                  + stackTraceElement.getLineNumber()
                  + ")");

          break;
        }
      }
    }

    if (data != null) {
      mockHttpServletRequest.setContent(data);

      String contentType = headers.remove(HttpHeaders.CONTENT_TYPE);

      if (contentType != null) {
        mockHttpServletRequest.setContentType(contentType);
      } else {
        mockHttpServletRequest.setContentType(ContentTypes.TEXT_PLAIN);
      }
    }

    for (Map.Entry<String, String> entry : headers.entrySet()) {
      String key = entry.getKey();
      String value = entry.getValue();

      mockHttpServletRequest.addHeader(key, value);
    }

    try {
      MockHttpServletResponse mockHttpServletResponse = new MockHttpServletResponse();

      webDAVServlet.service(mockHttpServletRequest, mockHttpServletResponse);

      int statusCode = mockHttpServletResponse.getStatus();
      byte[] responseBody = mockHttpServletResponse.getContentAsByteArray();

      Map<String, String> responseHeaders = new HashMap<String, String>();

      for (String name : mockHttpServletResponse.getHeaderNames()) {
        responseHeaders.put(name, (String) mockHttpServletResponse.getHeader(name));
      }

      return new Tuple(statusCode, responseBody, responseHeaders);
    } catch (Exception e) {
      e.printStackTrace();
    }

    return null;
  }