@@ -72,14 +72,20 @@ func TestMain(m *testing.M) {
7272func TestCredentialsTokenSourceIntegration (t * testing.T ) {
7373 testutil .IntegrationTestCheck (t )
7474 tests := []struct {
75- name string
76- baseKeyFile string
77- delegates []string
75+ name string
76+ baseKeyFile string
77+ delegates []string
78+ useDefaultCreds bool
7879 }{
7980 {
8081 name : "SA -> SA" ,
8182 baseKeyFile : readerKeyFile ,
8283 },
84+ {
85+ name : "SA -> SA (Default)" ,
86+ baseKeyFile : readerKeyFile ,
87+ useDefaultCreds : true ,
88+ },
8389 {
8490 name : "SA -> Delegate -> SA" ,
8591 baseKeyFile : baseKeyFile ,
@@ -90,19 +96,27 @@ func TestCredentialsTokenSourceIntegration(t *testing.T) {
9096 for _ , tt := range tests {
9197 t .Run (tt .name , func (t * testing.T ) {
9298 ctx := context .Background ()
93- creds , err := detect .DefaultCredentials (& detect.Options {
94- Scopes : []string {"https://www.googleapis.com/auth/cloud-platform" },
95- CredentialsFile : tt .baseKeyFile ,
96- })
97- if err != nil {
98- t .Fatalf ("detect.DefaultCredentials() = %v" , err )
99+ var creds * detect.Credentials
100+ if ! tt .useDefaultCreds {
101+ var err error
102+ creds , err = detect .DefaultCredentials (& detect.Options {
103+ Scopes : []string {"https://www.googleapis.com/auth/cloud-platform" },
104+ CredentialsFile : tt .baseKeyFile ,
105+ })
106+ if err != nil {
107+ t .Fatalf ("detect.DefaultCredentials() = %v" , err )
108+ }
99109 }
100- tp , err := impersonate .NewCredentialTokenProvider (& impersonate.CredentialOptions {
110+
111+ opts := & impersonate.CredentialOptions {
101112 TargetPrincipal : writerEmail ,
102113 Scopes : []string {"https://www.googleapis.com/auth/devstorage.full_control" },
103114 Delegates : tt .delegates ,
104- TokenProvider : creds ,
105- })
115+ }
116+ if ! tt .useDefaultCreds {
117+ opts .TokenProvider = creds
118+ }
119+ tp , err := impersonate .NewCredentialTokenProvider (opts )
106120 if err != nil {
107121 t .Fatalf ("failed to create ts: %v" , err )
108122 }
@@ -123,14 +137,20 @@ func TestIDTokenSourceIntegration(t *testing.T) {
123137
124138 ctx := context .Background ()
125139 tests := []struct {
126- name string
127- baseKeyFile string
128- delegates []string
140+ name string
141+ baseKeyFile string
142+ delegates []string
143+ useDefaultCreds bool
129144 }{
130145 {
131146 name : "SA -> SA" ,
132147 baseKeyFile : readerKeyFile ,
133148 },
149+
150+ {
151+ name : "SA -> SA (Default)" ,
152+ useDefaultCreds : true ,
153+ },
134154 {
135155 name : "SA -> Delegate -> SA" ,
136156 baseKeyFile : baseKeyFile ,
@@ -141,21 +161,28 @@ func TestIDTokenSourceIntegration(t *testing.T) {
141161 for _ , tt := range tests {
142162 name := tt .name
143163 t .Run (name , func (t * testing.T ) {
144- creds , err := detect .DefaultCredentials (& detect.Options {
145- Scopes : []string {"https://www.googleapis.com/auth/cloud-platform" },
146- CredentialsFile : tt .baseKeyFile ,
147- })
148- if err != nil {
149- t .Fatalf ("detect.DefaultCredentials() = %v" , err )
164+ var creds * detect.Credentials
165+ if ! tt .useDefaultCreds {
166+ var err error
167+ creds , err = detect .DefaultCredentials (& detect.Options {
168+ Scopes : []string {"https://www.googleapis.com/auth/cloud-platform" },
169+ CredentialsFile : tt .baseKeyFile ,
170+ })
171+ if err != nil {
172+ t .Fatalf ("detect.DefaultCredentials() = %v" , err )
173+ }
150174 }
151175 aud := "http://example.com/"
152- tp , err := impersonate . NewIDTokenProvider ( & impersonate.IDTokenOptions {
176+ opts := & impersonate.IDTokenOptions {
153177 TargetPrincipal : writerEmail ,
154178 Audience : aud ,
155179 Delegates : tt .delegates ,
156180 IncludeEmail : true ,
157- TokenProvider : creds ,
158- })
181+ }
182+ if ! tt .useDefaultCreds {
183+ opts .TokenProvider = creds
184+ }
185+ tp , err := impersonate .NewIDTokenProvider (opts )
159186 if err != nil {
160187 t .Fatalf ("failed to create ts: %v" , err )
161188 }
0 commit comments