1package corehandlers 2 3import ( 4 "net/http" 5 "os" 6 "testing" 7 8 "github.com/aws/aws-sdk-go/aws/request" 9 "github.com/aws/aws-sdk-go/internal/sdktesting" 10) 11 12func TestAddHostExecEnvUserAgentHander(t *testing.T) { 13 cases := []struct { 14 ExecEnv string 15 Expect string 16 }{ 17 {ExecEnv: "Lambda", Expect: execEnvUAKey + "/Lambda"}, 18 {ExecEnv: "", Expect: ""}, 19 {ExecEnv: "someThingCool", Expect: execEnvUAKey + "/someThingCool"}, 20 } 21 22 for i, c := range cases { 23 sdktesting.StashEnv() 24 os.Setenv(execEnvVar, c.ExecEnv) 25 26 req := &request.Request{ 27 HTTPRequest: &http.Request{ 28 Header: http.Header{}, 29 }, 30 } 31 AddHostExecEnvUserAgentHander.Fn(req) 32 33 if err := req.Error; err != nil { 34 t.Fatalf("%d, expect no error, got %v", i, err) 35 } 36 37 if e, a := c.Expect, req.HTTPRequest.Header.Get("User-Agent"); e != a { 38 t.Errorf("%d, expect %v user agent, got %v", i, e, a) 39 } 40 } 41} 42