Example usage for org.springframework.web.servlet.view RedirectView getUrl

List of usage examples for org.springframework.web.servlet.view RedirectView getUrl

Introduction

In this page you can find the example usage for org.springframework.web.servlet.view RedirectView getUrl.

Prototype

@Nullable
public String getUrl() 

Source Link

Document

Return the URL of the resource that this view wraps.

Usage

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;
}