diff options
Diffstat (limited to 'org.eclipse.jgit.http.test')
6 files changed, 179 insertions, 34 deletions
diff --git a/org.eclipse.jgit.http.test/BUILD b/org.eclipse.jgit.http.test/BUILD index 85a22422be..dcffa066d0 100644 --- a/org.eclipse.jgit.http.test/BUILD +++ b/org.eclipse.jgit.http.test/BUILD @@ -10,6 +10,7 @@ junit_tests( deps = [ ":helpers", "//lib:commons-logging", + "//lib:httpcore", "//lib:jetty-http", "//lib:jetty-io", "//lib:jetty-security", diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF index fed632d806..348c305d9b 100644 --- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.http.test Bundle-SymbolicName: org.eclipse.jgit.http.test -Bundle-Version: 5.0.4.qualifier +Bundle-Version: 5.1.4.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -11,6 +11,9 @@ Import-Package: javax.servlet;version="[2.5.0,3.2.0)", javax.servlet.http;version="[2.5.0,3.2.0)", org.apache.commons.codec;version="[1.6.0,2.0.0)", org.apache.commons.codec.binary;version="[1.6.0,2.0.0)", + org.apache.http;version="[4.3.0,5.0.0)", + org.apache.http.client;version="[4.3.0,5.0.0)", + org.apache.http.message;version="[4.3.0,5.0.0)", org.eclipse.jetty.continuation;version="[9.4.5,10.0.0)", org.eclipse.jetty.http;version="[9.4.5,10.0.0)", org.eclipse.jetty.io;version="[9.4.5,10.0.0)", @@ -25,25 +28,25 @@ Import-Package: javax.servlet;version="[2.5.0,3.2.0)", org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)", - org.eclipse.jgit.errors;version="[5.0.4,5.1.0)", - org.eclipse.jgit.http.server;version="[5.0.4,5.1.0)", - org.eclipse.jgit.http.server.glue;version="[5.0.4,5.1.0)", - org.eclipse.jgit.http.server.resolver;version="[5.0.4,5.1.0)", - org.eclipse.jgit.internal;version="[5.0.4,5.1.0)", - org.eclipse.jgit.internal.storage.dfs;version="[5.0.4,5.1.0)", - org.eclipse.jgit.internal.storage.file;version="[5.0.4,5.1.0)", - org.eclipse.jgit.internal.storage.reftable;version="[5.0.4,5.1.0)", - org.eclipse.jgit.junit;version="[5.0.4,5.1.0)", - org.eclipse.jgit.junit.http;version="[5.0.4,5.1.0)", - org.eclipse.jgit.lib;version="[5.0.4,5.1.0)", - org.eclipse.jgit.nls;version="[5.0.4,5.1.0)", - org.eclipse.jgit.revwalk;version="[5.0.4,5.1.0)", - org.eclipse.jgit.storage.file;version="[5.0.4,5.1.0)", - org.eclipse.jgit.transport;version="[5.0.4,5.1.0)", - org.eclipse.jgit.transport.http;version="[5.0.4,5.1.0)", - org.eclipse.jgit.transport.http.apache;version="[5.0.4,5.1.0)", - org.eclipse.jgit.transport.resolver;version="[5.0.4,5.1.0)", - org.eclipse.jgit.util;version="[5.0.4,5.1.0)", + org.eclipse.jgit.errors;version="[5.1.4,5.2.0)", + org.eclipse.jgit.http.server;version="[5.1.4,5.2.0)", + org.eclipse.jgit.http.server.glue;version="[5.1.4,5.2.0)", + org.eclipse.jgit.http.server.resolver;version="[5.1.4,5.2.0)", + org.eclipse.jgit.internal;version="[5.1.4,5.2.0)", + org.eclipse.jgit.internal.storage.dfs;version="[5.1.4,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.4,5.2.0)", + org.eclipse.jgit.internal.storage.reftable;version="[5.1.4,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.4,5.2.0)", + org.eclipse.jgit.junit.http;version="[5.1.4,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.4,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.4,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.4,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.4,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.4,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.4,5.2.0)", + org.eclipse.jgit.transport.http.apache;version="[5.1.4,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.4,5.2.0)", + org.eclipse.jgit.util;version="[5.1.4,5.2.0)", org.hamcrest;version="[1.1.0,2.0.0)", org.hamcrest.core;version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)", diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml index 87e2f4ccae..072756db3d 100644 --- a/org.eclipse.jgit.http.test/pom.xml +++ b/org.eclipse.jgit.http.test/pom.xml @@ -51,7 +51,7 @@ <parent> <groupId>org.eclipse.jgit</groupId> <artifactId>org.eclipse.jgit-parent</artifactId> - <version>5.0.4-SNAPSHOT</version> + <version>5.1.4-SNAPSHOT</version> </parent> <artifactId>org.eclipse.jgit.http.test</artifactId> 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(); + } + } +} |