| package gcr |
| |
| import ( |
| "fmt" |
| "testing" |
| |
| "github.com/stretchr/testify/assert" |
| "go.skia.org/infra/go/mockhttpclient" |
| "go.skia.org/infra/go/testutils" |
| ) |
| |
| func TestTags(t *testing.T) { |
| testutils.SmallTest(t) |
| url := fmt.Sprintf("https://%s/v2/skia-public/docserver/tags/list", SERVER) |
| m := mockhttpclient.NewURLMock() |
| m.Mock(url, mockhttpclient.MockGetDialogue([]byte(`{"tags": ["foo", "bar"]}`))) |
| c := &Client{ |
| client: m.Client(), |
| projectId: "skia-public", |
| imageName: "docserver", |
| } |
| tags, err := c.Tags() |
| assert.NoError(t, err) |
| assert.Equal(t, []string{"foo", "bar"}, tags) |
| |
| c.imageName = "unknown" |
| tags, err = c.Tags() |
| assert.Error(t, err) |
| } |
| |
| func TestGcrTokenSource(t *testing.T) { |
| testutils.SmallTest(t) |
| m := mockhttpclient.NewURLMock() |
| url := fmt.Sprintf("https://%s/v2/token?scope=repository:skia-public/docserver:pull", SERVER) |
| m.Mock(url, mockhttpclient.MockGetDialogue([]byte(`{"token": "foo", "expires_in": 3600}`))) |
| |
| ts := &gcrTokenSource{ |
| client: m.Client(), |
| projectId: "skia-public", |
| imageName: "docserver", |
| } |
| token, err := ts.Token() |
| assert.NoError(t, err) |
| assert.Equal(t, "foo", token.AccessToken) |
| assert.Equal(t, "Bearer", token.TokenType) |
| |
| ts.imageName = "unknown" |
| token, err = ts.Token() |
| assert.Error(t, err) |
| } |