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
44 package org.eclipse.jgit.http.test;
45
46 import static org.junit.Assert.assertEquals;
47 import static org.junit.Assert.assertTrue;
48
49 import java.io.File;
50 import java.io.IOException;
51 import java.net.URI;
52 import java.util.HashMap;
53 import java.util.List;
54
55 import org.eclipse.jetty.servlet.DefaultServlet;
56 import org.eclipse.jetty.servlet.ServletContextHandler;
57 import org.eclipse.jetty.servlet.ServletHolder;
58 import org.eclipse.jgit.junit.TestRepository;
59 import org.eclipse.jgit.junit.http.AccessEvent;
60 import org.eclipse.jgit.junit.http.HttpTestCase;
61 import org.eclipse.jgit.lib.Repository;
62 import org.eclipse.jgit.revwalk.RevBlob;
63 import org.eclipse.jgit.revwalk.RevCommit;
64 import org.eclipse.jgit.transport.HttpTransport;
65 import org.eclipse.jgit.transport.Transport;
66 import org.eclipse.jgit.transport.TransportHttp;
67 import org.eclipse.jgit.transport.URIish;
68 import org.junit.Before;
69 import org.junit.Test;
70
71 public class SetAdditionalHeadersTest extends HttpTestCase {
72
73 private URIish remoteURI;
74
75 private RevBlob A_txt;
76
77 private RevCommit A, B;
78
79
80 @Override
81 @Before
82 public void setUp() throws Exception {
83 super.setUp();
84
85 final TestRepository<Repository> src = createTestRepository();
86 final File srcGit = src.getRepository().getDirectory();
87 final URI base = srcGit.getParentFile().toURI();
88
89 ServletContextHandler app = server.addContext("/git");
90 app.setResourceBase(base.toString());
91 ServletHolder holder = app.addServlet(DefaultServlet.class, "/");
92
93 holder.setInitParameter("aliases", "true");
94 server.setUp();
95
96 remoteURI = toURIish(app, srcGit.getName());
97
98 A_txt = src.blob("A");
99 A = src.commit().add("A_txt", A_txt).create();
100 B = src.commit().parent(A).add("A_txt", "C").add("B", "B").create();
101 src.update(master, B);
102 }
103
104 @Test
105 public void testSetHeaders() throws IOException {
106 Repository dst = createBareRepository();
107
108 assertEquals("http", remoteURI.getScheme());
109
110 try (Transport t = Transport.open(dst, remoteURI)) {
111 assertTrue("isa TransportHttp", t instanceof TransportHttp);
112 assertTrue("isa HttpTransport", t instanceof HttpTransport);
113
114 HashMap<String, String> headers = new HashMap<>();
115 headers.put("Cookie", "someTokenValue=23gBog34");
116 headers.put("AnotherKey", "someValue");
117 ((TransportHttp) t).setAdditionalHeaders(headers);
118 t.openFetch();
119 }
120
121 List<AccessEvent> requests = getRequests();
122 assertEquals(2, requests.size());
123
124 AccessEvent info = requests.get(0);
125 assertEquals("GET", info.getMethod());
126 assertEquals(info.getRequestHeader("Cookie"), "someTokenValue=23gBog34");
127 assertEquals(info.getRequestHeader("AnotherKey"), "someValue");
128 assertEquals(200, info.getStatus());
129
130 info = requests.get(1);
131 assertEquals("GET", info.getMethod());
132 assertEquals(info.getRequestHeader("Cookie"), "someTokenValue=23gBog34");
133 assertEquals(info.getRequestHeader("AnotherKey"), "someValue");
134 assertEquals(200, info.getStatus());
135 }
136
137 }