package dockerversion import ( "context" "testing" "github.com/docker/docker/pkg/useragent" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp" ) func TestDockerUserAgent(t *testing.T) { t.Run("daemon user-agent", func(t *testing.T) { ua := DockerUserAgent(context.TODO()) expected := getDaemonUserAgent() assert.Check(t, is.Equal(ua, expected)) }) t.Run("daemon user-agent custom metadata", func(t *testing.T) { ua := DockerUserAgent(context.TODO(), useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"}) expected := getDaemonUserAgent() + ` hello/world foo/bar` assert.Check(t, is.Equal(ua, expected)) }) t.Run("daemon user-agent with upstream", func(t *testing.T) { ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)") ua := DockerUserAgent(ctx) expected := getDaemonUserAgent() + ` UpstreamClient(Magic-Client/1.2.3 \(linux\))` assert.Check(t, is.Equal(ua, expected)) }) t.Run("daemon user-agent with upstream and custom metadata", func(t *testing.T) { ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)") ua := DockerUserAgent(ctx, useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"}) expected := getDaemonUserAgent() + ` hello/world foo/bar UpstreamClient(Magic-Client/1.2.3 \(linux\))` assert.Check(t, is.Equal(ua, expected)) }) }