@SneakyThrows
 public ResultActions salvarPagina(TipoPagina tipo, String id, String conteudo) {
   return mvc.perform(
       post("/editar/api/pagina/" + tipo.getNome() + "/" + id)
           .content(conteudo)
           .accept(ALL)
           .contentType(APPLICATION_XML));
 }
  @RequestMapping(value = "/editar/api/pagina/{tipo}/{id}", method = POST)
  RedirectView salvar(
      @PathVariable("tipo") String tipo,
      @PathVariable("id") String id,
      @RequestBody DOMSource servico)
      throws Exception {
    TipoPagina tipoPagina = TipoPagina.fromNome(tipo);
    String conteudo = reformatadorXml.formata(servico);
    ConteudoVersionado conteudoVersionado = factory.pagina(id, tipoPagina);

    if (!usuarioPodeRealizarAcao(userProfiles, tipoPagina, id)) {
      throw new AccessDeniedException("Usuário sem permissão");
    }

    conteudoVersionado.salvar(userProfiles.get(), conteudo);
    return new RedirectView(
        "/editar/api/pagina/" + tipo + "/" + conteudoVersionado.getId(), true, false);
  }
 @SneakyThrows
 public ResultActions editarPaginaNova(TipoPagina tipo) {
   return mvc.perform(get("/editar/api/pagina/" + tipo.getNome() + "/novo").accept(ALL));
 }
 @SneakyThrows
 public ResultActions editarPagina(TipoPagina tipo, String id) {
   return mvc.perform(get("/editar/api/pagina/" + tipo.getNome() + "/" + id).accept(ALL));
 }
 @SneakyThrows
 public ResultActions despublicarPagina(TipoPagina tipo, String id) {
   String url = format("/editar/api/pagina/" + tipo.getNome() + "/%s/despublicar", id);
   return mvc.perform(post(url).accept(ALL));
 }