package ffiii import ( "net/http" "net/http/httptest" "os" "strings" "testing" ) func TestAuthorize(t *testing.T) { if realURL, ok := os.LookupEnv("OAUTH_URL"); ok { realToken := os.Getenv("OAUTH_TOKEN") realID := os.Getenv("OAUTH_ID") realCode := os.Getenv("OAUTH_CODE") c := &Client{ apiID: realID, apiToken: realToken, url: realURL, reader: strings.NewReader(realCode), } if err := c.Authorize(); err != nil { t.Fatal(err) } return } oauth := mockOAuthServer() defer oauth.Close() if _, err := New("1", "token", oauth.URL); err != nil { t.Fatal(err) } } func mockOAuthServer() *httptest.Server { mux := http.NewServeMux() mux.HandleFunc("/oauth/authorize", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("authCode")) }) mux.HandleFunc("/oauth/token", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("access_token=mocktoken&scope=user&token_type=bearer")) }) return httptest.NewServer(mux) }