diff options
Diffstat (limited to 'org.eclipse.jgit.http.test/tst/org')
3 files changed, 154 insertions, 13 deletions
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java index ef059bf2a3..53626b1b2e 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java @@ -175,7 +175,9 @@ public class HttpClientTests extends HttpTestCase { } catch (NoRemoteRepositoryException err) { String exp = uri + ": " + uri + "/info/refs?service=git-upload-pack not found"; - assertEquals(exp, err.getMessage()); + assertNotNull(err.getMessage()); + assertTrue("Unexpected error message", + err.getMessage().startsWith(exp)); } } } @@ -191,7 +193,9 @@ public class HttpClientTests extends HttpTestCase { } catch (NoRemoteRepositoryException err) { String exp = uri + ": " + uri + "/info/refs?service=git-upload-pack not found"; - assertEquals(exp, err.getMessage()); + assertNotNull(err.getMessage()); + assertTrue("Unexpected error message", + err.getMessage().startsWith(exp)); } } } @@ -363,7 +367,7 @@ public class HttpClientTests extends HttpTestCase { c.setRequestMethod("GET"); c.setRequestProperty("Git-Protocol", "version=2"); c.connect(); - assertThat(c.getResponseCode(), is(200)); + assertEquals(200, c.getResponseCode()); PacketLineIn pckIn = new PacketLineIn(c.getInputStream()); @@ -384,7 +388,7 @@ public class HttpClientTests extends HttpTestCase { c.setRequestMethod("GET"); c.setRequestProperty("Git-Protocol", "version=2"); c.connect(); - assertThat(c.getResponseCode(), is(200)); + assertEquals(200, c.getResponseCode()); PacketLineIn pckIn = new PacketLineIn(c.getInputStream()); assertThat(pckIn.readString(), is("version 2")); @@ -415,12 +419,12 @@ public class HttpClientTests extends HttpTestCase { // properly. Tests for other commands go in // UploadPackTest.java. - OutputStream os = c.getOutputStream(); - PacketLineOut pckOut = new PacketLineOut(os); - pckOut.writeString("command=ls-refs"); - pckOut.writeDelim(); - pckOut.end(); - os.close(); + try (OutputStream os = c.getOutputStream()) { + PacketLineOut pckOut = new PacketLineOut(os); + pckOut.writeString("command=ls-refs"); + pckOut.writeDelim(); + pckOut.end(); + } PacketLineIn pckIn = new PacketLineIn(c.getInputStream()); @@ -430,6 +434,6 @@ public class HttpClientTests extends HttpTestCase { assertTrue(s.matches("[0-9a-f]{40} [A-Za-z/]*")); } - assertThat(c.getResponseCode(), is(200)); + assertEquals(200, c.getResponseCode()); } } diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java index 65210d15a1..2b4a2511ed 100644 --- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java @@ -43,7 +43,7 @@ package org.eclipse.jgit.http.test; -import static org.eclipse.jgit.lib.Constants.CHARSET; +import static java.nio.charset.StandardCharsets.UTF_8; import static org.eclipse.jgit.util.HttpSupport.HDR_CONTENT_ENCODING; import static org.eclipse.jgit.util.HttpSupport.HDR_CONTENT_LENGTH; import static org.eclipse.jgit.util.HttpSupport.HDR_CONTENT_TYPE; @@ -1163,7 +1163,7 @@ public class SmartClientSmartServerTest extends HttpTestCase { public void testInvalidWant() throws Exception { @SuppressWarnings("resource") ObjectId id = new ObjectInserter.Formatter().idFor(Constants.OBJ_BLOB, - "testInvalidWant".getBytes(CHARSET)); + "testInvalidWant".getBytes(UTF_8)); Repository dst = createBareRepository(); try (Transport t = Transport.open(dst, remoteURI); diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/transport/http/apache/HttpClientConnectionTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/transport/http/apache/HttpClientConnectionTest.java new file mode 100644 index 0000000000..72c4921de6 --- /dev/null +++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/transport/http/apache/HttpClientConnectionTest.java @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2018 Gabriel Couto <gmcouto@gmail.com> + * and other copyright owners as documented in the project's IP log. + * + * This program and the accompanying materials are made available + * under the terms of the Eclipse Distribution License v1.0 which + * accompanies this distribution, is reproduced below, and is + * available at http://www.eclipse.org/org/documents/edl-v10.php + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * - Neither the name of the Eclipse Foundation, Inc. nor the + * names of its contributors may be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.eclipse.jgit.transport.http.apache; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.ProtocolVersion; +import org.apache.http.StatusLine; +import org.apache.http.message.AbstractHttpMessage; +import org.junit.Test; + +import java.net.MalformedURLException; +import java.util.List; +import java.util.Locale; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class HttpClientConnectionTest { + @Test + public void testGetHeaderFieldsAllowMultipleValues() + throws MalformedURLException { + HttpResponse responseMock = new HttpResponseMock(); + String headerField = "WWW-Authenticate"; + responseMock.addHeader(headerField, "Basic"); + responseMock.addHeader(headerField, "Digest"); + responseMock.addHeader(headerField, "NTLM"); + HttpClientConnection connection = new HttpClientConnection( + "http://0.0.0.0/"); + connection.resp = responseMock; + List<String> headerValues = connection.getHeaderFields() + .get(headerField); + assertEquals(3, headerValues.size()); + assertTrue(headerValues.contains("Basic")); + assertTrue(headerValues.contains("Digest")); + assertTrue(headerValues.contains("NTLM")); + } + + private class HttpResponseMock extends AbstractHttpMessage + implements HttpResponse { + @Override + public StatusLine getStatusLine() { + throw new UnsupportedOperationException(); + } + + @Override + public void setStatusLine(StatusLine statusLine) { + throw new UnsupportedOperationException(); + } + + @Override + public void setStatusLine(ProtocolVersion protocolVersion, int i) { + throw new UnsupportedOperationException(); + } + + @Override + public void setStatusLine(ProtocolVersion protocolVersion, int i, + String s) { + throw new UnsupportedOperationException(); + } + + @Override + public void setStatusCode(int i) throws IllegalStateException { + throw new UnsupportedOperationException(); + } + + @Override + public void setReasonPhrase(String s) throws IllegalStateException { + throw new UnsupportedOperationException(); + } + + @Override + public HttpEntity getEntity() { + throw new UnsupportedOperationException(); + } + + @Override + public void setEntity(HttpEntity httpEntity) { + throw new UnsupportedOperationException(); + } + + @Override + public Locale getLocale() { + throw new UnsupportedOperationException(); + } + + @Override + public void setLocale(Locale locale) { + throw new UnsupportedOperationException(); + } + + @Override + public ProtocolVersion getProtocolVersion() { + throw new UnsupportedOperationException(); + } + } +} |