package main
import (
"testing"
)
func TestReadCommonHeader(t *testing.T) {
SetupConfig()
var msg = `
1492972518
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.ToUserName, "gh_f09231355c68", "ToUserName failed")
AssertEqual(t, h.FromUserName, "oUN420bxqFqlx0ZQHciUOesZO3PE", "FromUserName failed")
AssertEqual(t, h.CreateTime, int64(1492972518), "CreateTime Failed")
AssertEqual(t, h.MsgType, "event", "MsgType failed")
}
func TestTxtMsg(t *testing.T) {
msg := `
1348831860
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "text", "Expect text type")
m := ReadTextMsg(msg)
AssertEqual(t, m.Content, "this is a test", "Content failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestPicMsg(t *testing.T) {
msg := `
1348831860
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "image", "")
m := ReadPicMsg(msg)
AssertEqual(t, m.MediaId, "media_id", "Media id failed")
AssertEqual(t, m.PicUrl, "this is a url", "PicUrl failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestVoiceMsg(t *testing.T) {
msg := `
1357290913
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "voice", "Message type should be voice")
m := ReadVoiceMsg(msg)
AssertEqual(t, m.MediaId, "media_id", "Media id failed")
AssertEqual(t, m.Format, "Format", "Format failed")
AssertEqual(t, m.Recognition, "some result", "Recognition failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestVideoMsg(t *testing.T) {
msg := `
1357290913
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "video", "Message type should be video")
m := ReadVideoMsg(msg)
AssertEqual(t, m.MediaId, "media_id", "Media id failed")
AssertEqual(t, m.ThumbMediaId, "thumb_media_id", "Format failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestShortVideoMsg(t *testing.T) {
msg := `
1357290913
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "shortvideo", "Message type should be video")
m := ReadShortVideoMsg(msg)
AssertEqual(t, m.MediaId, "media_id", "Media id failed")
AssertEqual(t, m.ThumbMediaId, "thumb_media_id", "thumb_media_id failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestLocationMsg(t *testing.T) {
msg := `
1351776360
23.134521
113.358803
20
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "location", "Message type should be video")
m := ReadLocationMsg(msg)
AssertEqual(t, m.Location_X, (float64(23.134521)), "Location_X failed")
AssertEqual(t, m.Location_Y, (float64(113.358803)), "Location_Y failed")
AssertEqual(t, m.Scale, int(20), "Scale failed")
AssertEqual(t, m.Label, "Location description", "Label failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestLinkMsg(t *testing.T) {
msg := `
1351776360
1234567890123456
`
h := ReadCommonHeader(msg)
AssertEqual(t, h.MsgType, "link", "Message type should be link")
m := ReadLinkMsg(msg)
AssertEqual(t, m.Title, "somelinktitle", "Title failed")
AssertEqual(t, m.Description, "somelinktitleDescription", "Description failed")
AssertEqual(t, m.Url, "url", "Url failed")
AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
}
func TestReadEncryptMsg(t *testing.T) {
msg := `
`
m := ReadEncryptedMsg(msg)
AssertEqual(t, m.ToUserName, "gh_f09231355c68", "ToUserName failed")
AssertEqual(t, m.Encrypt, "Dv3epMMhmmGU1o6lg71IfbpRrOYX1S8oZX3nwW0uBAHHMKx62T4KniS4efuf8fNHWf6gsF/YGaDraF6HhGOdKp8vbzluiIEsCnIveKN1pO+IUDOBBxzPAzQSFSYJ3OwVXWmBdBcC1S5guQrOxLysH+6UIWSor9cEef+94UAKTNw/MLB0zPfqK5TVoN1A0yobmP9OU8wtFJP0L1aKySPFGGbqBMfJkStRTrYLjIQfZ7pAIisB/g3c87w26r7LUz9hVh4ey3/T6cjQ8vKvgNKL3j8y4IwUdmnmTPrrdOsyA1pz69977xKHFtIptZYHKGD9dTW6PyPcKKTP6iOod6Agb8TI+is80auqHkjvUyvT/xPG8fxak/wI9BKzKndAnwxlcDG/8WElkHVl0TwxpsCb48ZxLEf4GFKaYaliC9xBVweKLNnqdbBmzwfe7GBNWC61h7KQYqwtZqMkZs3BBsStcQ==", "ToUserName failed")
}
func TestAcceptLocationInfo(t *testing.T) {
// POST /api?signature=1a9991fc0d1916495e26e07dca7d2c305c529b0d×tamp=1493303819&nonce=1367712073&openid=oUN420bxqFqlx0ZQHciUOesZO3PE&encrypt_type=aes&msg_signature=46331890d4c95a017a014a009ccc7f37228665db HTTP/1.1
// Host: wechat.hitxy.org.au
// Accept: */*
// Cache-Control: no-cache
// Connection: Keep-Alive
// Content-Length: 618
// Content-Type: text/xml
// Pragma: no-cache
// User-Agent: Mozilla/4.0
// X-Forwarded-For: 103.7.30.105
// X-Forwarded-Host: wechat.hitxy.org.au
// X-Forwarded-Server: wechat.hitxy.org.au
//
//
//
//
// Decript as:
//
//
// 1493304047
//
//
// -33.764935
// 150.960327
// 110.000000
//
}