github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/uptoken/uploadtoken_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package uptoken_test
     5  
     6  import (
     7  	"context"
     8  	"os"
     9  	"testing"
    10  	"time"
    11  
    12  	"github.com/qiniu/go-sdk/v7/storagev2/credentials"
    13  	"github.com/qiniu/go-sdk/v7/storagev2/uptoken"
    14  )
    15  
    16  func TestSignPutPolicy(t *testing.T) {
    17  	const expectedBucketName = "testbucket"
    18  	const expectedAccessKey = "testaccesskey"
    19  	const expectedSecretKey = "testsecretkey"
    20  	const expectedExpires = int64(1675937798)
    21  
    22  	putPolicy, err := uptoken.NewPutPolicy(expectedBucketName, time.Unix(expectedExpires, 0))
    23  	if err != nil {
    24  		t.Fatalf("failed to create put policy: %s", err)
    25  	}
    26  
    27  	if scope, _ := putPolicy.GetScope(); scope != expectedBucketName {
    28  		t.Fatalf("unexpected bucket name: %s", expectedBucketName)
    29  	}
    30  
    31  	if actualDeadline, _ := putPolicy.GetDeadline(); actualDeadline != expectedExpires {
    32  		t.Fatalf("unexpected deadline: %d", actualDeadline)
    33  	}
    34  
    35  	signer := uptoken.NewSigner(putPolicy, credentials.NewCredentials(expectedAccessKey, expectedSecretKey))
    36  	upToken, err := signer.GetUpToken(context.Background())
    37  	if err != nil {
    38  		t.Fatalf("failed to retrieve uptoken: %s", err)
    39  	}
    40  
    41  	parser := uptoken.NewParser(upToken)
    42  	if actualAccessKey, err := parser.GetAccessKey(context.Background()); err != nil {
    43  		t.Fatalf("failed to retrieve accessKey: %s", err)
    44  	} else if actualAccessKey != expectedAccessKey {
    45  		t.Fatalf("unexpected accessKey: %s", actualAccessKey)
    46  	}
    47  
    48  	if actualPutPolicy, err := parser.GetPutPolicy(context.Background()); err != nil {
    49  		t.Fatalf("failed to retrieve putPolicy: %s", err)
    50  	} else if actualScope, _ := actualPutPolicy.GetScope(); actualScope != expectedBucketName {
    51  		t.Fatalf("unexpected scope: %s", actualScope)
    52  	}
    53  }
    54  
    55  func TestSignPutPolicyByDefaultCredentials(t *testing.T) {
    56  	const expectedBucketName = "testbucket"
    57  	const expectedAccessKey = "testaccesskey"
    58  	const expectedSecretKey = "testsecretkey"
    59  	const expectedExpires = int64(1675937798)
    60  
    61  	os.Setenv("QINIU_ACCESS_KEY", expectedAccessKey)
    62  	os.Setenv("QINIU_SECRET_KEY", expectedSecretKey)
    63  	defer func() {
    64  		os.Unsetenv("QINIU_ACCESS_KEY")
    65  		os.Unsetenv("QINIU_SECRET_KEY")
    66  	}()
    67  
    68  	putPolicy, err := uptoken.NewPutPolicy(expectedBucketName, time.Unix(expectedExpires, 0))
    69  	if err != nil {
    70  		t.Fatalf("failed to create put policy: %s", err)
    71  	}
    72  	signer := uptoken.NewSigner(putPolicy, nil)
    73  	if accessKey, _ := signer.GetAccessKey(context.Background()); accessKey != "testaccesskey" {
    74  		t.Fatalf("failed to retrieve accessKey: %s", err)
    75  	}
    76  }