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  }