trust_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package client
  2. import (
  3. "os"
  4. "testing"
  5. "github.com/docker/docker/registry"
  6. registrytypes "github.com/docker/engine-api/types/registry"
  7. )
  8. func unsetENV() {
  9. os.Unsetenv("DOCKER_CONTENT_TRUST")
  10. os.Unsetenv("DOCKER_CONTENT_TRUST_SERVER")
  11. }
  12. func TestENVTrustServer(t *testing.T) {
  13. defer unsetENV()
  14. indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
  15. if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "https://notary-test.com:5000"); err != nil {
  16. t.Fatal("Failed to set ENV variable")
  17. }
  18. output, err := trustServer(indexInfo)
  19. expectedStr := "https://notary-test.com:5000"
  20. if err != nil || output != expectedStr {
  21. t.Fatalf("Expected server to be %s, got %s", expectedStr, output)
  22. }
  23. }
  24. func TestHTTPENVTrustServer(t *testing.T) {
  25. defer unsetENV()
  26. indexInfo := &registrytypes.IndexInfo{Name: "testserver"}
  27. if err := os.Setenv("DOCKER_CONTENT_TRUST_SERVER", "http://notary-test.com:5000"); err != nil {
  28. t.Fatal("Failed to set ENV variable")
  29. }
  30. _, err := trustServer(indexInfo)
  31. if err == nil {
  32. t.Fatal("Expected error with invalid scheme")
  33. }
  34. }
  35. func TestOfficialTrustServer(t *testing.T) {
  36. indexInfo := &registrytypes.IndexInfo{Name: "testserver", Official: true}
  37. output, err := trustServer(indexInfo)
  38. if err != nil || output != registry.NotaryServer {
  39. t.Fatalf("Expected server to be %s, got %s", registry.NotaryServer, output)
  40. }
  41. }
  42. func TestNonOfficialTrustServer(t *testing.T) {
  43. indexInfo := &registrytypes.IndexInfo{Name: "testserver", Official: false}
  44. output, err := trustServer(indexInfo)
  45. expectedStr := "https://" + indexInfo.Name
  46. if err != nil || output != expectedStr {
  47. t.Fatalf("Expected server to be %s, got %s", expectedStr, output)
  48. }
  49. }