diff options
Diffstat (limited to 'vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go')
-rw-r--r-- | vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go b/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go new file mode 100644 index 000000000..63744d1cb --- /dev/null +++ b/vendor/github.com/goamz/goamz/cloudfront/cloudfront_test.go @@ -0,0 +1,52 @@ +package cloudfront + +import ( + "crypto/x509" + "encoding/pem" + "io/ioutil" + "net/url" + "testing" + "time" +) + +func TestSignedCannedURL(t *testing.T) { + rawKey, err := ioutil.ReadFile("testdata/key.pem") + if err != nil { + t.Fatal(err) + } + + pemKey, _ := pem.Decode(rawKey) + privateKey, err := x509.ParsePKCS1PrivateKey(pemKey.Bytes) + if err != nil { + t.Fatal(err) + } + + cf := &CloudFront{ + key: privateKey, + keyPairId: "test-key-pair-1231245", + BaseURL: "https://cloudfront.com", + } + + expireTime, err := time.Parse(time.RFC3339, "2014-03-28T14:00:21Z") + if err != nil { + t.Fatal(err) + } + + query := make(url.Values) + query.Add("test", "value") + + uri, err := cf.CannedSignedURL("test", "test=value", expireTime) + if err != nil { + t.Fatal(err) + } + + parsed, err := url.Parse(uri) + if err != nil { + t.Fatal(err) + } + + signature := parsed.Query().Get("Signature") + if signature == "" { + t.Fatal("Encoded signature is empty") + } +} |