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

67 lines
1.9 KiB

  1. package elb_test
  2. import (
  3. "github.com/goamz/goamz/aws"
  4. "github.com/goamz/goamz/elb"
  5. . "gopkg.in/check.v1"
  6. )
  7. var testAuth = aws.Auth{AccessKey: "user", SecretKey: "secret"}
  8. func (s *S) TestBasicSignature(c *C) {
  9. params := map[string]string{}
  10. elb.Sign(testAuth, "GET", "/path", params, "localhost")
  11. c.Assert(params["SignatureVersion"], Equals, "2")
  12. c.Assert(params["SignatureMethod"], Equals, "HmacSHA256")
  13. expected := "6lSe5QyXum0jMVc7cOUz32/52ZnL7N5RyKRk/09yiK4="
  14. c.Assert(params["Signature"], Equals, expected)
  15. }
  16. func (s *S) TestParamSignature(c *C) {
  17. params := map[string]string{
  18. "param1": "value1",
  19. "param2": "value2",
  20. "param3": "value3",
  21. }
  22. elb.Sign(testAuth, "GET", "/path", params, "localhost")
  23. expected := "XWOR4+0lmK8bD8CGDGZ4kfuSPbb2JibLJiCl/OPu1oU="
  24. c.Assert(params["Signature"], Equals, expected)
  25. }
  26. func (s *S) TestManyParams(c *C) {
  27. params := map[string]string{
  28. "param1": "value10",
  29. "param2": "value2",
  30. "param3": "value3",
  31. "param4": "value4",
  32. "param5": "value5",
  33. "param6": "value6",
  34. "param7": "value7",
  35. "param8": "value8",
  36. "param9": "value9",
  37. "param10": "value1",
  38. }
  39. elb.Sign(testAuth, "GET", "/path", params, "localhost")
  40. expected := "di0sjxIvezUgQ1SIL6i+C/H8lL+U0CQ9frLIak8jkVg="
  41. c.Assert(params["Signature"], Equals, expected)
  42. }
  43. func (s *S) TestEscaping(c *C) {
  44. params := map[string]string{"Nonce": "+ +"}
  45. elb.Sign(testAuth, "GET", "/path", params, "localhost")
  46. c.Assert(params["Nonce"], Equals, "+ +")
  47. expected := "bqffDELReIqwjg/W0DnsnVUmfLK4wXVLO4/LuG+1VFA="
  48. c.Assert(params["Signature"], Equals, expected)
  49. }
  50. func (s *S) TestSignatureExample1(c *C) {
  51. params := map[string]string{
  52. "Timestamp": "2009-02-01T12:53:20+00:00",
  53. "Version": "2007-11-07",
  54. "Action": "ListDomains",
  55. }
  56. elb.Sign(aws.Auth{AccessKey: "access", SecretKey: "secret"}, "GET", "/", params, "sdb.amazonaws.com")
  57. expected := "okj96/5ucWBSc1uR2zXVfm6mDHtgfNv657rRtt/aunQ="
  58. c.Assert(params["Signature"], Equals, expected)
  59. }