aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst/org/eclipse/jgit
diff options
context:
space:
mode:
authorpszlazak <piotr.szlazak@gmail.com>2024-11-17 23:24:09 +0100
committerMatthias Sohn <matthias.sohn@sap.com>2024-11-21 20:45:24 +0100
commit079dbe8ed9e47e44986ce43513f3aad8fa64832a (patch)
treeea8e55a7a9be4cad125c83b87f9390b22d5c470c /org.eclipse.jgit.test/tst/org/eclipse/jgit
parent5b1513a28d337e7e3453e557ee9dde292678eb81 (diff)
downloadjgit-079dbe8ed9e47e44986ce43513f3aad8fa64832a.tar.gz
jgit-079dbe8ed9e47e44986ce43513f3aad8fa64832a.zip
Test advertised capabilities with protocol V0 and allow*Sha1InWant
The advertised capabilities with protocol V0 were untested leading to potential regressions when advertising what SHA1 should or should not be on the list of capabilities. Verify that allow-tip-sha1-in-want and allow-reachable-sha1-in-want are properly advertised with the allow*Sha1InWant is set in jgit.config. Change-Id: Id48af2bc19280f2dcb26aa8e8765cde8f2ce7a06 (cherry picked from commit 5583f6a10eafc8c2627e0fb4833cb8ffe422f69a)
Diffstat (limited to 'org.eclipse.jgit.test/tst/org/eclipse/jgit')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
index def73acadd..017104c527 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackTest.java
@@ -11,6 +11,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -564,6 +565,47 @@ public class UploadPackTest {
}
@Test
+ public void testV0CapabilitiesAllowAnySha1InWant() throws Exception {
+ checkAvertisedCapabilityProtocolV0IfAllowed("uploadpack",
+ "allowanysha1inwant", "allow-reachable-sha1-in-want",
+ "allow-tip-sha1-in-want");
+ }
+
+ @Test
+ public void testV0CapabilitiesAllowReachableSha1InWant() throws Exception {
+ checkAvertisedCapabilityProtocolV0IfAllowed("uploadpack",
+ "allowreachablesha1inwant", "allow-reachable-sha1-in-want");
+ }
+
+ @Test
+ public void testV0CapabilitiesAllowTipSha1InWant() throws Exception {
+ checkAvertisedCapabilityProtocolV0IfAllowed("uploadpack",
+ "allowtipsha1inwant", "allow-tip-sha1-in-want");
+ }
+
+ private void checkAvertisedCapabilityProtocolV0IfAllowed(
+ String configSection, String configName, String... capabilities)
+ throws Exception {
+ server.getConfig().setBoolean(configSection, null, configName, true);
+ ByteArrayInputStream recvStream = uploadPackSetup(
+ TransferConfig.ProtocolVersion.V0.version(), null,
+ PacketLineIn.end());
+ PacketLineIn pckIn = new PacketLineIn(recvStream);
+
+ String line;
+ while (!PacketLineIn.isEnd((line = pckIn.readString()))) {
+ if (line.contains("capabilities")) {
+ List<String> linesCapabilities = Arrays.asList(line.substring(
+ line.indexOf(" ", line.indexOf("capabilities")) + 1)
+ .split(" "));
+ assertThat(linesCapabilities, hasItems(capabilities));
+ return;
+ }
+ }
+ fail("Server side protocol did not contain any capabilities'");
+ }
+
+ @Test
public void testV2CapabilitiesAllowFilter() throws Exception {
checkAdvertisedIfAllowed("uploadpack", "allowfilter", "filter");
checkUnadvertisedIfUnallowed("uploadpack", "allowfilter", "filter");