1package httpmock 2 3import ( 4 "net/http" 5 "os" 6 "testing" 7) 8 9func TestEnv(t *testing.T) { 10 DeactivateAndReset() 11 12 orig := os.Getenv(envVarName) 13 14 // put it in an enabled state 15 if err := os.Setenv(envVarName, ""); err != nil { 16 t.Fatal(err) 17 } else if Disabled() { 18 t.Fatal("expected not to be disabled") 19 } 20 21 client1 := &http.Client{Transport: &http.Transport{}} 22 client2 := &http.Client{Transport: &http.Transport{}} 23 24 // make sure an activation works 25 Activate() 26 ActivateNonDefault(client1) 27 ActivateNonDefault(client2) 28 if http.DefaultTransport != DefaultTransport { 29 t.Fatal("expected http.DefaultTransport to be our DefaultTransport") 30 } 31 if client1.Transport != DefaultTransport { 32 t.Fatal("expected client1.Transport to be our DefaultTransport") 33 } 34 if client2.Transport != DefaultTransport { 35 t.Fatal("expected client2.Transport to be our DefaultTransport") 36 } 37 Deactivate() 38 39 if err := os.Setenv(envVarName, "1"); err != nil { 40 t.Fatal(err) 41 } else if !Disabled() { 42 t.Fatal("expected to be disabled") 43 } 44 45 // make sure activation doesn't work 46 Activate() 47 ActivateNonDefault(client1) 48 ActivateNonDefault(client2) 49 if http.DefaultTransport == DefaultTransport { 50 t.Fatal("expected http.DefaultTransport to not be our DefaultTransport") 51 } 52 if client1.Transport == DefaultTransport { 53 t.Fatal("expected client1.Transport to not be our DefaultTransport") 54 } 55 if client2.Transport == DefaultTransport { 56 t.Fatal("expected client2.Transport to not be our DefaultTransport") 57 } 58 Deactivate() 59 60 if err := os.Setenv(envVarName, orig); err != nil { 61 t.Fatalf("could not reset %s to it's original value '%s'", envVarName, orig) 62 } 63} 64