github.com/olljanat/moby@v1.13.1/cli/command/image/trust_test.go (about)

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