/** * Returns the list of identifiers for the mails in the inbox * * @return The list of identifiers. * @throws ResourceException */ protected List<String> getMailIdentifiers() throws ResourceException { final List<String> result = new ArrayList<String>(); // 1 - Get to mailbox content final Request request = new Request(Method.GET, getMailboxUri()); if (getMailboxChallengeScheme() != null) { final ChallengeResponse challengeResponse = new ChallengeResponse( getMailboxChallengeScheme(), getMailboxLogin(), getMailboxPassword()); request.setChallengeResponse(challengeResponse); } final Response response = getContext().getClientDispatcher().handle(request); if (!response.getStatus().isSuccess()) { throw new ResourceException(response.getStatus(), "Cannot get the mail iddentifiers."); } // 2 - Parse the list of mails if (response.isEntityAvailable()) { final DomRepresentation rep = new DomRepresentation(response.getEntity()); for (final Node node : rep.getNodes("/emails/email/@href")) { final String href = node.getNodeValue(); if (href.startsWith("/")) { result.add(href.substring(1)); } else { result.add(href); } } } return result; }
/** * Tests conditional ranges requests. * * @throws Exception */ public void testConditionalRanges() throws Exception { Client client = new Client(Protocol.HTTP); // Test partial Get. Request request = new Request(Method.GET, "http://localhost:" + TEST_PORT + "/testGet"); Response response = client.handle(request); Tag entityTag = response.getEntity().getTag(); request.setRanges(Arrays.asList(new Range(1, Range.SIZE_MAX))); request.getConditions().setRangeTag(entityTag); response = client.handle(request); assertEquals(Status.SUCCESS_PARTIAL_CONTENT, response.getStatus()); assertEquals("234567890", response.getEntity().getText()); assertEquals(10, response.getEntity().getSize()); assertEquals(9, response.getEntity().getAvailableSize()); assertEquals(1, response.getEntity().getRange().getIndex()); assertEquals(9, response.getEntity().getRange().getSize()); entityTag = new Tag(entityTag.getName() + "-test"); request.setRanges(Arrays.asList(new Range(1, Range.SIZE_MAX))); request.getConditions().setRangeTag(entityTag); response = client.handle(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("1234567890", response.getEntity().getText()); client.stop(); }
public Response sendRequest(Request request) throws IOException { injectCustomSecurityMechanism(request); if (log.isLoggable(Level.FINE)) { RestClientLogHelper.logHttpRequest(log, Level.FINE, request); } Client client = initClient(); Response response = client.handle(request); if (log.isLoggable(Level.FINE)) { RestClientLogHelper.logHttpResponse(log, Level.FINE, response); } if (response.getStatus().isSuccess()) { return response; } else if (response.getStatus().equals(Status.CLIENT_ERROR_UNAUTHORIZED)) { // retry request with additional authentication Request retryRequest = createChallengeResponse(response); return sendRequest(retryRequest); } throw new RepositoryException( "Encountered error while retrieving http response (HttpStatus: " + response.getStatus() + ", Body: " + response.getEntity().getText() + ")"); }
public void testGetInt() throws IOException { Response response = get("int/467"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("467", response.getEntity().getText()); response = get("int/abc"); assertTrue(response.getStatus().isError()); }
/** Tests status getting/setting. */ public void testStatus() throws Exception { final Request request = getRequest(); final Response response = getResponse(request); response.setStatus(Status.SUCCESS_OK); assertEquals(Status.SUCCESS_OK, response.getStatus()); response.setStatus(Status.CLIENT_ERROR_BAD_REQUEST); assertEquals(Status.CLIENT_ERROR_BAD_REQUEST, response.getStatus()); }
public void testGetBigDecimal() throws IOException { Response response = get("BigDecimal/413624654744743534745767"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("413624654744743534745767", response.getEntity().getText()); response = get("BigDecimal/abc"); assertTrue(response.getStatus().isError()); }
public void testDecoded1() throws Exception { Response response = get("decoded/x"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("x", response.getEntity().getText()); response = get("decoded/sjkg"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("sjkg", response.getEntity().getText()); }
public void testX2() throws Exception { Response response = get("abcdef/1234"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("bcd\n12", response.getEntity().getText()); response = get("aXYZef/AB34"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("XYZ\nAB", response.getEntity().getText()); }
public void testX() throws Exception { Response response = get("abc123"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("123", response.getEntity().getText()); response = get("abcdef"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("def", response.getEntity().getText()); }
public void testGetMn() throws IOException { Response response = get("mn467"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("467", response.getEntity().getText()); response = get("mnabc"); assertTrue(response.getStatus().isError()); assertEquals(Status.CLIENT_ERROR_NOT_FOUND, response.getStatus()); }
public void testGetMediaType() throws IOException { Response response = get("MediaType/467"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("467/*", response.getEntity().getText()); response = get("MediaType/abc"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("abc/*", response.getEntity().getText()); }
/** * Posts a member to the collection resulting in the creation of a new resource. * * @param member The member representation to post. * @return The reference of the new resource. * @throws Exception */ public Reference postMember(Representation member) throws Exception { final Request request = new Request(Method.POST, getHref(), member); final Response response = getWorkspace().getService().getClientDispatcher().handle(request); if (response.getStatus().equals(Status.SUCCESS_CREATED)) { return response.getLocationRef(); } throw new Exception( "Couldn't post the member representation. Status returned: " + response.getStatus()); }
public void testWithDefault() throws Exception { Request request = createGetRequest("headerWithDefault"); Util.getHttpHeaders(request).add(HttpHeaderTestService.TEST_HEADER_NAME, "abc"); Response response = accessServer(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("abc", response.getEntity().getText()); request = createGetRequest("headerWithDefault"); response = accessServer(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("default", response.getEntity().getText()); }
public void testGetInteger() throws IOException { Response response = get("Integer/4423467"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("4423467", response.getEntity().getText()); response = get("Integer/423645365467345743734"); assertTrue(response.getStatus().isError()); assertEquals(Status.CLIENT_ERROR_NOT_FOUND, response.getStatus()); response = get("Integer/abc"); assertTrue(response.getStatus().isError()); assertEquals(Status.CLIENT_ERROR_NOT_FOUND, response.getStatus()); }
public void testEncodedWithDefault() throws Exception { Response response = get("encodedWithDefault;m=1;m=2;x=3"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("[1, 2]", response.getEntity().getText()); response = get("encodedWithDefault;m=1;i=2;x=3"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("[1]", response.getEntity().getText()); response = get("encodedWithDefault;a=1;i=2;x=3"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("[default]", response.getEntity().getText()); }
@Override protected int doHandle(Request request, Response response) { super.doHandle(request, response); if (response.getStatus().isSuccess() && request.getMethod().equals(Method.GET)) { boolean isHtml = false; for (Preference<MediaType> mt : request.getClientInfo().getAcceptedMediaTypes()) { if (mt.getMetadata().includes(MediaType.APPLICATION_XHTML) || mt.getMetadata().includes(MediaType.TEXT_HTML)) { isHtml = true; break; } } if (isHtml) { try { response.setEntity(toHtml(request, response)); } catch (SlipStreamException e) { // ok it failed generating html... do we care? } } } return CONTINUE; }
public void testCookies() throws IOException { final Request request = createGetRequest("cookies/cookieName"); request.getCookies().add(new Cookie("cookieName", "cookie-value")); final Response response = accessServer(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("cookieName=cookie-value", response.getEntity().getText()); }
@Test // TODO check, this seems wrong public void returns_bad_request_for_empty_form() { resource.init(null, request, response); resource.post(new Form()); assertThat(response.getStatus().getCode(), is(303)); }
public void testXmlTransformPost() throws Exception { final Response response = post("source", new StringRepresentation("abcdefg", MediaType.TEXT_XML)); sysOutEntityIfError(response); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("abcdefg", response.getEntity().getText()); }
@Test @SuppressWarnings("unchecked") public void shouldSetAnyOtherExceptionResponse() throws Exception { // Given Request request = mock(Request.class); Response response = mock(Response.class); Exception exception = new Exception("MESSAGE"); Status status = new Status(444, exception); given(response.getStatus()).willReturn(status); // When exceptionFilter.afterHandle(request, response); // Then ArgumentCaptor<JacksonRepresentation> exceptionResponseCaptor = ArgumentCaptor.forClass(JacksonRepresentation.class); verify(response).setEntity(exceptionResponseCaptor.capture()); Map<String, String> responseBody = (Map<String, String>) exceptionResponseCaptor.getValue().getObject(); assertThat(responseBody) .containsOnly(entry("error", "server_error"), entry("error_description", "MESSAGE")); ArgumentCaptor<Status> statusCaptor = ArgumentCaptor.forClass(Status.class); verify(response).setStatus(statusCaptor.capture()); assertThat(statusCaptor.getValue().getCode()).isEqualTo(500); assertThat(statusCaptor.getValue().getThrowable()).isEqualTo(exception); }
public void testCharSequenceGet() throws Exception { final Response response = get("CharSequence"); sysOutEntityIfError(response); assertEquals(Status.SUCCESS_OK, response.getStatus()); final Representation entity = response.getEntity(); assertEquals(ProviderTestService.createCS(), entity.getText()); }
public void testXmlTransformGet() throws Exception { final Response response = get("source"); sysOutEntityIfError(response); assertEquals(Status.SUCCESS_OK, response.getStatus()); final String entity = response.getEntity().getText(); assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><abc/>", entity); }
public void testByteArrayPost() throws Exception { final Representation entity = new StringRepresentation("big test", MediaType.APPLICATION_OCTET_STREAM); final Response response = post("byteArray", entity); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("big test", response.getEntity().getText()); }
/** * Tests partial Get requests. * * @throws IOException * @throws NoSuchAlgorithmException */ @Test public void testGet() throws IOException, NoSuchAlgorithmException { Client client = new Client(Protocol.HTTP); // Test partial Get. Request request = new Request(Method.PUT, "http://localhost:" + TEST_PORT + "/"); StringRepresentation rep = new StringRepresentation("0123456789"); try { DigesterRepresentation digester = new DigesterRepresentation(rep); // Such representation computes the digest while // consuming the wrapped representation. digester.exhaust(); // Set the digest with the computed one digester.setDigest(digester.computeDigest()); request.setEntity(digester); Response response = client.handle(request); assertEquals(Status.SUCCESS_OK, response.getStatus()); digester = new DigesterRepresentation(response.getEntity()); digester.exhaust(); assertTrue(digester.checkDigest()); client.stop(); } catch (Exception e) { fail(e.getMessage()); } }
/** @see ProviderTestService#mMapPost(javax.ws.rs.core.MultivaluedMap) */ public void testMultivaluedMapPost() throws Exception { final Response response = post("MultivaluedMap", createForm().getWebRepresentation()); assertEquals(Status.SUCCESS_OK, response.getStatus()); final MediaType respMediaType = response.getEntity().getMediaType(); assertEqualMediaType(MediaType.TEXT_PLAIN, respMediaType); final String respEntity = response.getEntity().getText(); assertEquals("[(lastname,Merkel), (firstname,Angela)]", respEntity); }
/** * Returns the feed representation. * * @return The feed representation. * @throws Exception */ public Feed getFeed() throws Exception { final Reference feedRef = getHref(); if (feedRef.isRelative()) { feedRef.setBaseRef(getWorkspace().getService().getReference()); } final Request request = new Request(Method.GET, feedRef.getTargetRef()); final Response response = getWorkspace().getService().getClientDispatcher().handle(request); if (response.getStatus().equals(Status.SUCCESS_OK)) { return new Feed(response.getEntity()); } throw new Exception( "Couldn't get the feed representation. Status returned: " + response.getStatus()); }
public void testWithoutPath() throws Exception { Response response = get(";firstname=Angela;lastname=Merkel"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("Angela Merkel", response.getEntity().getText()); response = get(";lastname=Merkel;firstname=Angela"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("Angela Merkel", response.getEntity().getText()); response = get(";firstname=Goofy"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("Goofy null", response.getEntity().getText()); response = get(";lastname=Goofy"); assertEquals(Status.SUCCESS_OK, response.getStatus()); assertEquals("null Goofy", response.getEntity().getText()); }
@Test @Ignore public void returns_bad_request_for_contact_with_too_short_name() { resource.init(null, request, response); Form form = new Form(); form.add("name", "A"); resource.post(form); assertThat(response.getStatus().getCode(), is(400)); }
public void testStringGet() throws Exception { getAndExpectAlphabet("String"); final Response response = get("String2"); sysOutEntityIfError(response); assertEquals(Status.SUCCESS_OK, response.getStatus()); final Representation entity = response.getEntity(); assertEquals(ProviderTestService.STRING2, entity.getText()); }
public void testBufferedReaderPost() throws Exception { Representation entity = new StringRepresentation("big test", MediaType.APPLICATION_OCTET_STREAM); final Response response = post("BufferedReader", entity); sysOutEntityIfError(response); assertEquals(Status.SUCCESS_OK, response.getStatus()); entity = response.getEntity(); assertEquals("big test", entity.getText()); }