List of usage examples for org.springframework.web.servlet.view RedirectView getUrl
@Nullable
public String getUrl()
From source file:nl.surfnet.coin.teams.control.DetailTeamControllerTest.java
@Test public void testLeaveTeam() throws Exception { MockHttpServletRequest request = getRequest(); String token = TokenUtil.generateSessionToken(); HashSet<Role> roles = new HashSet<Role>(); roles.add(Role.Manager);//from www .ja v a2 s.c o m roles.add(Role.Member); roles.add(Role.Admin); HashSet<Member> admins = new HashSet<Member>(); admins.add(new Member(new HashSet<Role>(), "John Doe", "member-1", "john@doe.com")); List<Member> members = new ArrayList<Member>(); members.add(new Member(roles, "John Doe", "member-1", "john@doe.com")); members.add(new Member(roles, "Jane Doe", "member-2", "jane@doe.com")); Team mockTeam = new Team("team-1", "Team 1", "team description", members); GrouperTeamService grouperTeamService = mock(GrouperTeamService.class); when(grouperTeamService.findTeamById("team-1")).thenReturn(mockTeam); when(grouperTeamService.findAdmins(mockTeam)).thenReturn(admins); autoWireMock(detailTeamController, grouperTeamService, GrouperTeamService.class); autoWireRemainingResources(detailTeamController); RedirectView result = detailTeamController.leaveTeam(getModelMap(), request, token, token, "team-1", new SimpleSessionStatus()); assertEquals("detailteam.shtml?team=team-1&view=app&mes=error.AdminCannotLeaveTeam", result.getUrl()); }
From source file:nl.surfnet.coin.teams.control.DetailTeamControllerTest.java
@Test public void testDeleteMember() throws Exception { MockHttpServletRequest request = getRequest(); String token = TokenUtil.generateSessionToken(); // add the member request.addParameter("member", "member-1"); Member member = getMember();/* ww w. j a v a 2 s .co m*/ autoWireMock(detailTeamController, new Returns(member), GrouperTeamService.class); autoWireRemainingResources(detailTeamController); RedirectView result = detailTeamController.deleteMember(getModelMap(), request, token, token, "team-1", new SimpleSessionStatus()); assertEquals("detailteam.shtml?team=team-1&mes=error.NotAuthorizedToDeleteMember&view=app", result.getUrl()); }
From source file:nl.surfnet.coin.teams.control.DetailTeamControllerTest.java
@Test public void testRemoveRoleOneAdmin() throws Exception { MockHttpServletRequest request = getRequest(); String token = TokenUtil.generateSessionToken(); // Add the team, member & role request.addParameter("teamId", "team-1"); request.addParameter("memberId", "member-1"); request.addParameter("roleId", "0"); request.addParameter("doAction", "remove"); HashSet<Role> roles = new HashSet<Role>(); roles.add(Role.Member); roles.add(Role.Manager);// w ww . ja va 2s .c om roles.add(Role.Admin); HashSet<Member> admins = new HashSet<Member>(); admins.add(new Member(new HashSet<Role>(), "Jane Doe", "member-2", "jane@doe.com")); List<Member> members = new ArrayList<Member>(); members.add(new Member(roles, "Jane Doe", "member-2", "jane@doe.com")); Team mockTeam = new Team("team-1", "Team 1", "team description", members); GrouperTeamService grouperTeamService = mock(GrouperTeamService.class); when(grouperTeamService.findTeamById("team-1")).thenReturn(mockTeam); when(grouperTeamService.findAdmins(mockTeam)).thenReturn(admins); when(grouperTeamService.removeMemberRole("team-1", "member-1", Role.Admin, "member-1")).thenReturn(false); autoWireMock(detailTeamController, new Returns(true), ControllerUtil.class); autoWireMock(detailTeamController, grouperTeamService, GrouperTeamService.class); autoWireRemainingResources(detailTeamController); RedirectView view = detailTeamController.addOrRemoveRole(getModelMap(), request, token, token, new SimpleSessionStatus()); assertEquals("detailteam.shtml?team=team-1&view=app&mes=no.role.added.admin.status&offset=0", view.getUrl()); }
From source file:au.com.gaiaresources.bdrs.controller.theme.ThemeControllerTest.java
@Test public void testEditSubmit() throws Exception { ManagedFile mf = new ManagedFile(); mf.setContentType("application/zip"); mf.setFilename("testTheme.zip"); mf.setCredit(""); mf.setLicense(""); mf.setDescription(""); managedFileDAO.save(mf);/*from w ww .j a v a 2 s.c o m*/ fileService.createFile(mf.getClass(), mf.getId(), mf.getFilename(), createTestTheme(DEFAULT_CONFIG_VALUES)); login("root", "password", new String[] { Role.ROOT }); Portal portal = getRequestContext().getPortal(); request.setMethod("POST"); request.setRequestURI("/bdrs/root/theme/edit.htm"); request.setParameter("portalPk", portal.getId().toString()); request.setParameter("name", "Test Theme"); request.setParameter("themeFileUUID", mf.getUuid()); request.setParameter("active", "true"); ModelAndView mv = handle(request, response); ModelAndViewAssert.assertModelAttributeValue(mv, "portalId", portal.getId()); Assert.assertTrue(mv.getView() instanceof RedirectView); RedirectView redirect = (RedirectView) mv.getView(); Assert.assertEquals("/bdrs/root/theme/edit.htm", redirect.getUrl()); Theme theme = themeDAO.getTheme((Integer) mv.getModel().get("themeId")); Assert.assertEquals(request.getParameter("name"), theme.getName()); Assert.assertEquals(request.getParameter("themeFileUUID"), theme.getThemeFileUUID()); Assert.assertEquals(Boolean.parseBoolean(request.getParameter("active")), theme.isActive()); Assert.assertEquals(DEFAULT_CONFIG_VALUES.size(), theme.getThemeElements().size()); for (ThemeElement elem : theme.getThemeElements()) { String expectedValue = DEFAULT_CONFIG_VALUES.get(elem.getKey()); Assert.assertEquals(expectedValue, elem.getDefaultValue()); Assert.assertEquals(expectedValue, elem.getCustomValue()); } // Check that the save theme files have been decompressed and processed correctly. // Check the raw file directory. File rawDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, false); Assert.assertEquals(TEST_CSS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_CSS_FILE_PATH))); Assert.assertEquals(TEST_TEMPLATE_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_TEMPLATE_FILE_PATH))); Assert.assertEquals(TEST_JS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_JS_FILE_PATH))); BufferedImage rawImg = ImageIO.read(new File(rawDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, rawImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, rawImg.getHeight()); // Check the processed file directory File processedDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_PROCESSED, false); Assert.assertEquals(String.format(TEST_CSS_DEFAULT_CONTENT_TMPL, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_CSS_FILE_PATH)).trim()); Assert.assertEquals(String.format(TEST_TEMPLATE_DEFAULT_CONTENT, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_TEMPLATE_FILE_PATH)).trim()); Assert.assertEquals(TEST_JS_DEFAULT_CONTENT, FileUtils.fileRead(new File(processedDir, TEST_JS_FILE_PATH)).trim()); BufferedImage processedImg = ImageIO.read(new File(processedDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, processedImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, processedImg.getHeight()); assertThemePage(theme.getId().intValue()); }
From source file:au.com.gaiaresources.bdrs.controller.theme.ThemeControllerTest.java
@Test public void testEditThemeFileSubmit() throws Exception { ManagedFile mf = new ManagedFile(); mf.setContentType("application/zip"); mf.setFilename("testTheme.zip"); mf.setCredit(""); mf.setLicense(""); mf.setDescription(""); managedFileDAO.save(mf);//from ww w. j av a 2 s . c o m fileService.createFile(mf.getClass(), mf.getId(), mf.getFilename(), createTestTheme(DEFAULT_CONFIG_VALUES)); Portal portal = getRequestContext().getPortal(); Map<String, ThemeElement> themeElementMap = new HashMap<String, ThemeElement>(); List<ThemeElement> themeElements = new ArrayList<ThemeElement>(DEFAULT_CONFIG_VALUES.size()); for (Map.Entry<String, String> entry : DEFAULT_CONFIG_VALUES.entrySet()) { ThemeElement te = new ThemeElement(); te.setKey(entry.getKey()); te.setDefaultValue(entry.getValue()); te.setCustomValue(entry.getValue()); te.setType(ThemeElementType.TEXT); te = themeDAO.save(te); themeElements.add(te); themeElementMap.put(te.getKey(), te); } Theme theme = new Theme(); theme.setActive(true); theme.setName("Test Theme"); theme.setThemeFileUUID(mf.getUuid()); theme.setCssFiles(new String[] { TEST_CSS_FILE_PATH }); theme.setJsFiles(new String[] { TEST_JS_FILE_PATH }); theme.setPortal(portal); theme.setThemeElements(themeElements); theme = themeDAO.save(theme); ZipUtils.decompressToDir(new ZipFile(fileService.getFile(mf, mf.getFilename()).getFile()), fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, true)); login("root", "password", new String[] { Role.ROOT }); request.setMethod("POST"); request.setRequestURI("/bdrs/root/theme/editThemeFile.htm"); request.setParameter("themePk", theme.getId().toString()); request.setParameter("themeFileName", TEST_CSS_FILE_PATH); request.setParameter("themeFileContent", TEST_CSS_MODIFIED_RAW_CONTENT); ModelAndView mv = handle(request, response); ModelAndViewAssert.assertModelAttributeValue(mv, "portalId", portal.getId()); Assert.assertTrue(mv.getView() instanceof RedirectView); RedirectView redirect = (RedirectView) mv.getView(); Assert.assertEquals("/bdrs/root/theme/edit.htm", redirect.getUrl()); // Check that the save theme files have been decompressed and processed correctly. // Check the raw file directory. File rawDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, false); Assert.assertEquals(TEST_CSS_MODIFIED_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_CSS_FILE_PATH))); Assert.assertEquals(TEST_TEMPLATE_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_TEMPLATE_FILE_PATH))); Assert.assertEquals(TEST_JS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_JS_FILE_PATH))); BufferedImage rawImg = ImageIO.read(new File(rawDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, rawImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, rawImg.getHeight()); // Check the processed file directory File processedDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_PROCESSED, false); Assert.assertEquals(String.format(TEST_CSS_MODIFIED_DEFAULT_CONTENT_TMPL, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_CSS_FILE_PATH)).trim()); Assert.assertEquals(String.format(TEST_TEMPLATE_DEFAULT_CONTENT, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_TEMPLATE_FILE_PATH)).trim()); Assert.assertEquals(TEST_JS_DEFAULT_CONTENT, FileUtils.fileRead(new File(processedDir, TEST_JS_FILE_PATH)).trim()); BufferedImage processedImg = ImageIO.read(new File(processedDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, processedImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, processedImg.getHeight()); }
From source file:au.com.gaiaresources.bdrs.controller.theme.ThemeControllerTest.java
@Test public void testEditThemeFileRevertSubmit() throws Exception { ManagedFile mf = new ManagedFile(); mf.setContentType("application/zip"); mf.setFilename("testTheme.zip"); mf.setCredit(""); mf.setLicense(""); mf.setDescription(""); managedFileDAO.save(mf);// w ww .jav a 2 s.c o m fileService.createFile(mf.getClass(), mf.getId(), mf.getFilename(), createTestTheme(DEFAULT_CONFIG_VALUES)); Portal portal = getRequestContext().getPortal(); Map<String, ThemeElement> themeElementMap = new HashMap<String, ThemeElement>(); List<ThemeElement> themeElements = new ArrayList<ThemeElement>(DEFAULT_CONFIG_VALUES.size()); for (Map.Entry<String, String> entry : DEFAULT_CONFIG_VALUES.entrySet()) { ThemeElement te = new ThemeElement(); te.setKey(entry.getKey()); te.setDefaultValue(entry.getValue()); te.setCustomValue(entry.getValue()); te.setType(ThemeElementType.TEXT); te = themeDAO.save(te); themeElements.add(te); themeElementMap.put(te.getKey(), te); } Theme theme = new Theme(); theme.setActive(true); theme.setName("Test Theme"); theme.setThemeFileUUID(mf.getUuid()); theme.setCssFiles(new String[] { TEST_CSS_FILE_PATH }); theme.setJsFiles(new String[] { TEST_JS_FILE_PATH }); theme.setPortal(portal); theme.setThemeElements(themeElements); theme = themeDAO.save(theme); ZipUtils.decompressToDir(new ZipFile(fileService.getFile(mf, mf.getFilename()).getFile()), fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, true)); File rawDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, false); File cssFile = new File(rawDir, TEST_CSS_FILE_PATH); FileUtils.fileDelete(cssFile.getAbsolutePath()); FileUtils.fileWrite(cssFile.getAbsolutePath(), "Mary had a little lamb"); login("root", "password", new String[] { Role.ROOT }); request.setMethod("POST"); request.setRequestURI("/bdrs/root/theme/editThemeFile.htm"); request.setParameter("themePk", theme.getId().toString()); request.setParameter("themeFileName", TEST_CSS_FILE_PATH); request.setParameter("themeFileContent", TEST_CSS_MODIFIED_RAW_CONTENT); request.setParameter("revert", "Revert File"); ModelAndView mv = handle(request, response); ModelAndViewAssert.assertModelAttributeValue(mv, "portalId", portal.getId()); Assert.assertTrue(mv.getView() instanceof RedirectView); RedirectView redirect = (RedirectView) mv.getView(); Assert.assertEquals("/bdrs/root/theme/edit.htm", redirect.getUrl()); // Check that the save theme files have been decompressed and processed correctly. // Check the raw file directory. Assert.assertEquals(TEST_CSS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_CSS_FILE_PATH))); Assert.assertEquals(TEST_TEMPLATE_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_TEMPLATE_FILE_PATH))); Assert.assertEquals(TEST_JS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_JS_FILE_PATH))); BufferedImage rawImg = ImageIO.read(new File(rawDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, rawImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, rawImg.getHeight()); // Check the processed file directory File processedDir = fileService.getTargetDirectory(theme, Theme.THEME_DIR_PROCESSED, false); Assert.assertEquals(String.format(TEST_CSS_DEFAULT_CONTENT_TMPL, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_CSS_FILE_PATH)).trim()); Assert.assertEquals(String.format(TEST_TEMPLATE_DEFAULT_CONTENT, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_TEMPLATE_FILE_PATH)).trim()); Assert.assertEquals(TEST_JS_DEFAULT_CONTENT, FileUtils.fileRead(new File(processedDir, TEST_JS_FILE_PATH)).trim()); BufferedImage processedImg = ImageIO.read(new File(processedDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, processedImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, processedImg.getHeight()); }
From source file:au.com.gaiaresources.bdrs.controller.theme.ThemeControllerTest.java
@Test public void testEditCustomSubmit() throws Exception { ManagedFile mf = new ManagedFile(); mf.setContentType("application/zip"); mf.setFilename("testTheme.zip"); mf.setCredit(""); mf.setLicense(""); mf.setDescription(""); managedFileDAO.save(mf);// w ww . j ava2 s . c om fileService.createFile(mf.getClass(), mf.getId(), mf.getFilename(), createTestTheme(DEFAULT_CONFIG_VALUES)); Portal portal = getRequestContext().getPortal(); Map<String, ThemeElement> themeElementMap = new HashMap<String, ThemeElement>(); List<ThemeElement> themeElements = new ArrayList<ThemeElement>(DEFAULT_CONFIG_VALUES.size()); for (Map.Entry<String, String> entry : DEFAULT_CONFIG_VALUES.entrySet()) { ThemeElement te = new ThemeElement(); te.setKey(entry.getKey()); te.setDefaultValue(entry.getValue()); te.setCustomValue(entry.getValue()); te.setType(ThemeElementType.TEXT); te = themeDAO.save(te); themeElements.add(te); themeElementMap.put(te.getKey(), te); } Theme theme = new Theme(); theme.setActive(true); theme.setName("Test Theme"); theme.setThemeFileUUID(mf.getUuid()); theme.setCssFiles(new String[] { TEST_CSS_FILE_PATH }); theme.setJsFiles(new String[] { TEST_JS_FILE_PATH }); theme.setPortal(portal); theme.setThemeElements(themeElements); theme = themeDAO.save(theme); ZipUtils.decompressToDir(new ZipFile(fileService.getFile(mf, mf.getFilename()).getFile()), fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, true)); login("root", "password", new String[] { Role.ROOT }); request.setMethod("POST"); request.setRequestURI("/bdrs/root/theme/edit.htm"); request.setParameter("portalPk", portal.getId().toString()); request.setParameter("themePk", theme.getId().toString()); request.setParameter("name", theme.getName()); request.setParameter("themeFileUUID", theme.getThemeFileUUID()); request.setParameter("active", String.valueOf(theme.isActive())); for (Map.Entry<String, String> customEntry : CUSTOM_CONFIG_VALUES.entrySet()) { ThemeElement te = themeElementMap.get(customEntry.getKey()); request.setParameter(String.format(ThemeController.THEME_ELEMENT_CUSTOM_VALUE_TEMPLATE, te.getId()), customEntry.getValue()); } ModelAndView mv = handle(request, response); ModelAndViewAssert.assertModelAttributeValue(mv, "portalId", portal.getId()); Assert.assertTrue(mv.getView() instanceof RedirectView); RedirectView redirect = (RedirectView) mv.getView(); Assert.assertEquals("/bdrs/root/theme/edit.htm", redirect.getUrl()); Theme actualTheme = themeDAO.getTheme((Integer) mv.getModel().get("themeId")); Assert.assertEquals(theme.getName(), actualTheme.getName()); Assert.assertEquals(theme.getThemeFileUUID(), actualTheme.getThemeFileUUID()); Assert.assertEquals(theme.isActive(), actualTheme.isActive()); Assert.assertEquals(DEFAULT_CONFIG_VALUES.size(), actualTheme.getThemeElements().size()); for (ThemeElement elem : actualTheme.getThemeElements()) { String expectedDefaultValue = DEFAULT_CONFIG_VALUES.get(elem.getKey()); Assert.assertEquals(expectedDefaultValue, elem.getDefaultValue()); String expectedCustomValue = CUSTOM_CONFIG_VALUES.get(elem.getKey()); Assert.assertEquals(expectedCustomValue, elem.getCustomValue()); } // Check that the save theme files have been decompressed and processed correctly. // Check the raw file directory. File rawDir = fileService.getTargetDirectory(actualTheme, Theme.THEME_DIR_RAW, false); Assert.assertEquals(TEST_CSS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_CSS_FILE_PATH))); Assert.assertEquals(TEST_TEMPLATE_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_TEMPLATE_FILE_PATH))); Assert.assertEquals(TEST_JS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_JS_FILE_PATH))); BufferedImage rawImg = ImageIO.read(new File(rawDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, rawImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, rawImg.getHeight()); // Check the processed file directory File processedDir = fileService.getTargetDirectory(actualTheme, Theme.THEME_DIR_PROCESSED, false); Assert.assertEquals(String.format(TEST_CSS_CUSTOM_CONTENT_TMPL, actualTheme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_CSS_FILE_PATH)).trim()); Assert.assertEquals(String.format(TEST_TEMPLATE_CUSTOM_CONTENT, actualTheme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_TEMPLATE_FILE_PATH)).trim()); Assert.assertEquals(TEST_JS_CUSTOM_CONTENT, FileUtils.fileRead(new File(processedDir, TEST_JS_FILE_PATH)).trim()); BufferedImage processedImg = ImageIO.read(new File(processedDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, processedImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, processedImg.getHeight()); }
From source file:au.com.gaiaresources.bdrs.controller.theme.ThemeControllerTest.java
@Test public void testEditRevertSubmit() throws Exception { ManagedFile mf = new ManagedFile(); mf.setContentType("application/zip"); mf.setFilename("testTheme.zip"); mf.setCredit(""); mf.setLicense(""); mf.setDescription(""); managedFileDAO.save(mf);/*from www . j a v a 2s .c om*/ fileService.createFile(mf.getClass(), mf.getId(), mf.getFilename(), createTestTheme(DEFAULT_CONFIG_VALUES)); Portal portal = getRequestContext().getPortal(); Map<String, ThemeElement> themeElementMap = new HashMap<String, ThemeElement>(); List<ThemeElement> themeElements = new ArrayList<ThemeElement>(DEFAULT_CONFIG_VALUES.size()); for (Map.Entry<String, String> entry : DEFAULT_CONFIG_VALUES.entrySet()) { ThemeElement te = new ThemeElement(); te.setKey(entry.getKey()); te.setDefaultValue(entry.getValue()); te.setCustomValue(CUSTOM_CONFIG_VALUES.get(entry.getKey())); te.setType(ThemeElementType.TEXT); te = themeDAO.save(te); themeElements.add(te); themeElementMap.put(te.getKey(), te); } Theme theme = new Theme(); theme.setActive(true); theme.setName("Test Theme"); theme.setThemeFileUUID(mf.getUuid()); theme.setCssFiles(new String[] { TEST_CSS_FILE_PATH }); theme.setJsFiles(new String[] { TEST_JS_FILE_PATH }); theme.setPortal(portal); theme.setThemeElements(themeElements); theme = themeDAO.save(theme); ZipUtils.decompressToDir(new ZipFile(fileService.getFile(mf, mf.getFilename()).getFile()), fileService.getTargetDirectory(theme, Theme.THEME_DIR_RAW, true)); login("root", "password", new String[] { Role.ROOT }); request.setMethod("POST"); request.setRequestURI("/bdrs/root/theme/edit.htm"); request.setParameter("portalPk", portal.getId().toString()); request.setParameter("themePk", theme.getId().toString()); request.setParameter("name", theme.getName()); request.setParameter("themeFileUUID", theme.getThemeFileUUID()); request.setParameter("active", String.valueOf(theme.isActive())); request.setParameter("revert", "Revert Theme"); for (Map.Entry<String, String> customEntry : CUSTOM_CONFIG_VALUES.entrySet()) { ThemeElement te = themeElementMap.get(customEntry.getKey()); request.setParameter(String.format(ThemeController.THEME_ELEMENT_CUSTOM_VALUE_TEMPLATE, te.getId()), customEntry.getValue()); } ModelAndView mv = handle(request, response); ModelAndViewAssert.assertModelAttributeValue(mv, "portalId", portal.getId()); Assert.assertTrue(mv.getView() instanceof RedirectView); RedirectView redirect = (RedirectView) mv.getView(); Assert.assertEquals("/bdrs/root/theme/edit.htm", redirect.getUrl()); Theme actualTheme = themeDAO.getTheme((Integer) mv.getModel().get("themeId")); Assert.assertEquals(theme.getName(), actualTheme.getName()); Assert.assertEquals(theme.getThemeFileUUID(), actualTheme.getThemeFileUUID()); Assert.assertEquals(theme.isActive(), actualTheme.isActive()); Assert.assertEquals(DEFAULT_CONFIG_VALUES.size(), actualTheme.getThemeElements().size()); for (ThemeElement elem : actualTheme.getThemeElements()) { String expectedDefaultValue = DEFAULT_CONFIG_VALUES.get(elem.getKey()); Assert.assertEquals(expectedDefaultValue, elem.getDefaultValue()); Assert.assertEquals(expectedDefaultValue, elem.getCustomValue()); } // Check that the save theme files have been decompressed and processed correctly. // Check the raw file directory. File rawDir = fileService.getTargetDirectory(actualTheme, Theme.THEME_DIR_RAW, false); Assert.assertEquals(TEST_CSS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_CSS_FILE_PATH))); Assert.assertEquals(TEST_TEMPLATE_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_TEMPLATE_FILE_PATH))); Assert.assertEquals(TEST_JS_RAW_CONTENT, FileUtils.fileRead(new File(rawDir, TEST_JS_FILE_PATH))); BufferedImage rawImg = ImageIO.read(new File(rawDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, rawImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, rawImg.getHeight()); // Check the processed file directory File processedDir = fileService.getTargetDirectory(actualTheme, Theme.THEME_DIR_PROCESSED, false); Assert.assertEquals(String.format(TEST_CSS_DEFAULT_CONTENT_TMPL, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_CSS_FILE_PATH)).trim()); Assert.assertEquals(String.format(TEST_TEMPLATE_DEFAULT_CONTENT, theme.getId()).trim(), FileUtils.fileRead(new File(processedDir, TEST_TEMPLATE_FILE_PATH)).trim()); Assert.assertEquals(TEST_JS_DEFAULT_CONTENT, FileUtils.fileRead(new File(processedDir, TEST_JS_FILE_PATH)).trim()); BufferedImage processedImg = ImageIO.read(new File(processedDir, TEST_IMAGE_FILE_PATH)); Assert.assertEquals(IMAGE_WIDTH, processedImg.getWidth()); Assert.assertEquals(IMAGE_HEIGHT, processedImg.getHeight()); assertThemePage(theme.getId().intValue()); }
From source file:org.orcid.frontend.web.controllers.OauthConfirmAccessController.java
@RequestMapping(value = { "/custom/signin.json", "/custom/login.json" }, method = RequestMethod.POST) public @ResponseBody OauthAuthorizeForm authenticateAndAuthorize(HttpServletRequest request, HttpServletResponse response, @RequestBody OauthAuthorizeForm form) { // Clean form errors form.setErrors(new ArrayList<String>()); boolean willBeRedirected = false; if (form.getApproved()) { // Validate name and password validateUserNameAndPassword(form); if (form.getErrors().isEmpty()) { try { // Authenticate user Authentication auth = authenticateUser(request, form); // Create authorization params SimpleSessionStatus status = new SimpleSessionStatus(); Map<String, Object> model = new HashMap<String, Object>(); Map<String, String> params = new HashMap<String, String>(); Map<String, String> approvalParams = new HashMap<String, String>(); // Set params setOauthParams(form, params, approvalParams, false); // Authorize try { authorizationEndpoint.authorize(model, params, status, auth); } catch (RedirectMismatchException rUriError) { String redirectUri = this.getBaseUri() + REDIRECT_URI_ERROR; // Set the client id redirectUri = redirectUri.replace("{0}", form.getClientId().getValue()); // Set the response type if needed if (!PojoUtil.isEmpty(form.getResponseType())) redirectUri += "&response_type=" + form.getResponseType().getValue(); // Set the redirect uri if (!PojoUtil.isEmpty(form.getRedirectUri())) redirectUri += "&redirect_uri=" + form.getRedirectUri().getValue(); // Set the scope param if (!PojoUtil.isEmpty(form.getScope())) redirectUri += "&scope=" + form.getScope().getValue(); // Copy the state param if present if (params != null && params.containsKey("state")) redirectUri += "&state=" + params.get("state"); form.setRedirectUri(Text.valueOf(redirectUri)); LOGGER.info(// w w w . j a v a 2 s . co m "OauthConfirmAccessController form.getRedirectUri being sent to client browser: " + form.getRedirectUri()); return form; } // Approve RedirectView view = (RedirectView) authorizationEndpoint.approveOrDeny(approvalParams, model, status, auth); form.setRedirectUri(Text.valueOf(view.getUrl())); willBeRedirected = true; } catch (AuthenticationException ae) { form.getErrors().add(getMessage("orcid.frontend.security.bad_credentials")); } } } else { String stateParam = null; if (!PojoUtil.isEmpty(form.getStateParam())) { stateParam = form.getStateParam().getValue(); } form.setRedirectUri(Text.valueOf(buildDenyRedirectUri(form.getRedirectUri().getValue(), stateParam))); willBeRedirected = true; } // If there was an authentication error, dont log since the user will // not be redirected yet if (willBeRedirected) { SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); if (savedRequest != null) LOGGER.info("OauthConfirmAccessController original request: " + savedRequest.getRedirectUrl()); LOGGER.info("OauthConfirmAccessController form.getRedirectUri being sent to client browser: " + form.getRedirectUri()); } return form; }
From source file:org.orcid.frontend.web.controllers.OauthConfirmAccessController.java
@RequestMapping(value = "/custom/registerConfirm.json", method = RequestMethod.POST) public @ResponseBody OauthRegistrationForm registerAndAuthorize(HttpServletRequest request, HttpServletResponse response, @RequestBody OauthRegistrationForm form) { if (form.getApproved()) { boolean usedCaptcha = false; // If recatcha wasn't loaded do nothing. This is for countries that // block google. if (form.getGrecaptchaWidgetId().getValue() != null) { // If the captcha verified key is not in the session, redirect // to // the login page if (request.getSession() .getAttribute(RegistrationController.GRECAPTCHA_SESSION_ATTRIBUTE_NAME) == null || PojoUtil.isEmpty(form.getGrecaptcha()) || !encryptionManager.encryptForExternalUse(form.getGrecaptcha().getValue()) .equals(request.getSession() .getAttribute(RegistrationController.GRECAPTCHA_SESSION_ATTRIBUTE_NAME))) { String redirectUri = this.getBaseUri() + REDIRECT_URI_ERROR; // Set the client id redirectUri = redirectUri.replace("{0}", form.getClientId().getValue()); // Set the response type if needed if (!PojoUtil.isEmpty(form.getResponseType())) redirectUri += "&response_type=" + form.getResponseType().getValue(); // Set the redirect uri if (!PojoUtil.isEmpty(form.getRedirectUri())) redirectUri += "&redirect_uri=" + form.getRedirectUri().getValue(); // Set the scope param if (!PojoUtil.isEmpty(form.getScope())) redirectUri += "&scope=" + form.getScope().getValue(); // Copy the state param if present if (!PojoUtil.isEmpty(request.getParameter("state"))) redirectUri += "&state=" + request.getParameter("state"); form.setRedirectUri(Text.valueOf(redirectUri)); SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); if (savedRequest != null) LOGGER.info(/*from w w w. j a v a2 s . c o m*/ "OauthConfirmAccessController original request: " + savedRequest.getRedirectUrl()); LOGGER.info("OauthConfirmAccessController form.getRedirectUri being sent to client browser: " + form.getRedirectUri()); return form; } usedCaptcha = true; } // Remove the session hash if needed if (request.getSession() .getAttribute(RegistrationController.GRECAPTCHA_SESSION_ATTRIBUTE_NAME) != null) { request.getSession().removeAttribute(RegistrationController.GRECAPTCHA_SESSION_ATTRIBUTE_NAME); } // Check there are no errors registrationController.validateRegistrationFields(request, form); if (form.getErrors().isEmpty()) { // Register user registrationController.createMinimalRegistration(request, RegistrationController.toProfile(form, request), usedCaptcha); // Authenticate user String email = form.getEmail().getValue(); String password = form.getPassword().getValue(); Authentication auth = authenticateUser(request, email, password); // Create authorization params SimpleSessionStatus status = new SimpleSessionStatus(); Map<String, Object> model = new HashMap<String, Object>(); Map<String, String> params = new HashMap<String, String>(); Map<String, String> approvalParams = new HashMap<String, String>(); // Set params setOauthParams(form, params, approvalParams, true); // Authorize try { authorizationEndpoint.authorize(model, params, status, auth); } catch (RedirectMismatchException rUriError) { String redirectUri = this.getBaseUri() + REDIRECT_URI_ERROR; // Set the client id redirectUri = redirectUri.replace("{0}", form.getClientId().getValue()); // Set the response type if needed if (!PojoUtil.isEmpty(form.getResponseType())) redirectUri += "&response_type=" + form.getResponseType().getValue(); // Set the redirect uri if (!PojoUtil.isEmpty(form.getRedirectUri())) redirectUri += "&redirect_uri=" + form.getRedirectUri().getValue(); // Set the scope param if (!PojoUtil.isEmpty(form.getScope())) redirectUri += "&scope=" + form.getScope().getValue(); // Copy the state param if present if (params != null && params.containsKey("state")) redirectUri += "&state=" + params.get("state"); form.setRedirectUri(Text.valueOf(redirectUri)); LOGGER.info("OauthConfirmAccessController form.getRedirectUri being sent to client browser: " + form.getRedirectUri()); return form; } // Approve RedirectView view = (RedirectView) authorizationEndpoint.approveOrDeny(approvalParams, model, status, auth); form.setRedirectUri(Text.valueOf(view.getUrl())); } } else { form.setRedirectUri(Text.valueOf( buildDenyRedirectUri(form.getRedirectUri().getValue(), request.getParameter("state")))); } SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response); if (savedRequest != null) { if (savedRequest != null) LOGGER.info("OauthConfirmAccessController original request: " + savedRequest.getRedirectUrl()); LOGGER.info("OauthConfirmAccessController original request: " + savedRequest.getRedirectUrl()); } LOGGER.info("OauthConfirmAccessController form.getRedirectUri being sent to client browser: " + form.getRedirectUri()); return form; }