github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/interface/http/ga_measurement_test.go (about) 1 package http 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "reflect" 7 "testing" 8 9 "github.com/oinume/lekcije/backend/model2" 10 ) 11 12 func TestNewGAMeasurementEventFromRequest(t *testing.T) { 13 const ( 14 userAgent = "go-test" 15 ipOverride = "1.1.1.1" 16 ) 17 tests := map[string]struct { 18 request *http.Request 19 want *model2.GAMeasurementEvent 20 }{ 21 "normal": { 22 request: httptest.NewRequest("POST", "http://localhost/event", nil), 23 want: &model2.GAMeasurementEvent{ 24 UserAgentOverride: userAgent, 25 ClientID: "", 26 DocumentHostName: "localhost", 27 DocumentPath: "/event", 28 DocumentTitle: "/event", 29 DocumentReferrer: "", 30 IPOverride: ipOverride, 31 }, 32 }, 33 } 34 for name, test := range tests { 35 test.request.Header.Set("User-Agent", userAgent) 36 test.request.Header.Set("X-Forwarded-For", ipOverride) 37 t.Run(name, func(t *testing.T) { 38 if got := newGAMeasurementEventFromRequest(test.request); !reflect.DeepEqual(got, test.want) { 39 t.Errorf("newGAMeasurementEventFromRequest() = %v, want %v", got, test.want) 40 } 41 }) 42 } 43 }