github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/powchain/provider_test.go (about) 1 package powchain 2 3 import ( 4 "testing" 5 6 "github.com/prysmaticlabs/prysm/shared/httputils/authorizationmethod" 7 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 8 logTest "github.com/sirupsen/logrus/hooks/test" 9 ) 10 11 func TestHttpEndpoint(t *testing.T) { 12 hook := logTest.NewGlobal() 13 url := "http://test" 14 15 t.Run("URL", func(t *testing.T) { 16 endpoint := HttpEndpoint(url) 17 assert.Equal(t, url, endpoint.Url) 18 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 19 }) 20 t.Run("URL with separator", func(t *testing.T) { 21 endpoint := HttpEndpoint(url + ",") 22 assert.Equal(t, url, endpoint.Url) 23 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 24 }) 25 t.Run("URL with whitespace", func(t *testing.T) { 26 endpoint := HttpEndpoint(" " + url + " ,") 27 assert.Equal(t, url, endpoint.Url) 28 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 29 }) 30 t.Run("Basic auth", func(t *testing.T) { 31 endpoint := HttpEndpoint(url + ",Basic username:password") 32 assert.Equal(t, url, endpoint.Url) 33 assert.Equal(t, authorizationmethod.Basic, endpoint.Auth.Method) 34 assert.Equal(t, "dXNlcm5hbWU6cGFzc3dvcmQ=", endpoint.Auth.Value) 35 }) 36 t.Run("Basic auth with whitespace", func(t *testing.T) { 37 endpoint := HttpEndpoint(url + ", Basic username:password ") 38 assert.Equal(t, url, endpoint.Url) 39 assert.Equal(t, authorizationmethod.Basic, endpoint.Auth.Method) 40 assert.Equal(t, "dXNlcm5hbWU6cGFzc3dvcmQ=", endpoint.Auth.Value) 41 }) 42 t.Run("Basic auth with incorrect format", func(t *testing.T) { 43 hook.Reset() 44 endpoint := HttpEndpoint(url + ",Basic username:password foo") 45 assert.Equal(t, url, endpoint.Url) 46 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 47 assert.LogsContain(t, hook, "Skipping authorization") 48 }) 49 t.Run("Bearer auth", func(t *testing.T) { 50 endpoint := HttpEndpoint(url + ",Bearer token") 51 assert.Equal(t, url, endpoint.Url) 52 assert.Equal(t, authorizationmethod.Bearer, endpoint.Auth.Method) 53 assert.Equal(t, "token", endpoint.Auth.Value) 54 }) 55 t.Run("Bearer auth with whitespace", func(t *testing.T) { 56 endpoint := HttpEndpoint(url + ", Bearer token ") 57 assert.Equal(t, url, endpoint.Url) 58 assert.Equal(t, authorizationmethod.Bearer, endpoint.Auth.Method) 59 assert.Equal(t, "token", endpoint.Auth.Value) 60 }) 61 t.Run("Bearer auth with incorrect format", func(t *testing.T) { 62 hook.Reset() 63 endpoint := HttpEndpoint(url + ",Bearer token foo") 64 assert.Equal(t, url, endpoint.Url) 65 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 66 assert.LogsContain(t, hook, "Skipping authorization") 67 }) 68 t.Run("Too many separators", func(t *testing.T) { 69 endpoint := HttpEndpoint(url + ",Bearer token,foo") 70 assert.Equal(t, url, endpoint.Url) 71 assert.Equal(t, authorizationmethod.None, endpoint.Auth.Method) 72 assert.LogsContain(t, hook, "Skipping authorization") 73 }) 74 }