mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 11:39:17 +00:00
115 lines
5.7 KiB
Go
115 lines
5.7 KiB
Go
package databag
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
"encoding/base64"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestUpdateProfile(t *testing.T) {
|
|
param := map[string]string{}
|
|
var msg DataMessage
|
|
var card Card
|
|
var bProfileRev int64
|
|
var bCardRev int64
|
|
var cProfileRev int64
|
|
var cCardRev int64
|
|
var profile Profile
|
|
var data []byte
|
|
var img []byte
|
|
var hdr map[string][]string
|
|
|
|
// setup testing group
|
|
set, err := AddTestGroup("updateprofile")
|
|
assert.NoError(t, err)
|
|
|
|
// setup testing group
|
|
_, ret := AddTestGroup("updateprofile")
|
|
assert.Error(t, ret)
|
|
|
|
// reset revision
|
|
bCardRev = GetTestRevision(set.B.Revisions).Card
|
|
cCardRev = GetTestRevision(set.C.Revisions).Card
|
|
param["cardId"] = set.B.A.CardId
|
|
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
|
¶m, nil,
|
|
APP_TOKENAPP, set.B.Token, &card, nil))
|
|
bProfileRev = card.Data.NotifiedProfile
|
|
param["cardId"] = set.C.A.CardId
|
|
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
|
¶m, nil,
|
|
APP_TOKENAPP, set.C.Token, &card, nil))
|
|
cProfileRev = card.Data.NotifiedProfile
|
|
|
|
// update A profile
|
|
profileData := &ProfileData{
|
|
Name: "Namer",
|
|
Location: "San Diago",
|
|
Description: "databaggerr",
|
|
};
|
|
assert.NoError(t, ApiTestMsg(SetProfile, "PUT", "/profile/data",
|
|
nil, profileData,
|
|
APP_TOKENAPP, set.A.Token, &profile, nil))
|
|
assert.Equal(t, "databaggerr", profile.Description)
|
|
|
|
// recv websocket event
|
|
assert.NotEqual(t, bCardRev, GetTestRevision(set.B.Revisions).Card)
|
|
assert.NotEqual(t, cCardRev, GetTestRevision(set.C.Revisions).Card)
|
|
|
|
// check B notified
|
|
param["cardId"] = set.B.A.CardId
|
|
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
|
¶m, nil,
|
|
APP_TOKENAPP, set.B.Token, &card, nil))
|
|
assert.NotEqual(t, bProfileRev, card.Data.NotifiedProfile)
|
|
assert.NotEqual(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
|
|
|
// check C notified
|
|
param["cardId"] = set.C.A.CardId
|
|
assert.NoError(t, ApiTestMsg(GetCard, "GET", "/contact/cards/{cardId}",
|
|
¶m, nil,
|
|
APP_TOKENAPP, set.C.Token, &card, nil))
|
|
assert.NotEqual(t, cProfileRev, card.Data.NotifiedProfile)
|
|
assert.NotEqual(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
|
|
|
// sync profile
|
|
assert.NoError(t, ApiTestMsg(GetProfileMessage, "GET", "/profile/message",
|
|
nil, nil,
|
|
APP_TOKENCONTACT, set.B.A.Token, &msg, nil))
|
|
assert.NoError(t, ApiTestMsg(AddCard, "POST", "/contact/cards",
|
|
nil, &msg,
|
|
APP_TOKENAPP, set.B.Token, &card, nil))
|
|
assert.Equal(t, card.Id, set.B.A.CardId)
|
|
assert.Equal(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
|
assert.Equal(t, card.Data.CardProfile.Name, "Namer")
|
|
|
|
// sync profile
|
|
assert.NoError(t, ApiTestMsg(GetProfileMessage, "GET", "/profile/message",
|
|
nil, nil,
|
|
APP_TOKENCONTACT, set.C.A.Token, &msg, nil))
|
|
assert.NoError(t, ApiTestMsg(AddCard, "POST", "/contact/cards",
|
|
nil, &msg,
|
|
APP_TOKENAPP, set.C.Token, &card, nil))
|
|
assert.Equal(t, card.Id, set.C.A.CardId)
|
|
assert.Equal(t, card.Data.ProfileRevision, card.Data.NotifiedProfile)
|
|
assert.Equal(t, card.Data.CardProfile.Name, "Namer")
|
|
|
|
// set profile image
|
|
image := "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"
|
|
assert.NoError(t, ApiTestMsg(SetProfileImage, "PUT", "/profile/image",
|
|
nil, image,
|
|
APP_TOKENAPP, set.A.Token, &profile, nil))
|
|
|
|
// retrieve profile image
|
|
data, hdr, err = ApiTestData(GetProfileImage, "GET", "/profile/image", nil, nil,
|
|
APP_TOKENAPP, set.A.Token)
|
|
assert.NoError(t, err)
|
|
|
|
// compare retrieved image
|
|
assert.Equal(t, "image/png", hdr["Content-Type"][0])
|
|
img, err = base64.StdEncoding.DecodeString(image)
|
|
assert.NoError(t, err)
|
|
assert.Zero(t, bytes.Compare(img, data))
|
|
}
|