@Test void testCreatingAnAccountWithNoClientRedirect() throws Exception { PredictableGenerator generator = new PredictableGenerator(); JdbcExpiringCodeStore store = webApplicationContext.getBean(JdbcExpiringCodeStore.class); store.setGenerator(generator); mockMvc.perform(post("/create_account.do") .with(cookieCsrf()) .param("email", userEmail) .param("password", "secr3T") .param("password_confirmation", "secr3T")) .andExpect(status().isFound()) .andExpect(redirectedUrl("accounts/email_sent")); FakeJavaMailSender.MimeMessageWrapper message = fakeJavaMailSender.getSentMessages().get(0); assertTrue(message.getContentString().contains("Cloud Foundry")); assertThat(message.getMessage().getHeader("From"), hasItemInArray("Cloud Foundry <admin@localhost>")); mockMvc.perform(get("/verify_user") .param("code", "test" + generator.counter.get())) .andExpect(status().isFound()) .andExpect(redirectedUrl(LOGIN_REDIRECT)) .andReturn(); MvcResult mvcResult = loginWithAccount("") .andExpect(authenticated()) .andReturn(); SecurityContext securityContext = (SecurityContext) mvcResult.getRequest().getSession().getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); Authentication authentication = securityContext.getAuthentication(); assertThat(authentication.getPrincipal(), instanceOf(UaaPrincipal.class)); UaaPrincipal principal = (UaaPrincipal) authentication.getPrincipal(); assertThat(principal.getEmail(), equalTo(userEmail)); assertThat(principal.getOrigin(), equalTo(OriginKeys.UAA)); }
assertThat(message.getMessage().getHeader("From"), hasItemInArray("Cloud Foundry <admin@localhost>"));
@Test public void testSendDoesntCreateMemoryLeak() throws Exception { FakeJavaMailSender sender = new FakeJavaMailSender(); sender.setMaxMessages(100); MimeMessage m = sender.createMimeMessage(); for (int i=0; i<200; i++) { sender.send(m); } assertEquals(100, sender.getMaxMessages()); assertEquals(100, sender.getSentMessages().size()); MimeMessage lastMessage = sender.createMimeMessage(); sender.send(lastMessage); assertEquals(100, sender.getSentMessages().size()); assertSame(lastMessage, sender.getSentMessages().get(99).getMessage()); }
String link = mockMvcTestClient.extractLink(message.getContentString()); assertTrue(message.getContentString().contains(subdomain + "zone")); assertThat(message.getMessage().getHeader("From"), hasItemInArray(subdomain + "zone <admin@localhost>")); assertFalse(message.getContentString().contains("Cloud Foundry")); assertFalse(message.getContentString().contains("Pivotal"));