mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-02-25 05:53:09 -06:00
Fix oops, add simple test
This commit is contained in:
parent
a2a4e96c9b
commit
ab2c24c742
|
|
@ -145,7 +145,7 @@ func ToClientEvent(se gomatrixserverlib.PDU, format ClientEventFormat, userIDFor
|
||||||
// For compatibility with older clients, we keep the "redacts" top-level field.
|
// For compatibility with older clients, we keep the "redacts" top-level field.
|
||||||
// TODO: At which point do we remove "redacts" from the top-level?
|
// TODO: At which point do we remove "redacts" from the top-level?
|
||||||
if se.Type() == spec.MRoomRedaction && se.Version() == gomatrixserverlib.RoomVersionV11 && ce.Redacts != "" {
|
if se.Type() == spec.MRoomRedaction && se.Version() == gomatrixserverlib.RoomVersionV11 && ce.Redacts != "" {
|
||||||
v11content, err := sjson.SetBytes(ce.Content, "content.redacts", ce.Redacts)
|
v11content, err := sjson.SetBytes(ce.Content, "redacts", ce.Redacts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.WithError(err).Warn("failed to set content.redacts")
|
logrus.WithError(err).Warn("failed to set content.redacts")
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,50 @@ func TestToClientEvent(t *testing.T) { // nolint: gocyclo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Merely tests that the top-level "redacts" is copied to "content.redacts" and keeps the top-level
|
||||||
|
// one as is
|
||||||
|
func TestToClientEventRedactionV11(t *testing.T) { // nolint: gocyclo
|
||||||
|
ev, err := gomatrixserverlib.MustGetRoomVersion(gomatrixserverlib.RoomVersionV11).NewEventFromTrustedJSON([]byte(`{
|
||||||
|
"type": "m.room.redaction",
|
||||||
|
"state_key": "",
|
||||||
|
"event_id": "$test",
|
||||||
|
"room_id": "!test:localhost",
|
||||||
|
"sender": "@test:localhost",
|
||||||
|
"content": {
|
||||||
|
"reason": "Hello World"
|
||||||
|
},
|
||||||
|
"origin_server_ts": 123456,
|
||||||
|
"unsigned": {
|
||||||
|
"prev_content": {
|
||||||
|
"name": "Goodbye World"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redacts": "$abc"
|
||||||
|
}`), false)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create Event: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ce, err := ToClientEvent(ev, FormatAll, func(roomID spec.RoomID, senderID spec.SenderID) (*spec.UserID, error) {
|
||||||
|
return queryUserIDForSender(senderID)
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create ClientEvent: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
j, err := json.Marshal(ce)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to Marshal ClientEvent: %s", err)
|
||||||
|
}
|
||||||
|
// Marshal sorts keys in structs by the order they are defined in the struct, which is alphabetical
|
||||||
|
out := `{"content":{"reason":"Hello World","redacts":"$abc"},"event_id":"$test","origin_server_ts":123456,` +
|
||||||
|
`"room_id":"!test:localhost","sender":"@test:localhost","state_key":"","type":"m.room.redaction",` +
|
||||||
|
`"unsigned":{"prev_content":{"name":"Goodbye World"}},"redacts":"$abc"}`
|
||||||
|
if !bytes.Equal([]byte(out), j) {
|
||||||
|
t.Errorf("ClientEvent marshalled to wrong bytes: wanted \n%s, got \n%s", out, string(j))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestToClientFormatSync(t *testing.T) {
|
func TestToClientFormatSync(t *testing.T) {
|
||||||
ev, err := gomatrixserverlib.MustGetRoomVersion(gomatrixserverlib.RoomVersionV1).NewEventFromTrustedJSON([]byte(`{
|
ev, err := gomatrixserverlib.MustGetRoomVersion(gomatrixserverlib.RoomVersionV1).NewEventFromTrustedJSON([]byte(`{
|
||||||
"type": "m.room.name",
|
"type": "m.room.name",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue