@@ -12,30 +12,27 @@ import (
1212 "testing"
1313)
1414
15- func TestSetMetadataURL (t * testing.T ) {
16- originalURL := metadataURL
17- originalTestMode := isTestMode
18-
19- // Set custom URL
20- restore := SetMetadataURL ("http://custom-metadata" )
21-
22- if metadataURL != "http://custom-metadata" {
23- t .Errorf ("expected metadataURL to be http://custom-metadata, got %s" , metadataURL )
15+ func TestWithConfig (t * testing.T ) {
16+ // Test that config can be set in context
17+ cfg := & Config {
18+ MetadataURL : "http://custom-metadata" ,
19+ SkipADC : true ,
2420 }
21+ ctx := WithConfig (context .Background (), cfg )
2522
26- if ! isTestMode {
27- t .Error ("expected isTestMode to be true" )
23+ // Context should be non-nil
24+ if ctx == nil {
25+ t .Fatal ("expected non-nil context" )
2826 }
2927
30- // Restore
31- restore ()
32-
33- if metadataURL != originalURL {
34- t .Errorf ("expected metadataURL to be restored to %s, got %s" , originalURL , metadataURL )
28+ // Verify config is retrievable
29+ retrievedCfg := getConfig (ctx )
30+ if retrievedCfg .MetadataURL != "http://custom-metadata" {
31+ t .Errorf ("expected MetadataURL to be http://custom-metadata, got %s" , retrievedCfg .MetadataURL )
3532 }
3633
37- if isTestMode != originalTestMode {
38- t .Errorf ("expected isTestMode to be restored to %v, got %v" , originalTestMode , isTestMode )
34+ if ! retrievedCfg . SkipADC {
35+ t .Error ("expected SkipADC to be true" )
3936 }
4037}
4138
@@ -111,10 +108,11 @@ func TestAccessTokenFromMetadata(t *testing.T) {
111108 }))
112109 defer server .Close ()
113110
114- restore := SetMetadataURL (server .URL )
115- defer restore ()
111+ ctx := WithConfig (context .Background (), & Config {
112+ MetadataURL : server .URL ,
113+ SkipADC : true ,
114+ })
116115
117- ctx := context .Background ()
118116 token , err := accessTokenFromMetadata (ctx )
119117
120118 if tt .wantErr {
@@ -153,12 +151,12 @@ func TestAccessToken(t *testing.T) {
153151 }))
154152 defer server .Close ()
155153
156- restore := SetMetadataURL (server .URL )
157- defer restore ()
154+ ctx := WithConfig (context .Background (), & Config {
155+ MetadataURL : server .URL ,
156+ SkipADC : true ,
157+ })
158158
159- ctx := context .Background ()
160-
161- // In test mode, should use metadata server
159+ // With SkipADC=true, should use metadata server
162160 token , err := AccessToken (ctx )
163161 if err != nil {
164162 t .Fatalf ("AccessToken failed: %v" , err )
@@ -353,10 +351,10 @@ func TestProjectID(t *testing.T) {
353351 }))
354352 defer server .Close ()
355353
356- restore := SetMetadataURL ( server . URL )
357- defer restore ()
358-
359- ctx := context . Background ( )
354+ ctx := WithConfig ( context . Background (), & Config {
355+ MetadataURL : server . URL ,
356+ SkipADC : true ,
357+ } )
360358 projectID , err := ProjectID (ctx )
361359
362360 if tt .wantErr {
@@ -379,10 +377,10 @@ func TestProjectID(t *testing.T) {
379377
380378func TestAccessTokenMetadataServerDown (t * testing.T ) {
381379 // Point to non-existent server
382- restore := SetMetadataURL ( "http://localhost:59999" )
383- defer restore ()
384-
385- ctx := context . Background ( )
380+ ctx := WithConfig ( context . Background (), & Config {
381+ MetadataURL : "http://localhost:59999" ,
382+ SkipADC : true ,
383+ } )
386384 _ , err := accessTokenFromMetadata (ctx )
387385
388386 if err == nil {
@@ -396,10 +394,10 @@ func TestAccessTokenMetadataServerDown(t *testing.T) {
396394
397395func TestProjectIDMetadataServerDown (t * testing.T ) {
398396 // Point to non-existent server
399- restore := SetMetadataURL ( "http://localhost:59998" )
400- defer restore ()
401-
402- ctx := context . Background ( )
397+ ctx := WithConfig ( context . Background (), & Config {
398+ MetadataURL : "http://localhost:59998" ,
399+ SkipADC : true ,
400+ } )
403401 _ , err := ProjectID (ctx )
404402
405403 if err == nil {
@@ -465,10 +463,10 @@ func TestAccessTokenFromMetadataReadError(t *testing.T) {
465463 }))
466464 defer server .Close ()
467465
468- restore := SetMetadataURL ( server . URL )
469- defer restore ()
470-
471- ctx := context . Background ( )
466+ ctx := WithConfig ( context . Background (), & Config {
467+ MetadataURL : server . URL ,
468+ SkipADC : true ,
469+ } )
472470 _ , err := accessTokenFromMetadata (ctx )
473471
474472 if err == nil {
@@ -488,10 +486,10 @@ func TestProjectIDReadError(t *testing.T) {
488486 }))
489487 defer server .Close ()
490488
491- restore := SetMetadataURL ( server . URL )
492- defer restore ()
493-
494- ctx := context . Background ( )
489+ ctx := WithConfig ( context . Background (), & Config {
490+ MetadataURL : server . URL ,
491+ SkipADC : true ,
492+ } )
495493 _ , err := ProjectID (ctx )
496494
497495 if err == nil {
@@ -521,10 +519,10 @@ func TestAccessTokenFromMetadataWithMalformedJSON(t *testing.T) {
521519 }))
522520 defer server .Close ()
523521
524- restore := SetMetadataURL ( server . URL )
525- defer restore ()
526-
527- ctx := context . Background ( )
522+ ctx := WithConfig ( context . Background (), & Config {
523+ MetadataURL : server . URL ,
524+ SkipADC : true ,
525+ } )
528526 _ , err := accessTokenFromMetadata (ctx )
529527 // Should either succeed (if parser is lenient) or fail with parse error
530528 if err != nil {
@@ -547,10 +545,10 @@ func TestProjectIDWithEmptyResponse(t *testing.T) {
547545 }))
548546 defer server .Close ()
549547
550- restore := SetMetadataURL ( server . URL )
551- defer restore ()
552-
553- ctx := context . Background ( )
548+ ctx := WithConfig ( context . Background (), & Config {
549+ MetadataURL : server . URL ,
550+ SkipADC : true ,
551+ } )
554552 projectID , err := ProjectID (ctx )
555553 if err != nil {
556554 t .Fatalf ("ProjectID with empty response failed: %v" , err )
@@ -650,15 +648,16 @@ func TestAccessTokenFallbackToMetadata(t *testing.T) {
650648 }))
651649 defer server .Close ()
652650
653- restore := SetMetadataURL (server .URL )
654- defer restore ()
651+ ctx := WithConfig (context .Background (), & Config {
652+ MetadataURL : server .URL ,
653+ SkipADC : true ,
654+ })
655655
656656 // Ensure no ADC credentials are available
657657 if err := os .Unsetenv ("GOOGLE_APPLICATION_CREDENTIALS" ); err != nil {
658658 t .Fatalf ("failed to unset env var: %v" , err )
659659 }
660660
661- ctx := context .Background ()
662661 token , err := AccessToken (ctx )
663662 if err != nil {
664663 t .Fatalf ("AccessToken failed: %v" , err )
@@ -688,10 +687,10 @@ func TestProjectIDInvalidJSON(t *testing.T) {
688687 }))
689688 defer server .Close ()
690689
691- restore := SetMetadataURL ( server . URL )
692- defer restore ()
693-
694- ctx := context . Background ( )
690+ ctx := WithConfig ( context . Background (), & Config {
691+ MetadataURL : server . URL ,
692+ SkipADC : true ,
693+ } )
695694 projectID , err := ProjectID (ctx )
696695
697696 if err != nil {
@@ -750,10 +749,10 @@ func TestAccessTokenFromADCDefaultLocation(t *testing.T) {
750749// Test ProjectID with request error
751750func TestProjectIDRequestError (t * testing.T ) {
752751 // Set invalid URL to trigger request error
753- restore := SetMetadataURL ( "http://invalid-host-that-does-not-exist-12345" )
754- defer restore ()
755-
756- ctx := context . Background ( )
752+ ctx := WithConfig ( context . Background (), & Config {
753+ MetadataURL : "http://invalid-host-that-does-not-exist-12345" ,
754+ SkipADC : true ,
755+ } )
757756 _ , err := ProjectID (ctx )
758757
759758 if err == nil {
@@ -777,10 +776,10 @@ func TestAccessTokenFromMetadataTypeError(t *testing.T) {
777776 }))
778777 defer server .Close ()
779778
780- restore := SetMetadataURL ( server . URL )
781- defer restore ()
782-
783- ctx := context . Background ( )
779+ ctx := WithConfig ( context . Background (), & Config {
780+ MetadataURL : server . URL ,
781+ SkipADC : true ,
782+ } )
784783 _ , err := accessTokenFromMetadata (ctx )
785784
786785 if err == nil {
0 commit comments