aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.http.test
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit.http.test')
-rw-r--r--org.eclipse.jgit.http.test/META-INF/MANIFEST.MF41
-rw-r--r--org.eclipse.jgit.http.test/pom.xml2
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java2
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java2
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java2
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HttpClientTests.java93
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java10
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java5
-rw-r--r--org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java17
9 files changed, 125 insertions, 49 deletions
diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF
index 6169d0c0f4..fed632d806 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: 4.11.10.qualifier
+Bundle-Version: 5.0.4.qualifier
Bundle-Vendor: %provider_name
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -25,25 +25,26 @@ 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="[4.11.10,4.12.0)",
- org.eclipse.jgit.http.server;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.http.server.glue;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.http.server.resolver;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.internal;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.internal.storage.dfs;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.internal.storage.file;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.internal.storage.reftable;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.junit;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.junit.http;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.lib;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.nls;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.revwalk;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.storage.file;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.transport;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.transport.http;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.transport.http.apache;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.transport.resolver;version="[4.11.10,4.12.0)",
- org.eclipse.jgit.util;version="[4.11.10,4.12.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.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)",
org.junit.rules;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 16795b5938..87e2f4ccae 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>4.11.10-SNAPSHOT</version>
+ <version>5.0.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/AsIsServiceTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java
index e94a792ff2..298bf2170c 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AsIsServiceTest.java
@@ -133,7 +133,7 @@ public class AsIsServiceTest extends LocalDiskRepositoryTestCase {
private final String host;
- R(final String user, final String host) {
+ R(String user, String host) {
super(new Request(null, null) /* can't pass null, sigh */);
this.user = user;
this.host = host;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java
index b24e2dfc7b..ade1e1d2be 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultReceivePackFactoryTest.java
@@ -205,7 +205,7 @@ public class DefaultReceivePackFactoryTest extends LocalDiskRepositoryTestCase {
private final String host;
- R(final String user, final String host) {
+ R(String user, String host) {
super(new Request(null, null) /* can't pass null, sigh */);
this.user = user;
this.host = host;
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java
index ce24d64b7b..268c281e29 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/DefaultUploadPackFactoryTest.java
@@ -161,7 +161,7 @@ public class DefaultUploadPackFactoryTest extends LocalDiskRepositoryTestCase {
private final String host;
- R(final String user, final String host) {
+ R(String user, String host) {
super(new Request(null, null) /* can't pass null, sigh */);
this.user = user;
this.host = host;
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 6dbe0e3cdd..ef059bf2a3 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
@@ -43,15 +43,20 @@
package org.eclipse.jgit.http.test;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.theInstance;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.File;
+import java.io.OutputStream;
import java.net.URI;
+import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -75,9 +80,13 @@ import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.transport.FetchConnection;
+import org.eclipse.jgit.transport.PacketLineIn;
+import org.eclipse.jgit.transport.PacketLineOut;
import org.eclipse.jgit.transport.Transport;
import org.eclipse.jgit.transport.URIish;
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
+import org.eclipse.jgit.transport.http.HttpConnection;
+import org.eclipse.jgit.transport.http.JDKHttpConnectionFactory;
import org.eclipse.jgit.transport.resolver.RepositoryResolver;
import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
import org.junit.Before;
@@ -118,7 +127,7 @@ public class HttpClientTests extends HttpTestCase {
smartAuthBasicURI = toURIish(sBasic, srcName);
}
- private ServletContextHandler dumb(final String path) {
+ private ServletContextHandler dumb(String path) {
final File srcGit = remoteRepository.getRepository().getDirectory();
final URI base = srcGit.getParentFile().toURI();
@@ -130,7 +139,7 @@ public class HttpClientTests extends HttpTestCase {
return ctx;
}
- private ServletContextHandler smart(final String path) {
+ private ServletContextHandler smart(String path) {
GitServlet gs = new GitServlet();
gs.setRepositoryResolver(new RepositoryResolver<HttpServletRequest>() {
@Override
@@ -151,7 +160,7 @@ public class HttpClientTests extends HttpTestCase {
return ctx;
}
- private static String nameOf(final Repository db) {
+ private static String nameOf(Repository db) {
return db.getDirectory().getName();
}
@@ -345,4 +354,82 @@ public class HttpClientTests extends HttpTestCase {
assertNotNull(head);
}
}
+
+ @Test
+ public void testHttpClientWantsV2ButServerNotConfigured() throws Exception {
+ JDKHttpConnectionFactory f = new JDKHttpConnectionFactory();
+ String url = smartAuthNoneURI.toString() + "/info/refs?service=git-upload-pack";
+ HttpConnection c = f.create(new URL(url));
+ c.setRequestMethod("GET");
+ c.setRequestProperty("Git-Protocol", "version=2");
+ c.connect();
+ assertThat(c.getResponseCode(), is(200));
+
+ PacketLineIn pckIn = new PacketLineIn(c.getInputStream());
+
+ // Check that we get a v0 response.
+ assertThat(pckIn.readString(), is("# service=git-upload-pack"));
+ assertThat(pckIn.readString(), theInstance(PacketLineIn.END));
+ assertTrue(pckIn.readString().matches("[0-9a-f]{40} HEAD.*"));
+ }
+
+ @Test
+ public void testV2HttpFirstResponse() throws Exception {
+ remoteRepository.getRepository().getConfig().setInt(
+ "protocol", null, "version", 2);
+
+ JDKHttpConnectionFactory f = new JDKHttpConnectionFactory();
+ String url = smartAuthNoneURI.toString() + "/info/refs?service=git-upload-pack";
+ HttpConnection c = f.create(new URL(url));
+ c.setRequestMethod("GET");
+ c.setRequestProperty("Git-Protocol", "version=2");
+ c.connect();
+ assertThat(c.getResponseCode(), is(200));
+
+ PacketLineIn pckIn = new PacketLineIn(c.getInputStream());
+ assertThat(pckIn.readString(), is("version 2"));
+
+ // What remains are capabilities - ensure that all of them are
+ // non-empty strings, and that we see END at the end.
+ String s;
+ while ((s = pckIn.readString()) != PacketLineIn.END) {
+ assertTrue(!s.isEmpty());
+ }
+ }
+
+ @Test
+ public void testV2HttpSubsequentResponse() throws Exception {
+ remoteRepository.getRepository().getConfig().setInt(
+ "protocol", null, "version", 2);
+
+ JDKHttpConnectionFactory f = new JDKHttpConnectionFactory();
+ String url = smartAuthNoneURI.toString() + "/git-upload-pack";
+ HttpConnection c = f.create(new URL(url));
+ c.setRequestMethod("POST");
+ c.setRequestProperty("Content-Type", "application/x-git-upload-pack-request");
+ c.setRequestProperty("Git-Protocol", "version=2");
+ c.setDoOutput(true);
+ c.connect();
+
+ // Test ls-refs to verify that everything is connected
+ // 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();
+
+ PacketLineIn pckIn = new PacketLineIn(c.getInputStream());
+
+ // Just check that we get what looks like a ref advertisement.
+ String s;
+ while ((s = pckIn.readString()) != PacketLineIn.END) {
+ assertTrue(s.matches("[0-9a-f]{40} [A-Za-z/]*"));
+ }
+
+ assertThat(c.getResponseCode(), is(200));
+ }
}
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
index 87d0bad85c..a1baae3b26 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/ProtocolErrorTest.java
@@ -149,19 +149,15 @@ public class ProtocolErrorTest extends HttpTestCase {
c.setRequestProperty("Content-Type",
GitSmartHttpTools.RECEIVE_PACK_REQUEST_TYPE);
c.setFixedLengthStreamingMode(reqbin.length);
- OutputStream out = c.getOutputStream();
- try {
+ try (OutputStream out = c.getOutputStream()) {
out.write(reqbin);
- } finally {
- out.close();
}
assertEquals(200, c.getResponseCode());
assertEquals(GitSmartHttpTools.RECEIVE_PACK_RESULT_TYPE,
c.getContentType());
- InputStream rawin = c.getInputStream();
- try {
+ try (InputStream rawin = c.getInputStream()) {
PacketLineIn pckin = new PacketLineIn(rawin);
assertEquals("unpack error "
+ JGitText.get().packfileIsTruncatedNoParam,
@@ -169,8 +165,6 @@ public class ProtocolErrorTest extends HttpTestCase {
assertEquals("ng refs/objects/A n/a (unpacker error)",
pckin.readString());
assertSame(PacketLineIn.END, pckin.readString());
- } finally {
- rawin.close();
}
} finally {
c.disconnect();
diff --git a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
index ef8daec31f..fbc54f3872 100644
--- a/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
+++ b/org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SetAdditionalHeadersTest.java
@@ -107,8 +107,7 @@ public class SetAdditionalHeadersTest extends HttpTestCase {
assertEquals("http", remoteURI.getScheme());
- Transport t = Transport.open(dst, remoteURI);
- try {
+ try (Transport t = Transport.open(dst, remoteURI)) {
assertTrue("isa TransportHttp", t instanceof TransportHttp);
assertTrue("isa HttpTransport", t instanceof HttpTransport);
@@ -117,8 +116,6 @@ public class SetAdditionalHeadersTest extends HttpTestCase {
headers.put("AnotherKey", "someValue");
((TransportHttp) t).setAdditionalHeaders(headers);
t.openFetch();
- } finally {
- t.close();
}
List<AccessEvent> requests = getRequests();
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 31832e79c2..65210d15a1 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 java.nio.charset.StandardCharsets.UTF_8;
+import static org.eclipse.jgit.lib.Constants.CHARSET;
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;
@@ -298,10 +298,10 @@ public class SmartClientSmartServerTest extends HttpTestCase {
throws IOException, ServletException {
final HttpServletResponse r = (HttpServletResponse) response;
r.setContentType("text/plain");
- r.setCharacterEncoding("UTF-8");
- PrintWriter w = r.getWriter();
- w.print("OK");
- w.close();
+ r.setCharacterEncoding(Constants.CHARACTER_ENCODING);
+ try (PrintWriter w = r.getWriter()) {
+ w.print("OK");
+ }
}
@Override
@@ -429,11 +429,8 @@ public class SmartClientSmartServerTest extends HttpTestCase {
assertTrue("isa TransportHttp", t instanceof TransportHttp);
assertTrue("isa HttpTransport", t instanceof HttpTransport);
- FetchConnection c = t.openFetch();
- try {
+ try (FetchConnection c = t.openFetch()) {
map = c.getRefsMap();
- } finally {
- c.close();
}
}
@@ -1166,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(UTF_8));
+ "testInvalidWant".getBytes(CHARSET));
Repository dst = createBareRepository();
try (Transport t = Transport.open(dst, remoteURI);