25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

53 lines
933 B

  1. package cloudfront
  2. import (
  3. "crypto/x509"
  4. "encoding/pem"
  5. "io/ioutil"
  6. "net/url"
  7. "testing"
  8. "time"
  9. )
  10. func TestSignedCannedURL(t *testing.T) {
  11. rawKey, err := ioutil.ReadFile("testdata/key.pem")
  12. if err != nil {
  13. t.Fatal(err)
  14. }
  15. pemKey, _ := pem.Decode(rawKey)
  16. privateKey, err := x509.ParsePKCS1PrivateKey(pemKey.Bytes)
  17. if err != nil {
  18. t.Fatal(err)
  19. }
  20. cf := &CloudFront{
  21. key: privateKey,
  22. keyPairId: "test-key-pair-1231245",
  23. BaseURL: "https://cloudfront.com",
  24. }
  25. expireTime, err := time.Parse(time.RFC3339, "2014-03-28T14:00:21Z")
  26. if err != nil {
  27. t.Fatal(err)
  28. }
  29. query := make(url.Values)
  30. query.Add("test", "value")
  31. uri, err := cf.CannedSignedURL("test", "test=value", expireTime)
  32. if err != nil {
  33. t.Fatal(err)
  34. }
  35. parsed, err := url.Parse(uri)
  36. if err != nil {
  37. t.Fatal(err)
  38. }
  39. signature := parsed.Query().Get("Signature")
  40. if signature == "" {
  41. t.Fatal("Encoded signature is empty")
  42. }
  43. }