useragent_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package dockerversion
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/docker/docker/pkg/useragent"
  6. "gotest.tools/v3/assert"
  7. is "gotest.tools/v3/assert/cmp"
  8. )
  9. func TestDockerUserAgent(t *testing.T) {
  10. t.Run("daemon user-agent", func(t *testing.T) {
  11. ua := DockerUserAgent(context.TODO())
  12. expected := getDaemonUserAgent()
  13. assert.Check(t, is.Equal(ua, expected))
  14. })
  15. t.Run("daemon user-agent custom metadata", func(t *testing.T) {
  16. ua := DockerUserAgent(context.TODO(), useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"})
  17. expected := getDaemonUserAgent() + ` hello/world foo/bar`
  18. assert.Check(t, is.Equal(ua, expected))
  19. })
  20. t.Run("daemon user-agent with upstream", func(t *testing.T) {
  21. ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)")
  22. ua := DockerUserAgent(ctx)
  23. expected := getDaemonUserAgent() + ` UpstreamClient(Magic-Client/1.2.3 \(linux\))`
  24. assert.Check(t, is.Equal(ua, expected))
  25. })
  26. t.Run("daemon user-agent with upstream and custom metadata", func(t *testing.T) {
  27. ctx := context.WithValue(context.TODO(), UAStringKey{}, "Magic-Client/1.2.3 (linux)")
  28. ua := DockerUserAgent(ctx, useragent.VersionInfo{Name: "hello", Version: "world"}, useragent.VersionInfo{Name: "foo", Version: "bar"})
  29. expected := getDaemonUserAgent() + ` hello/world foo/bar UpstreamClient(Magic-Client/1.2.3 \(linux\))`
  30. assert.Check(t, is.Equal(ua, expected))
  31. })
  32. }