public String getBody() { final StringBuilder sb = new StringBuilder(); sb.append(this.value); for (int i = 0; i < this.parameters.size(); i++) { final NameValuePair parameter = this.parameters.get(i); sb.append("; "); sb.append(parameter.getName()); sb.append("=\""); sb.append(parameter.getValue()); sb.append("\""); } return sb.toString(); }
@Test public void test206ResponseGeneratedFromCacheMustHaveContentRangeOrMultipartByteRangesContentType() throws Exception { final ClassicHttpRequest req1 = new BasicClassicHttpRequest("GET", "/"); final ClassicHttpResponse resp1 = HttpTestUtils.make200Response(); resp1.setHeader("ETag", "\"etag\""); resp1.setHeader("Cache-Control", "max-age=3600"); final ClassicHttpRequest req2 = new BasicClassicHttpRequest("GET", "/"); req2.setHeader("Range", "bytes=0-50"); backendExpectsAnyRequestAndReturn(resp1).times(1, 2); replayMocks(); execute(req1); final ClassicHttpResponse result = execute(req2); verifyMocks(); if (HttpStatus.SC_PARTIAL_CONTENT == result.getCode()) { if (result.getFirstHeader("Content-Range") == null) { final HeaderElement elt = MessageSupport.parse(result.getFirstHeader("Content-Type"))[0]; Assert.assertTrue("multipart/byteranges".equalsIgnoreCase(elt.getName())); Assert.assertNotNull(elt.getParameterByName("boundary")); Assert.assertNotNull(elt.getParameterByName("boundary").getValue()); Assert.assertFalse("".equals(elt.getParameterByName("boundary").getValue().trim())); } } }
@Override public void processChallenge( final AuthChallenge authChallenge, final HttpContext context) throws MalformedChallengeException { this.paramMap.clear(); final List<NameValuePair> params = authChallenge.getParams(); if (params != null) { for (final NameValuePair param: params) { this.paramMap.put(param.getName().toLowerCase(Locale.ROOT), param.getValue()); } } this.complete = true; }
/** * @since 4.3 */ public String getParameter(final String name) { Args.notEmpty(name, "Parameter name"); if (this.params == null) { return null; } for (final NameValuePair param: this.params) { if (param.getName().equalsIgnoreCase(name)) { return param.getValue(); } } return null; }
static String extractCN(final String subjectPrincipal) throws SSLException { if (subjectPrincipal == null) { return null; } final List<NameValuePair> attributes = DistinguishedNameParser.INSTANCE.parse(subjectPrincipal); for (final NameValuePair attribute: attributes) { if (TextUtils.isBlank(attribute.getName()) || attribute.getValue() == null) { throw new SSLException(subjectPrincipal + " is not a valid X500 distinguished name"); } if (attribute.getName().equalsIgnoreCase("cn")) { return attribute.getValue(); } } return null; }
private void moveAnyParametersInPathToQuery(final Map<String, Object> request) throws TestingFrameworkException { try { final String path = (String) request.get(PATH); if (path != null) { final URI uri = path.startsWith("/") ? new URI("http://localhost:8080" + path) : new URI("http://localhost:8080/"); final List<NameValuePair> params = URLEncodedUtils.parse(uri, StandardCharsets.UTF_8); @SuppressWarnings("unchecked") final Map<String, Object> queryMap = (Map<String, Object>) request.get(QUERY); for (final NameValuePair param : params) { queryMap.put(param.getName(), param.getValue()); } if (! params.isEmpty()) { request.put(PATH, uri.getPath()); } } } catch (final URISyntaxException e) { throw new TestingFrameworkException(e); } }
private void moveAnyParametersInPathToQuery(final Map<String, Object> request) throws TestingFrameworkException { try { final String path = (String) request.get(PATH); if (path != null) { final URI uri = path.startsWith("/") ? new URI("http://localhost:8080" + path) : new URI("http://localhost:8080/"); final List<NameValuePair> params = URLEncodedUtils.parse(uri, StandardCharsets.UTF_8); @SuppressWarnings("unchecked") final Map<String, Object> queryMap = (Map<String, Object>) request.get(QUERY); for (final NameValuePair param : params) { queryMap.put(param.getName(), param.getValue()); } if (! params.isEmpty()) { request.put(PATH, uri.getPath()); } } } catch (final URISyntaxException e) { throw new TestingFrameworkException(e); } }
/** * @since 4.3 */ public String getParameter(final String name) { Args.notEmpty(name, "Parameter name"); if (this.params == null) { return null; } for (final NameValuePair param: this.params) { if (param.getName().equalsIgnoreCase(name)) { return param.getValue(); } } return null; }
private static AuthChallenge createAuthChallenge(final ChallengeType challengeType, final String scheme, final List<NameValuePair> params) throws ParseException { if (scheme != null) { if (params.size() == 1) { final NameValuePair nvp = params.get(0); if (nvp.getValue() == null) { return new AuthChallenge(challengeType, scheme, nvp.getName(), null); } } return new AuthChallenge(challengeType, scheme, null, params.size() > 0 ? params : null); } if (params.size() == 1) { final NameValuePair nvp = params.get(0); if (nvp.getValue() == null) { return new AuthChallenge(challengeType, nvp.getName(), null, null); } } throw new ParseException("Malformed auth challenge"); }
@Override public void processChallenge( final AuthChallenge authChallenge, final HttpContext context) throws MalformedChallengeException { Args.notNull(authChallenge, "AuthChallenge"); this.paramMap.clear(); final List<NameValuePair> params = authChallenge.getParams(); if (params != null) { for (final NameValuePair param: params) { this.paramMap.put(param.getName().toLowerCase(Locale.ROOT), param.getValue()); } } if (this.paramMap.isEmpty()) { throw new MalformedChallengeException("Missing digest auth parameters"); } this.complete = true; }
@Override public void formatNameValuePair( final CharArrayBuffer buffer, final NameValuePair nvp, final boolean quote) { Args.notNull(buffer, "Char array buffer"); Args.notNull(nvp, "Name / value pair"); buffer.append(nvp.getName()); final String value = nvp.getValue(); if (value != null) { buffer.append('='); formatValue(buffer, value, quote); } }
@Override public void formatNameValuePair( final CharArrayBuffer buffer, final NameValuePair nvp, final boolean quote) { Args.notNull(buffer, "Char array buffer"); Args.notNull(nvp, "Name / value pair"); buffer.append(nvp.getName()); final String value = nvp.getValue(); if (value != null) { buffer.append('='); formatValue(buffer, value, quote); } }
@Override public HeaderElement parseHeaderElement(final CharSequence buffer, final ParserCursor cursor) { Args.notNull(buffer, "Char sequence"); Args.notNull(cursor, "Parser cursor"); final NameValuePair nvp = parseNameValuePair(buffer, cursor); NameValuePair[] params = null; if (!cursor.atEnd()) { final char ch = buffer.charAt(cursor.getPos() - 1); if (ch != ELEM_DELIMITER) { params = parseParameters(buffer, cursor); } } return new BasicHeaderElement(nvp.getName(), nvp.getValue(), params); }
@Override public HeaderElement parseHeaderElement(final CharSequence buffer, final ParserCursor cursor) { Args.notNull(buffer, "Char sequence"); Args.notNull(cursor, "Parser cursor"); final NameValuePair nvp = parseNameValuePair(buffer, cursor); NameValuePair[] params = null; if (!cursor.atEnd()) { final char ch = buffer.charAt(cursor.getPos() - 1); if (ch != ELEM_DELIMITER) { params = parseParameters(buffer, cursor); } } return new BasicHeaderElement(nvp.getName(), nvp.getValue(), params); }
private static void assertNameValuePair ( final NameValuePair parameter, final String expectedName, final String expectedValue) { Assert.assertEquals(parameter.getName(), expectedName); Assert.assertEquals(parameter.getValue(), expectedValue); }
private static void assertNameValuePair ( final NameValuePair parameter, final String expectedName, final String expectedValue) { Assert.assertEquals(parameter.getName(), expectedName); Assert.assertEquals(parameter.getValue(), expectedValue); }
@Test public void testConstructor() { final NameValuePair param = new BasicNameValuePair("name", "value"); Assert.assertEquals("name", param.getName()); Assert.assertEquals("value", param.getValue()); }
@Test public void testNVParseEscaped() { final String headerValue = "test1 = \"\\\"stuff\\\"\"; test2= \"\\\\\"; test3 = \"stuff; stuff\""; final CharArrayBuffer buf = new CharArrayBuffer(64); buf.append(headerValue); final ParserCursor cursor = new ParserCursor(0, buf.length()); final NameValuePair[] params = this.parser.parseParameters(buf, cursor); Assert.assertEquals(3, params.length); Assert.assertEquals("test1", params[0].getName()); Assert.assertEquals("\"stuff\"", params[0].getValue()); Assert.assertEquals("test2", params[1].getName()); Assert.assertEquals("\\", params[1].getValue()); Assert.assertEquals("test3", params[2].getName()); Assert.assertEquals("stuff; stuff", params[2].getValue()); }
@Test public void testConstructor3() throws Exception { final HeaderElement element = new BasicHeaderElement("name", "value", new NameValuePair[] { new BasicNameValuePair("param1", "value1"), new BasicNameValuePair("param2", "value2") } ); Assert.assertEquals("name", element.getName()); Assert.assertEquals("value", element.getValue()); Assert.assertEquals(2, element.getParameters().length); Assert.assertEquals("value1", element.getParameterByName("param1").getValue()); Assert.assertEquals("value2", element.getParameterByName("param2").getValue()); }
@Test public void testParamByName() throws Exception { final String s = "name = value; param1 = value1; param2 = value2"; final CharArrayBuffer buf = new CharArrayBuffer(64); buf.append(s); final ParserCursor cursor = new ParserCursor(0, buf.length()); final HeaderElement element = BasicHeaderValueParser.INSTANCE.parseHeaderElement(buf, cursor); Assert.assertEquals("value1", element.getParameterByName("param1").getValue()); Assert.assertEquals("value2", element.getParameterByName("param2").getValue()); Assert.assertNull(element.getParameterByName("param3")); try { element.getParameterByName(null); Assert.fail("IllegalArgumentException should have been thrown"); } catch (final IllegalArgumentException ex) { //expected } }