@@ -109,6 +109,7 @@ void main() {
109
109
void checkNotification (MessageFcmMessage data, {
110
110
required String expectedTitle,
111
111
required String expectedTagComponent,
112
+ required bool expectedGroup,
112
113
}) {
113
114
final expectedTag = '${data .realmUri }|${data .userId }|$expectedTagComponent ' ;
114
115
final expectedGroupKey = '${data .realmUri }|${data .userId }' ;
@@ -121,15 +122,19 @@ void main() {
121
122
..id.equals (expectedId)
122
123
..tag.equals (expectedTag)
123
124
..channelId.equals (NotificationChannelManager .kChannelId)
124
- ..contentTitle.equals (expectedTitle)
125
- ..contentText.equals (data.content)
126
125
..color.equals (kZulipBrandColor.value)
127
126
..smallIconResourceName.equals ('zulip_notification' )
128
127
..extras.isNull ()
129
128
..groupKey.equals (expectedGroupKey)
130
129
..isGroupSummary.isNull ()
131
130
..inboxStyle.isNull ()
132
131
..autoCancel.equals (true )
132
+ ..messagingStyle.which ((it) => it.isNotNull ()
133
+ ..isGroupConversation.equals (expectedGroup)
134
+ ..conversationTitle.equals (expectedTitle)
135
+ ..messages.which ((it) => it.isNotNull ()
136
+ ..last.which ((it) => it.isNotNull ()
137
+ ..text.equals (data.content))))
133
138
..contentIntent.which ((it) => it.isNotNull ()
134
139
..requestCode.equals (expectedId)
135
140
..flags.equals (expectedIntentFlags)
@@ -156,6 +161,7 @@ void main() {
156
161
Future <void > checkNotifications (FakeAsync async , MessageFcmMessage data, {
157
162
required String expectedTitle,
158
163
required String expectedTagComponent,
164
+ required bool expectedGroup,
159
165
}) async {
160
166
// We could just call `NotificationDisplayManager.onFcmMessage`.
161
167
// But this way is cheap, and it provides our test coverage of
@@ -164,13 +170,17 @@ void main() {
164
170
testBinding.firebaseMessaging.onMessage.add (
165
171
RemoteMessage (data: data.toJson ()));
166
172
async .flushMicrotasks ();
167
- checkNotification (data, expectedTitle: expectedTitle,
173
+ checkNotification (data,
174
+ expectedGroup: expectedGroup,
175
+ expectedTitle: expectedTitle,
168
176
expectedTagComponent: expectedTagComponent);
169
177
170
178
testBinding.firebaseMessaging.onBackgroundMessage.add (
171
179
RemoteMessage (data: data.toJson ()));
172
180
async .flushMicrotasks ();
173
- checkNotification (data, expectedTitle: expectedTitle,
181
+ checkNotification (data,
182
+ expectedGroup: expectedGroup,
183
+ expectedTitle: expectedTitle,
174
184
expectedTagComponent: expectedTagComponent);
175
185
}
176
186
@@ -179,6 +189,7 @@ void main() {
179
189
final stream = eg.stream ();
180
190
final message = eg.streamMessage (stream: stream);
181
191
await checkNotifications (async , messageFcmMessage (message, streamName: stream.name),
192
+ expectedGroup: true ,
182
193
expectedTitle: '#${stream .name } > ${message .subject }' ,
183
194
expectedTagComponent: 'stream:${message .streamId }:${message .subject }' );
184
195
}));
@@ -188,6 +199,7 @@ void main() {
188
199
final stream = eg.stream ();
189
200
final message = eg.streamMessage (stream: stream);
190
201
await checkNotifications (async , messageFcmMessage (message, streamName: null ),
202
+ expectedGroup: true ,
191
203
expectedTitle: '#(unknown stream) > ${message .subject }' ,
192
204
expectedTagComponent: 'stream:${message .streamId }:${message .subject }' );
193
205
}));
@@ -196,6 +208,7 @@ void main() {
196
208
await init ();
197
209
final message = eg.dmMessage (from: eg.thirdUser, to: [eg.otherUser, eg.selfUser]);
198
210
await checkNotifications (async , messageFcmMessage (message),
211
+ expectedGroup: true ,
199
212
expectedTitle: "${eg .thirdUser .fullName } to you and 1 other" ,
200
213
expectedTagComponent: 'dm:${message .allRecipientIds .join ("," )}' );
201
214
}));
@@ -205,6 +218,7 @@ void main() {
205
218
final message = eg.dmMessage (from: eg.thirdUser,
206
219
to: [eg.otherUser, eg.selfUser, eg.fourthUser]);
207
220
await checkNotifications (async , messageFcmMessage (message),
221
+ expectedGroup: true ,
208
222
expectedTitle: "${eg .thirdUser .fullName } to you and 2 others" ,
209
223
expectedTagComponent: 'dm:${message .allRecipientIds .join ("," )}' );
210
224
}));
@@ -213,6 +227,7 @@ void main() {
213
227
await init ();
214
228
final message = eg.dmMessage (from: eg.otherUser, to: [eg.selfUser]);
215
229
await checkNotifications (async , messageFcmMessage (message),
230
+ expectedGroup: false ,
216
231
expectedTitle: eg.otherUser.fullName,
217
232
expectedTagComponent: 'dm:${message .allRecipientIds .join ("," )}' );
218
233
}));
@@ -221,6 +236,7 @@ void main() {
221
236
await init ();
222
237
final message = eg.dmMessage (from: eg.selfUser, to: []);
223
238
await checkNotifications (async , messageFcmMessage (message),
239
+ expectedGroup: false ,
224
240
expectedTitle: eg.selfUser.fullName,
225
241
expectedTagComponent: 'dm:${message .allRecipientIds .join ("," )}' );
226
242
}));
0 commit comments