Skip to content

Commit

Permalink
Modify code, add test file
Browse files Browse the repository at this point in the history
  • Loading branch information
mileusna committed Jun 15, 2017
1 parent 56b4fb4 commit d50563b
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 6 deletions.
8 changes: 2 additions & 6 deletions messenger.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,7 @@ func DecodeRequest(r *http.Request) (FacebookRequest, error) {
defer r.Body.Close()
var fbRq FacebookRequest
err := json.NewDecoder(r.Body).Decode(&fbRq)
if err != nil {
return fbRq, err //log.Println("!!!!", err)
}

return fbRq, nil
return fbRq, err
}

// decodeResponse decodes Facebook response after sending message, usually contains MessageID or Error
Expand All @@ -126,7 +122,7 @@ func decodeResponse(r *http.Response) (FacebookResponse, error) {
var fbResp rawFBResponse
err := json.NewDecoder(r.Body).Decode(&fbResp)
if err != nil {
return FacebookResponse{}, nil
return FacebookResponse{}, err
}

if fbResp.Error != nil {
Expand Down
61 changes: 61 additions & 0 deletions messenger_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package messenger_test

import (
"encoding/json"
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"

"github.com/mileusna/facebook-messenger"
)

var fs *httptest.Server

var ts *httptest.Server

const (
verifyToken = "my_secret_token"
)

func TestMain(m *testing.M) {
// fs will mock up fb messenger server
fs = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
rec := messenger.FacebookResponse{
RecipientID: 12123213123,
MessageID: "mid00000TEST00000TEST00000TEST",
}
b, _ := json.Marshal(rec)
w.Write(b)
}))
defer fs.Close()

// setup chatbot
messenger.TestURL = fs.URL + "/"

msng := &messenger.Messenger{
AccessToken: "XXXXXXX",
VerifyToken: verifyToken,
}

//chatbot.Messenger.MessageReceived = chatbot.MessageReceived
//chatbot.Messenger.DeliveryReceived = chatbot.DeliveryReceived
//chatbot.Messenger.PostbackReceived = chatbot.PostbackReceived

// ts is our test chatbot
ts = httptest.NewServer(msng)
defer ts.Close()

m.Run()
}

func TestVerify(t *testing.T) {
challenge := "1122334455"
verifyReq := ts.URL + "/?test=1&hub.mode=subscribe&hub.challenge=" + challenge + "&hub.verify_token=" + verifyToken
resp, _ := http.Get(verifyReq)
defer resp.Body.Close()
s, _ := ioutil.ReadAll(resp.Body)
if string(s) != challenge {
t.Error("Challenge failed, expected", challenge, "returned", string(s))
}
}

0 comments on commit d50563b

Please sign in to comment.