|
1 | 1 | import 'package:checks/checks.dart'; |
2 | 2 | import 'package:test/scaffolding.dart'; |
3 | 3 | import 'package:zulip/model/compose.dart'; |
4 | | -import 'package:zulip/model/narrow.dart'; |
5 | | -import 'package:zulip/model/internal_link.dart'; |
6 | 4 |
|
7 | 5 | import '../example_data.dart' as eg; |
8 | 6 | import 'test_store.dart'; |
@@ -222,100 +220,6 @@ hello |
222 | 220 | }); |
223 | 221 | }); |
224 | 222 |
|
225 | | - group('narrowLink', () { |
226 | | - test('CombinedFeedNarrow', () { |
227 | | - final store = eg.store(); |
228 | | - check(narrowLink(store, const CombinedFeedNarrow())) |
229 | | - .equals(store.realmUrl.resolve('#narrow')); |
230 | | - check(narrowLink(store, const CombinedFeedNarrow(), nearMessageId: 1)) |
231 | | - .equals(store.realmUrl.resolve('#narrow/near/1')); |
232 | | - }); |
233 | | - |
234 | | - test('MentionsNarrow', () { |
235 | | - final store = eg.store(); |
236 | | - check(narrowLink(store, const MentionsNarrow())) |
237 | | - .equals(store.realmUrl.resolve('#narrow/is/mentioned')); |
238 | | - check(narrowLink(store, const MentionsNarrow(), nearMessageId: 1)) |
239 | | - .equals(store.realmUrl.resolve('#narrow/is/mentioned/near/1')); |
240 | | - }); |
241 | | - |
242 | | - test('StarredMessagesNarrow', () { |
243 | | - final store = eg.store(); |
244 | | - check(narrowLink(store, const StarredMessagesNarrow())) |
245 | | - .equals(store.realmUrl.resolve('#narrow/is/starred')); |
246 | | - check(narrowLink(store, const StarredMessagesNarrow(), nearMessageId: 1)) |
247 | | - .equals(store.realmUrl.resolve('#narrow/is/starred/near/1')); |
248 | | - }); |
249 | | - |
250 | | - test('ChannelNarrow / TopicNarrow', () { |
251 | | - void checkNarrow(String expectedFragment, { |
252 | | - required int streamId, |
253 | | - required String name, |
254 | | - String? topic, |
255 | | - int? nearMessageId, |
256 | | - }) async { |
257 | | - assert(expectedFragment.startsWith('#'), 'wrong-looking expectedFragment'); |
258 | | - final store = eg.store(); |
259 | | - await store.addStream(eg.stream(streamId: streamId, name: name)); |
260 | | - final narrow = topic == null |
261 | | - ? ChannelNarrow(streamId) |
262 | | - : TopicNarrow(streamId, topic); |
263 | | - check(narrowLink(store, narrow, nearMessageId: nearMessageId)) |
264 | | - .equals(store.realmUrl.resolve(expectedFragment)); |
265 | | - } |
266 | | - |
267 | | - checkNarrow(streamId: 1, name: 'announce', '#narrow/stream/1-announce'); |
268 | | - checkNarrow(streamId: 378, name: 'api design', '#narrow/stream/378-api-design'); |
269 | | - checkNarrow(streamId: 391, name: 'Outreachy', '#narrow/stream/391-Outreachy'); |
270 | | - checkNarrow(streamId: 415, name: 'chat.zulip.org', '#narrow/stream/415-chat.2Ezulip.2Eorg'); |
271 | | - checkNarrow(streamId: 419, name: 'français', '#narrow/stream/419-fran.C3.A7ais'); |
272 | | - checkNarrow(streamId: 403, name: 'Hshs[™~}(.', '#narrow/stream/403-Hshs.5B.E2.84.A2~.7D.28.2E'); |
273 | | - checkNarrow(streamId: 60, name: 'twitter', nearMessageId: 1570686, '#narrow/stream/60-twitter/near/1570686'); |
274 | | - |
275 | | - checkNarrow(streamId: 48, name: 'mobile', topic: 'Welcome screen UI', |
276 | | - '#narrow/stream/48-mobile/topic/Welcome.20screen.20UI'); |
277 | | - checkNarrow(streamId: 243, name: 'mobile-team', topic: 'Podfile.lock clash #F92', |
278 | | - '#narrow/stream/243-mobile-team/topic/Podfile.2Elock.20clash.20.23F92'); |
279 | | - checkNarrow(streamId: 377, name: 'translation/zh_tw', topic: '翻譯 "stream"', |
280 | | - '#narrow/stream/377-translation.2Fzh_tw/topic/.E7.BF.BB.E8.AD.AF.20.22stream.22'); |
281 | | - checkNarrow(streamId: 42, name: 'Outreachy 2016-2017', topic: '2017-18 Stream?', nearMessageId: 302690, |
282 | | - '#narrow/stream/42-Outreachy-2016-2017/topic/2017-18.20Stream.3F/near/302690'); |
283 | | - }); |
284 | | - |
285 | | - test('DmNarrow', () { |
286 | | - void checkNarrow(String expectedFragment, String legacyExpectedFragment, { |
287 | | - required List<int> allRecipientIds, |
288 | | - required int selfUserId, |
289 | | - int? nearMessageId, |
290 | | - }) { |
291 | | - assert(expectedFragment.startsWith('#'), 'wrong-looking expectedFragment'); |
292 | | - final store = eg.store(); |
293 | | - final narrow = DmNarrow(allRecipientIds: allRecipientIds, selfUserId: selfUserId); |
294 | | - check(narrowLink(store, narrow, nearMessageId: nearMessageId)) |
295 | | - .equals(store.realmUrl.resolve(expectedFragment)); |
296 | | - store.connection.zulipFeatureLevel = 176; |
297 | | - check(narrowLink(store, narrow, nearMessageId: nearMessageId)) |
298 | | - .equals(store.realmUrl.resolve(legacyExpectedFragment)); |
299 | | - } |
300 | | - |
301 | | - checkNarrow(allRecipientIds: [1], selfUserId: 1, |
302 | | - '#narrow/dm/1-dm', |
303 | | - '#narrow/pm-with/1-pm'); |
304 | | - checkNarrow(allRecipientIds: [1, 2], selfUserId: 1, |
305 | | - '#narrow/dm/1,2-dm', |
306 | | - '#narrow/pm-with/1,2-pm'); |
307 | | - checkNarrow(allRecipientIds: [1, 2, 3], selfUserId: 1, |
308 | | - '#narrow/dm/1,2,3-group', |
309 | | - '#narrow/pm-with/1,2,3-group'); |
310 | | - checkNarrow(allRecipientIds: [1, 2, 3, 4], selfUserId: 4, |
311 | | - '#narrow/dm/1,2,3,4-group', |
312 | | - '#narrow/pm-with/1,2,3,4-group'); |
313 | | - checkNarrow(allRecipientIds: [1, 2], selfUserId: 1, nearMessageId: 12345, |
314 | | - '#narrow/dm/1,2-dm/near/12345', |
315 | | - '#narrow/pm-with/1,2-pm/near/12345'); |
316 | | - }); |
317 | | - }); |
318 | | - |
319 | 223 | group('mention', () { |
320 | 224 | final user = eg.user(userId: 123, fullName: 'Full Name'); |
321 | 225 | test('not silent', () { |
|
0 commit comments