diff options
author | Jonathan Fritz <jonathan.fritz@mattermost.com> | 2018-02-13 08:39:56 -0500 |
---|---|---|
committer | Jonathan Fritz <jonathan.fritz@mattermost.com> | 2018-02-13 08:39:56 -0500 |
commit | 18fa32567b56584c6e24da2ae68814d5bf8ece6f (patch) | |
tree | 311ab6a3918ba64ac665286f15950b32dc1b1dba /utils/api_test.go | |
parent | 7b2861de3a09cf00d00b0872cc537d54302c4bfa (diff) | |
parent | 8b79f5d49cb8d4877e136a76e515edef41ef6f28 (diff) | |
download | chat-18fa32567b56584c6e24da2ae68814d5bf8ece6f.tar.gz chat-18fa32567b56584c6e24da2ae68814d5bf8ece6f.tar.bz2 chat-18fa32567b56584c6e24da2ae68814d5bf8ece6f.zip |
Merge branch 'release-4.7' into XYZ-110
Diffstat (limited to 'utils/api_test.go')
-rw-r--r-- | utils/api_test.go | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/utils/api_test.go b/utils/api_test.go deleted file mode 100644 index 5e41c7bfe..000000000 --- a/utils/api_test.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -package utils - -import ( - "crypto/ecdsa" - "crypto/elliptic" - "crypto/rand" - "crypto/sha256" - "encoding/asn1" - "encoding/base64" - "math/big" - "net/http" - "net/http/httptest" - "net/url" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestRenderWebError(t *testing.T) { - r := httptest.NewRequest("GET", "http://foo", nil) - w := httptest.NewRecorder() - key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) - require.NoError(t, err) - RenderWebError(w, r, http.StatusTemporaryRedirect, url.Values{ - "foo": []string{"bar"}, - }, key) - - resp := w.Result() - location, err := url.Parse(resp.Header.Get("Location")) - require.NoError(t, err) - require.NotEmpty(t, location.Query().Get("s")) - - type ecdsaSignature struct { - R, S *big.Int - } - var rs ecdsaSignature - s, err := base64.URLEncoding.DecodeString(location.Query().Get("s")) - require.NoError(t, err) - _, err = asn1.Unmarshal(s, &rs) - require.NoError(t, err) - - assert.Equal(t, "bar", location.Query().Get("foo")) - h := sha256.Sum256([]byte("/error?foo=bar")) - assert.True(t, ecdsa.Verify(&key.PublicKey, h[:], rs.R, rs.S)) -} |