Skip to content

Commit 4b7c01b

Browse files
Message_list: Make topic headers case-insensitive
This change in the commit makes the message list's topic headers match that behavior, so messages whose topics differ only in case (like "missing string" and "Missing string") share a single header. This brings the behavior in line with Zulip web. (Added the relevant test case)
1 parent fb6291f commit 4b7c01b

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

lib/model/message_list.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ mixin _MessageSequence {
321321
bool haveSameRecipient(Message prevMessage, Message message) {
322322
if (prevMessage is StreamMessage && message is StreamMessage) {
323323
if (prevMessage.streamId != message.streamId) return false;
324-
if (prevMessage.topic != message.topic) return false;
324+
if (prevMessage.topic.toLowerCase() != message.topic.toLowerCase()) return false;
325325
} else if (prevMessage is DmMessage && message is DmMessage) {
326326
if (!_equalIdSequences(prevMessage.allRecipientIds, message.allRecipientIds)) {
327327
return false;

test/model/message_list_test.dart

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1703,6 +1703,23 @@ void main() {
17031703
}
17041704
}
17051705
});
1706+
test('stream messages match with case-insensitive topics', () {
1707+
final stream = eg.stream();
1708+
final messageLower = eg.streamMessage(
1709+
stream: stream,
1710+
topic: 'hello world');
1711+
final messageUpper = eg.streamMessage(
1712+
stream: stream,
1713+
topic: 'Hello World');
1714+
final messageDiff = eg.streamMessage(
1715+
stream: stream,
1716+
topic: 'different');
1717+
1718+
check(haveSameRecipient(messageLower, messageUpper)).isTrue();
1719+
check(haveSameRecipient(messageUpper, messageLower)).isTrue();
1720+
check(haveSameRecipient(messageLower, messageDiff)).isFalse();
1721+
check(haveSameRecipient(messageUpper, messageDiff)).isFalse();
1722+
});
17061723
});
17071724

17081725
test('messagesSameDay', () {

0 commit comments

Comments
 (0)