influxdb/http/ua_test.go

60 lines
1.1 KiB
Go
Raw Normal View History

package http
import (
nethttp "net/http"
"testing"
)
func Test_userAgent(t *testing.T) {
tests := []struct {
name string
ua string
want string
}{
{
name: "linux chrome",
ua: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
want: "Chrome",
},
{
name: "telegraf",
ua: "Telegraf/1.12.6",
want: "Telegraf",
},
{
name: "curl",
ua: "curl/7.67.0",
want: "curl",
},
{
name: "go",
ua: "Go-http-client/1.1",
want: "Go-http-client",
},
{
name: "influx client",
ua: "InfluxDBClient/0.0.1 (golang; windows; amd64)",
want: "InfluxDBClient",
},
{
name: "iphone",
ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.4 Mobile/15E148 Safari/604.1",
want: "Safari",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
r := &nethttp.Request{
Header: nethttp.Header{
"User-Agent": []string{tt.ua},
},
}
got := userAgent(r)
if got != tt.want {
t.Fatalf("userAgent %v want %v", got, tt.want)
}
})
}
}