github.com/aavshr/aws-sdk-go@v1.41.3/service/cloudfront/sign/sign_cookie_test.go (about) 1 package sign 2 3 import ( 4 "crypto/rsa" 5 "testing" 6 "time" 7 ) 8 9 func TestNewCookieSigner(t *testing.T) { 10 privKey, err := rsa.GenerateKey(randReader, 1024) 11 if err != nil { 12 t.Fatalf("Unexpected priv key error, %#v", err) 13 } 14 15 signer := NewCookieSigner("keyID", privKey) 16 if e, a := "keyID", signer.keyID; e != a { 17 t.Errorf("expect %v, got %v", e, a) 18 } 19 if e, a := privKey, signer.privKey; e != a { 20 t.Errorf("expect %v, got %v", e, a) 21 } 22 } 23 24 func TestSignCookie(t *testing.T) { 25 privKey, err := rsa.GenerateKey(randReader, 1024) 26 if err != nil { 27 t.Errorf("expect no error, got %v", err) 28 } 29 30 signer := NewCookieSigner("keyID", privKey) 31 cookies, err := signer.Sign("http*://*", time.Now().Add(1*time.Hour)) 32 33 if err != nil { 34 t.Errorf("expect no error, got %v", err) 35 } 36 if e, a := CookiePolicyName, cookies[0].Name; e != a { 37 t.Errorf("expect %v, got %v", e, a) 38 } 39 if e, a := CookieSignatureName, cookies[1].Name; e != a { 40 t.Errorf("expect %v, got %v", e, a) 41 } 42 if e, a := CookieKeyIDName, cookies[2].Name; e != a { 43 t.Errorf("expect %v, got %v", e, a) 44 } 45 } 46 47 func TestSignCookie_WithPolicy(t *testing.T) { 48 privKey, err := rsa.GenerateKey(randReader, 1024) 49 if err != nil { 50 t.Errorf("expect no error, got %v", err) 51 } 52 53 p := &Policy{ 54 Statements: []Statement{ 55 { 56 Resource: "*", 57 Condition: Condition{ 58 DateLessThan: &AWSEpochTime{time.Now().Add(1 * time.Hour)}, 59 }, 60 }, 61 }, 62 } 63 64 signer := NewCookieSigner("keyID", privKey) 65 cookies, err := signer.SignWithPolicy(p) 66 67 if err != nil { 68 t.Errorf("expect no error, got %v", err) 69 } 70 if e, a := CookiePolicyName, cookies[0].Name; e != a { 71 t.Errorf("expect %v, got %v", e, a) 72 } 73 if e, a := CookieSignatureName, cookies[1].Name; e != a { 74 t.Errorf("expect %v, got %v", e, a) 75 } 76 if e, a := CookieKeyIDName, cookies[2].Name; e != a { 77 t.Errorf("expect %v, got %v", e, a) 78 } 79 } 80 81 func TestSignCookie_WithCookieOptions(t *testing.T) { 82 privKey, err := rsa.GenerateKey(randReader, 1024) 83 if err != nil { 84 t.Errorf("expect no error, got %v", err) 85 } 86 87 expires := time.Now().Add(1 * time.Hour) 88 89 signer := NewCookieSigner("keyID", privKey) 90 cookies, err := signer.Sign("https://example.com/*", expires, func(o *CookieOptions) { 91 o.Path = "/" 92 o.Domain = ".example.com" 93 o.Secure = true 94 95 }) 96 97 if err != nil { 98 t.Errorf("expect no error, got %v", err) 99 } 100 if e, a := CookiePolicyName, cookies[0].Name; e != a { 101 t.Errorf("expect %v, got %v", e, a) 102 } 103 if e, a := CookieSignatureName, cookies[1].Name; e != a { 104 t.Errorf("expect %v, got %v", e, a) 105 } 106 if e, a := CookieKeyIDName, cookies[2].Name; e != a { 107 t.Errorf("expect %v, got %v", e, a) 108 } 109 110 for _, c := range cookies { 111 if e, a := "/", c.Path; e != a { 112 t.Errorf("expect %v, got %v", e, a) 113 } 114 if e, a := ".example.com", c.Domain; e != a { 115 t.Errorf("expect %v, got %v", e, a) 116 } 117 if !c.Secure { 118 t.Errorf("expect to be true") 119 } 120 } 121 }