trust_test.go 1.6 KB

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