fix: prevent body (and plaintextBody) from return html by accident

It is not clear why we ever would want to return the formatted_body when
we ask for the body, but it seems to not be used anywhere and there are
no tests covering that functionality. However it leads to suprising
results, where the plaintextBody can be tricked into returning html
without applying conversions. So we just get rid of that functionality.
This commit is contained in:
Nicolas Werner 2024-09-24 18:15:01 +02:00
parent 9ebd2e3893
commit c7d49695d5
No known key found for this signature in database
GPG Key ID: B38119FF80087618
2 changed files with 29 additions and 1 deletions

View File

@ -292,7 +292,6 @@ class Event extends MatrixEvent {
String get body {
if (redacted) return 'Redacted';
if (text != '') return text;
if (formattedText != '') return formattedText;
return type;
}

View File

@ -1200,6 +1200,35 @@ void main() {
}, room);
expect(event.plaintextBody, '**blah**');
});
test('body', () {
final event = Event.fromJson({
'type': EventTypes.Message,
'content': {
'body': 'blah',
'msgtype': 'm.text',
'format': 'org.matrix.custom.html',
'formatted_body': '<b>blub</b>',
},
'event_id': '\$source',
'sender': '@alice:example.org',
}, room);
expect(event.body, 'blah');
final event2 = Event.fromJson({
'type': EventTypes.Message,
'content': {
'body': '',
'msgtype': 'm.text',
'format': 'org.matrix.custom.html',
'formatted_body': '<b>blub</b>',
},
'event_id': '\$source',
'sender': '@alice:example.org',
}, room);
expect(event2.body, 'm.room.message');
});
test('getDisplayEvent', () {
final room = Room(id: '!1234', client: client);
var event = Event.fromJson({