2016-07-14 16:43:20 +00:00
|
|
|
package httputil
|
2016-06-03 22:01:51 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
"testing"
|
|
|
|
|
2016-11-15 17:01:18 +00:00
|
|
|
"github.com/git-lfs/git-lfs/config"
|
2016-07-08 19:56:55 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
2016-06-03 22:01:51 +00:00
|
|
|
)
|
|
|
|
|
2016-07-21 16:06:18 +00:00
|
|
|
func TestProxyFromGitConfig(t *testing.T) {
|
2016-08-03 23:42:21 +00:00
|
|
|
cfg := config.NewFrom(config.Values{
|
|
|
|
Git: map[string]string{
|
|
|
|
"http.proxy": "https://proxy-from-git-config:8080",
|
|
|
|
},
|
2016-08-04 20:41:04 +00:00
|
|
|
Os: map[string]string{
|
2016-08-03 23:42:21 +00:00
|
|
|
"HTTPS_PROXY": "https://proxy-from-env:8080",
|
|
|
|
},
|
2016-07-08 20:48:42 +00:00
|
|
|
})
|
|
|
|
|
2016-07-13 17:16:29 +00:00
|
|
|
req, err := http.NewRequest("GET", "https://some-host.com:123/foo/bar", nil)
|
2016-07-08 20:48:42 +00:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2016-07-14 16:43:20 +00:00
|
|
|
proxyURL, err := ProxyFromGitConfigOrEnvironment(cfg)(req)
|
2016-07-08 20:48:42 +00:00
|
|
|
|
2016-07-21 16:06:18 +00:00
|
|
|
assert.Equal(t, "proxy-from-git-config:8080", proxyURL.Host)
|
2016-07-14 16:43:57 +00:00
|
|
|
assert.Nil(t, err)
|
2016-07-08 20:48:42 +00:00
|
|
|
}
|
|
|
|
|
2016-07-21 16:06:18 +00:00
|
|
|
func TestHttpProxyFromGitConfig(t *testing.T) {
|
2016-08-03 23:42:21 +00:00
|
|
|
cfg := config.NewFrom(config.Values{
|
|
|
|
Git: map[string]string{
|
|
|
|
"http.proxy": "http://proxy-from-git-config:8080",
|
|
|
|
},
|
2016-08-04 20:41:04 +00:00
|
|
|
Os: map[string]string{
|
2016-08-03 23:42:21 +00:00
|
|
|
"HTTPS_PROXY": "https://proxy-from-env:8080",
|
|
|
|
},
|
2016-07-08 19:56:55 +00:00
|
|
|
})
|
2016-06-03 22:01:51 +00:00
|
|
|
|
2016-07-21 16:06:18 +00:00
|
|
|
req, err := http.NewRequest("GET", "https://some-host.com:123/foo/bar", nil)
|
2016-06-03 22:01:51 +00:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
2016-07-08 19:56:55 +00:00
|
|
|
|
2016-07-14 16:43:20 +00:00
|
|
|
proxyURL, err := ProxyFromGitConfigOrEnvironment(cfg)(req)
|
2016-06-03 22:01:51 +00:00
|
|
|
|
2016-07-21 16:06:18 +00:00
|
|
|
assert.Equal(t, "proxy-from-env:8080", proxyURL.Host)
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestProxyFromEnvironment(t *testing.T) {
|
2016-08-03 23:42:21 +00:00
|
|
|
cfg := config.NewFrom(config.Values{
|
2016-08-04 20:41:04 +00:00
|
|
|
Os: map[string]string{
|
2016-08-03 23:42:21 +00:00
|
|
|
"HTTPS_PROXY": "https://proxy-from-env:8080",
|
|
|
|
},
|
2016-07-21 16:06:18 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
req, err := http.NewRequest("GET", "https://some-host.com:123/foo/bar", nil)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
proxyURL, err := ProxyFromGitConfigOrEnvironment(cfg)(req)
|
|
|
|
|
|
|
|
assert.Equal(t, "proxy-from-env:8080", proxyURL.Host)
|
2016-07-14 16:43:57 +00:00
|
|
|
assert.Nil(t, err)
|
2016-06-03 22:01:51 +00:00
|
|
|
}
|
|
|
|
|
2016-07-08 19:56:55 +00:00
|
|
|
func TestProxyIsNil(t *testing.T) {
|
2016-07-21 23:38:44 +00:00
|
|
|
cfg := config.New()
|
2016-07-13 17:16:29 +00:00
|
|
|
|
|
|
|
req, err := http.NewRequest("GET", "http://some-host.com:123/foo/bar", nil)
|
2016-07-08 19:56:55 +00:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2016-07-14 16:43:20 +00:00
|
|
|
proxyURL, err := ProxyFromGitConfigOrEnvironment(cfg)(req)
|
2016-07-08 19:56:55 +00:00
|
|
|
|
|
|
|
assert.Nil(t, proxyURL)
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|
2016-07-14 16:42:35 +00:00
|
|
|
|
|
|
|
func TestProxyNoProxy(t *testing.T) {
|
2016-08-03 23:42:21 +00:00
|
|
|
cfg := config.NewFrom(config.Values{
|
|
|
|
Git: map[string]string{
|
|
|
|
"http.proxy": "https://proxy-from-git-config:8080",
|
|
|
|
},
|
2016-08-04 20:41:04 +00:00
|
|
|
Os: map[string]string{
|
2016-08-03 23:42:21 +00:00
|
|
|
"NO_PROXY": "some-host",
|
|
|
|
},
|
2016-07-14 16:42:35 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
req, err := http.NewRequest("GET", "https://some-host:8080", nil)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2016-07-14 16:43:20 +00:00
|
|
|
proxyUrl, err := ProxyFromGitConfigOrEnvironment(cfg)(req)
|
2016-07-14 16:42:35 +00:00
|
|
|
|
|
|
|
assert.Nil(t, proxyUrl)
|
|
|
|
assert.Nil(t, err)
|
|
|
|
}
|