You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HttpClientConnectionTest.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * Copyright (C) 2018 Gabriel Couto <gmcouto@gmail.com> and others
  3. *
  4. * This program and the accompanying materials are made available under the
  5. * terms of the Eclipse Distribution License v. 1.0 which is available at
  6. * https://www.eclipse.org/org/documents/edl-v10.php.
  7. *
  8. * SPDX-License-Identifier: BSD-3-Clause
  9. */
  10. package org.eclipse.jgit.transport.http.apache;
  11. import org.apache.http.HttpEntity;
  12. import org.apache.http.HttpResponse;
  13. import org.apache.http.ProtocolVersion;
  14. import org.apache.http.StatusLine;
  15. import org.apache.http.message.AbstractHttpMessage;
  16. import org.junit.Test;
  17. import java.net.MalformedURLException;
  18. import java.util.List;
  19. import java.util.Locale;
  20. import static org.junit.Assert.assertEquals;
  21. import static org.junit.Assert.assertTrue;
  22. public class HttpClientConnectionTest {
  23. @Test
  24. public void testGetHeaderFieldsAllowMultipleValues()
  25. throws MalformedURLException {
  26. HttpResponse responseMock = new HttpResponseMock();
  27. String headerField = "WWW-Authenticate";
  28. responseMock.addHeader(headerField, "Basic");
  29. responseMock.addHeader(headerField, "Digest");
  30. responseMock.addHeader(headerField, "NTLM");
  31. HttpClientConnection connection = new HttpClientConnection(
  32. "http://0.0.0.0/");
  33. connection.resp = responseMock;
  34. List<String> headerValues = connection.getHeaderFields()
  35. .get(headerField);
  36. assertEquals(3, headerValues.size());
  37. assertTrue(headerValues.contains("Basic"));
  38. assertTrue(headerValues.contains("Digest"));
  39. assertTrue(headerValues.contains("NTLM"));
  40. }
  41. private static class HttpResponseMock extends AbstractHttpMessage
  42. implements HttpResponse {
  43. @Override
  44. public StatusLine getStatusLine() {
  45. throw new UnsupportedOperationException();
  46. }
  47. @Override
  48. public void setStatusLine(StatusLine statusLine) {
  49. throw new UnsupportedOperationException();
  50. }
  51. @Override
  52. public void setStatusLine(ProtocolVersion protocolVersion, int i) {
  53. throw new UnsupportedOperationException();
  54. }
  55. @Override
  56. public void setStatusLine(ProtocolVersion protocolVersion, int i,
  57. String s) {
  58. throw new UnsupportedOperationException();
  59. }
  60. @Override
  61. public void setStatusCode(int i) throws IllegalStateException {
  62. throw new UnsupportedOperationException();
  63. }
  64. @Override
  65. public void setReasonPhrase(String s) throws IllegalStateException {
  66. throw new UnsupportedOperationException();
  67. }
  68. @Override
  69. public HttpEntity getEntity() {
  70. throw new UnsupportedOperationException();
  71. }
  72. @Override
  73. public void setEntity(HttpEntity httpEntity) {
  74. throw new UnsupportedOperationException();
  75. }
  76. @Override
  77. public Locale getLocale() {
  78. throw new UnsupportedOperationException();
  79. }
  80. @Override
  81. public void setLocale(Locale locale) {
  82. throw new UnsupportedOperationException();
  83. }
  84. @Override
  85. public ProtocolVersion getProtocolVersion() {
  86. throw new UnsupportedOperationException();
  87. }
  88. }
  89. }