123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- /*
- * Copyright (C) 2017, Thomas Wolf <thomas.wolf@paranor.ch> and others
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Distribution License v. 1.0 which is available at
- * https://www.eclipse.org/org/documents/edl-v10.php.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
- package org.eclipse.jgit.transport;
-
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertTrue;
-
- import org.eclipse.jgit.lib.Config;
- import org.junit.Before;
- import org.junit.Test;
-
- /**
- * Tests for correctly resolving URIs when reading http.* values from a
- * {@link Config}.
- */
- public class HttpConfigTest {
-
- private static final String DEFAULT = "[http]\n" + "\tpostBuffer = 1\n"
- + "\tsslVerify= true\n" + "\tfollowRedirects = true\n"
- + "\textraHeader = x: y\n" + "\tuserAgent = Test/0.1\n"
- + "\tmaxRedirects = 5\n\n";
-
- private Config config;
-
- @Before
- public void setUp() {
- config = new Config();
- }
-
- @Test
- public void testDefault() throws Exception {
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024 * 1024, http.getPostBuffer());
- assertTrue(http.isSslVerify());
- assertEquals(HttpConfig.HttpRedirectMode.INITIAL,
- http.getFollowRedirects());
- }
-
- @Test
- public void testMatchSuccess() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("https://example.com/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.org/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.com:80/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.com:8080/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithOnlySchemeInConfig() throws Exception {
- config.fromText(
- DEFAULT + "[http \"http://\"]\n" + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithPrefixUriInConfig() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example\"]\n"
- + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- }
-
- @Test
- public void testMatchCaseSensitivity() throws Exception {
- config.fromText(DEFAULT + "[http \"http://exAMPle.com\"]\n"
- + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithInvalidUriInConfig() throws Exception {
- config.fromText(
- DEFAULT + "[http \"///\"]\n" + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithInvalidAndValidUriInConfig() throws Exception {
- config.fromText(DEFAULT + "[http \"///\"]\n" + "\tpostBuffer = 1024\n"
- + "[http \"http://example.com\"]\n" + "\tpostBuffer = 2048\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(2048, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithHostEndingInSlash() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com/\"]\n"
- + "\tpostBuffer = 1024\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- }
-
- @Test
- public void testMatchWithUser() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com/path\"]\n"
- + "\tpostBuffer = 1024\n"
- + "[http \"http://example.com/path/repo\"]\n"
- + "\tpostBuffer = 2048\n"
- + "[http \"http://user@example.com/path\"]\n"
- + "\tpostBuffer = 4096\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://user@example.com/path/repo.git"));
- assertEquals(4096, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://user@example.com/path/repo/foo.git"));
- assertEquals(2048, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://user@example.com/path/foo.git"));
- assertEquals(4096, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.com/path/foo.git"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://User@example.com/path/repo/foo.git"));
- assertEquals(2048, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://User@example.com/path/foo.git"));
- assertEquals(1024, http.getPostBuffer());
- }
-
- @Test
- public void testMatchLonger() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com/path\"]\n"
- + "\tpostBuffer = 1024\n"
- + "[http \"http://example.com/path/repo\"]\n"
- + "\tpostBuffer = 2048\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/path/repo.git"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.com/foo/repo.git"));
- assertEquals(1, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("https://example.com/path/repo.git"));
- assertEquals(1, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://example.com/path/repo/.git"));
- assertEquals(2048, http.getPostBuffer());
- http = new HttpConfig(config, new URIish("http://example.com/path"));
- assertEquals(1024, http.getPostBuffer());
- http = new HttpConfig(config,
- new URIish("http://user@example.com/path"));
- assertEquals(1024, http.getPostBuffer());
- }
-
- @Test
- public void testExtraHeaders() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\textraHeader=foo: bar\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertEquals(1, http.getExtraHeaders().size());
- assertEquals("foo: bar", http.getExtraHeaders().get(0));
- }
-
- @Test
- public void testExtraHeadersMultiple() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\textraHeader=foo: bar\n" //
- + "\textraHeader=bar: foo\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertEquals(2, http.getExtraHeaders().size());
- assertEquals("foo: bar", http.getExtraHeaders().get(0));
- assertEquals("bar: foo", http.getExtraHeaders().get(1));
- }
-
- @Test
- public void testExtraHeadersReset() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\textraHeader=foo: bar\n" //
- + "\textraHeader=bar: foo\n" //
- + "\textraHeader=\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertTrue(http.getExtraHeaders().isEmpty());
- }
-
- @Test
- public void testExtraHeadersResetAndMore() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\textraHeader=foo: bar\n" //
- + "\textraHeader=bar: foo\n" //
- + "\textraHeader=\n" //
- + "\textraHeader=baz: something\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertEquals(1, http.getExtraHeaders().size());
- assertEquals("baz: something", http.getExtraHeaders().get(0));
- }
-
- @Test
- public void testUserAgent() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\tuserAgent=DummyAgent/4.0\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertEquals("DummyAgent/4.0", http.getUserAgent());
- }
-
- @Test
- public void testUserAgentNonAscii() throws Exception {
- config.fromText(DEFAULT + "[http \"http://example.com\"]\n"
- + "\tuserAgent= d ümmy Agent -5.10\n");
- HttpConfig http = new HttpConfig(config,
- new URIish("http://example.com/"));
- assertEquals("d.mmy.Agent.-5.10", http.getUserAgent());
- }
- }
|