1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package org.eclipse.jgit.transport.http.apache;
44
45 import org.apache.http.HttpEntity;
46 import org.apache.http.HttpResponse;
47 import org.apache.http.ProtocolVersion;
48 import org.apache.http.StatusLine;
49 import org.apache.http.message.AbstractHttpMessage;
50 import org.junit.Test;
51
52 import java.net.MalformedURLException;
53 import java.util.List;
54 import java.util.Locale;
55
56 import static org.junit.Assert.assertEquals;
57 import static org.junit.Assert.assertTrue;
58
59 public class HttpClientConnectionTest {
60 @Test
61 public void testGetHeaderFieldsAllowMultipleValues()
62 throws MalformedURLException {
63 HttpResponse responseMock = new HttpResponseMock();
64 String headerField = "WWW-Authenticate";
65 responseMock.addHeader(headerField, "Basic");
66 responseMock.addHeader(headerField, "Digest");
67 responseMock.addHeader(headerField, "NTLM");
68 HttpClientConnection connection = new HttpClientConnection(
69 "http://0.0.0.0/");
70 connection.resp = responseMock;
71 List<String> headerValues = connection.getHeaderFields()
72 .get(headerField);
73 assertEquals(3, headerValues.size());
74 assertTrue(headerValues.contains("Basic"));
75 assertTrue(headerValues.contains("Digest"));
76 assertTrue(headerValues.contains("NTLM"));
77 }
78
79 private static class HttpResponseMock extends AbstractHttpMessage
80 implements HttpResponse {
81 @Override
82 public StatusLine getStatusLine() {
83 throw new UnsupportedOperationException();
84 }
85
86 @Override
87 public void setStatusLine(StatusLine statusLine) {
88 throw new UnsupportedOperationException();
89 }
90
91 @Override
92 public void setStatusLine(ProtocolVersion protocolVersion, int i) {
93 throw new UnsupportedOperationException();
94 }
95
96 @Override
97 public void setStatusLine(ProtocolVersion protocolVersion, int i,
98 String s) {
99 throw new UnsupportedOperationException();
100 }
101
102 @Override
103 public void setStatusCode(int i) throws IllegalStateException {
104 throw new UnsupportedOperationException();
105 }
106
107 @Override
108 public void setReasonPhrase(String s) throws IllegalStateException {
109 throw new UnsupportedOperationException();
110 }
111
112 @Override
113 public HttpEntity getEntity() {
114 throw new UnsupportedOperationException();
115 }
116
117 @Override
118 public void setEntity(HttpEntity httpEntity) {
119 throw new UnsupportedOperationException();
120 }
121
122 @Override
123 public Locale getLocale() {
124 throw new UnsupportedOperationException();
125 }
126
127 @Override
128 public void setLocale(Locale locale) {
129 throw new UnsupportedOperationException();
130 }
131
132 @Override
133 public ProtocolVersion getProtocolVersion() {
134 throw new UnsupportedOperationException();
135 }
136 }
137 }