@@ -72,14 +72,20 @@ func TestMain(m *testing.M) {
72
72
func TestCredentialsTokenSourceIntegration (t * testing.T ) {
73
73
testutil .IntegrationTestCheck (t )
74
74
tests := []struct {
75
- name string
76
- baseKeyFile string
77
- delegates []string
75
+ name string
76
+ baseKeyFile string
77
+ delegates []string
78
+ useDefaultCreds bool
78
79
}{
79
80
{
80
81
name : "SA -> SA" ,
81
82
baseKeyFile : readerKeyFile ,
82
83
},
84
+ {
85
+ name : "SA -> SA (Default)" ,
86
+ baseKeyFile : readerKeyFile ,
87
+ useDefaultCreds : true ,
88
+ },
83
89
{
84
90
name : "SA -> Delegate -> SA" ,
85
91
baseKeyFile : baseKeyFile ,
@@ -90,19 +96,27 @@ func TestCredentialsTokenSourceIntegration(t *testing.T) {
90
96
for _ , tt := range tests {
91
97
t .Run (tt .name , func (t * testing.T ) {
92
98
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
+ }
99
109
}
100
- tp , err := impersonate .NewCredentialTokenProvider (& impersonate.CredentialOptions {
110
+
111
+ opts := & impersonate.CredentialOptions {
101
112
TargetPrincipal : writerEmail ,
102
113
Scopes : []string {"https://www.googleapis.com/auth/devstorage.full_control" },
103
114
Delegates : tt .delegates ,
104
- TokenProvider : creds ,
105
- })
115
+ }
116
+ if ! tt .useDefaultCreds {
117
+ opts .TokenProvider = creds
118
+ }
119
+ tp , err := impersonate .NewCredentialTokenProvider (opts )
106
120
if err != nil {
107
121
t .Fatalf ("failed to create ts: %v" , err )
108
122
}
@@ -123,14 +137,20 @@ func TestIDTokenSourceIntegration(t *testing.T) {
123
137
124
138
ctx := context .Background ()
125
139
tests := []struct {
126
- name string
127
- baseKeyFile string
128
- delegates []string
140
+ name string
141
+ baseKeyFile string
142
+ delegates []string
143
+ useDefaultCreds bool
129
144
}{
130
145
{
131
146
name : "SA -> SA" ,
132
147
baseKeyFile : readerKeyFile ,
133
148
},
149
+
150
+ {
151
+ name : "SA -> SA (Default)" ,
152
+ useDefaultCreds : true ,
153
+ },
134
154
{
135
155
name : "SA -> Delegate -> SA" ,
136
156
baseKeyFile : baseKeyFile ,
@@ -141,21 +161,28 @@ func TestIDTokenSourceIntegration(t *testing.T) {
141
161
for _ , tt := range tests {
142
162
name := tt .name
143
163
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
+ }
150
174
}
151
175
aud := "http://example.com/"
152
- tp , err := impersonate . NewIDTokenProvider ( & impersonate.IDTokenOptions {
176
+ opts := & impersonate.IDTokenOptions {
153
177
TargetPrincipal : writerEmail ,
154
178
Audience : aud ,
155
179
Delegates : tt .delegates ,
156
180
IncludeEmail : true ,
157
- TokenProvider : creds ,
158
- })
181
+ }
182
+ if ! tt .useDefaultCreds {
183
+ opts .TokenProvider = creds
184
+ }
185
+ tp , err := impersonate .NewIDTokenProvider (opts )
159
186
if err != nil {
160
187
t .Fatalf ("failed to create ts: %v" , err )
161
188
}
0 commit comments