loginsrv

Unnamed repository; edit this file 'description' to name the repository.
git clone git@jamesshield.xyz:repos/loginsrv.git
Log | Files | Refs | README | LICENSE

facebook_test.go (2019B)


      1 package oauth2
      2 
      3 import (
      4 	. "github.com/stretchr/testify/assert"
      5 	"net/http"
      6 	"net/http/httptest"
      7 	"testing"
      8 )
      9 
     10 var facebookTestUserResponse = `{
     11     "id": "23456789012345678",
     12     "name": "Facebook User",
     13     "picture": {
     14         "data": {
     15             "height": 100,
     16             "is_silhouette": false,
     17             "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/example_facebook_image.jpg",
     18             "width": 100
     19         }
     20     },
     21     "email": "facebookuser@facebook.com"
     22 }`
     23 
     24 func Test_Facebook_getUserInfo(t *testing.T) {
     25 	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
     26 		Equal(t, "secret", r.FormValue("access_token"))
     27 		w.Header().Set("Content-Type", "application/json; charset=utf-8")
     28 		w.Write([]byte(facebookTestUserResponse))
     29 	}))
     30 	defer server.Close()
     31 
     32 	facebookAPI = server.URL
     33 
     34 	u, rawJSON, err := providerfacebook.GetUserInfo(TokenInfo{AccessToken: "secret"})
     35 	NoError(t, err)
     36 	Equal(t, "23456789012345678", u.Sub)
     37 	Equal(t, "facebookuser@facebook.com", u.Email)
     38 	Equal(t, "Facebook User", u.Name)
     39 	Equal(t, facebookTestUserResponse, rawJSON)
     40 }
     41 
     42 func Test_Facebook_getUserInfo_WrongContentType(t *testing.T) {
     43 	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
     44 		Equal(t, "secret", r.FormValue("access_token"))
     45 		w.Header().Set("Content-Type", "text/javascript; charset=utf-8")
     46 		w.Write([]byte(facebookTestUserResponse))
     47 	}))
     48 	defer server.Close()
     49 
     50 	facebookAPI = server.URL
     51 
     52 	_, _, err := providerfacebook.GetUserInfo(TokenInfo{AccessToken: "secret"})
     53 	Error(t, err)
     54 }
     55 
     56 func Test_Facebook_getUserInfo_WrongStatus(t *testing.T) {
     57 	server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
     58 		Equal(t, "secret", r.FormValue("access_token"))
     59 		w.WriteHeader(http.StatusBadRequest)
     60 		w.Write([]byte(facebookTestUserResponse))
     61 	}))
     62 	defer server.Close()
     63 
     64 	facebookAPI = server.URL
     65 
     66 	_, _, err := providerfacebook.GetUserInfo(TokenInfo{AccessToken: "secret"})
     67 	Error(t, err)
     68 }