@@ -246,70 +246,6 @@ void main() {
246
246
});
247
247
});
248
248
249
- group ('ShareButton' , () {
250
- // Tests should call this.
251
- MockSharePlus setupMockSharePlus () {
252
- final mock = MockSharePlus ();
253
- TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger.setMockMethodCallHandler (
254
- MethodChannelShare .channel,
255
- mock.handleMethodCall,
256
- );
257
- return mock;
258
- }
259
-
260
- Future <void > tapShareButton (WidgetTester tester) async {
261
- await tester.ensureVisible (find.byIcon (Icons .adaptive.share, skipOffstage: false ));
262
- await tester.tap (find.byIcon (Icons .adaptive.share));
263
- await tester.pump (); // [MenuItemButton.onPressed] called in a post-frame callback: flutter/flutter@e4a39fa2e
264
- }
265
-
266
- testWidgets ('request succeeds; sharing succeeds' , (WidgetTester tester) async {
267
- final mockSharePlus = setupMockSharePlus ();
268
- final message = eg.streamMessage ();
269
- await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
270
- final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
271
-
272
- prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
273
- await tapShareButton (tester);
274
- await tester.pump (Duration .zero);
275
- check (mockSharePlus.sharedString).equals ('Hello world' );
276
- });
277
-
278
- testWidgets ('request succeeds; sharing fails' , (WidgetTester tester) async {
279
- final mockSharePlus = setupMockSharePlus ();
280
- final message = eg.streamMessage ();
281
- await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
282
- final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
283
-
284
- prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
285
- mockSharePlus.resultString = 'dev.fluttercommunity.plus/share/unavailable' ;
286
- await tapShareButton (tester);
287
- await tester.pump (Duration .zero);
288
- check (mockSharePlus.sharedString).equals ('Hello world' );
289
- await tester.pump ();
290
- await tester.tap (find.byWidget (checkErrorDialog (tester,
291
- expectedTitle: 'Sharing failed' )));
292
- });
293
-
294
- testWidgets ('request has an error' , (WidgetTester tester) async {
295
- final mockSharePlus = setupMockSharePlus ();
296
- final message = eg.streamMessage ();
297
- await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
298
- final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
299
-
300
- prepareRawContentResponseError (store);
301
- await tapShareButton (tester);
302
- await tester.pump (Duration .zero); // error arrives; error dialog shows
303
-
304
- await tester.tap (find.byWidget (checkErrorDialog (tester,
305
- expectedTitle: 'Sharing failed' ,
306
- expectedMessage: 'That message does not seem to exist.' ,
307
- )));
308
-
309
- check (mockSharePlus.sharedString).isNull ();
310
- });
311
- });
312
-
313
249
group ('QuoteAndReplyButton' , () {
314
250
ComposeBoxController ? findComposeBoxController (WidgetTester tester) {
315
251
return tester.widget <ComposeBox >(find.byType (ComposeBox ))
@@ -502,4 +438,68 @@ void main() {
502
438
check (await Clipboard .getData ('text/plain' )).isNull ();
503
439
});
504
440
});
441
+
442
+ group ('ShareButton' , () {
443
+ // Tests should call this.
444
+ MockSharePlus setupMockSharePlus () {
445
+ final mock = MockSharePlus ();
446
+ TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger.setMockMethodCallHandler (
447
+ MethodChannelShare .channel,
448
+ mock.handleMethodCall,
449
+ );
450
+ return mock;
451
+ }
452
+
453
+ Future <void > tapShareButton (WidgetTester tester) async {
454
+ await tester.ensureVisible (find.byIcon (Icons .adaptive.share, skipOffstage: false ));
455
+ await tester.tap (find.byIcon (Icons .adaptive.share));
456
+ await tester.pump (); // [MenuItemButton.onPressed] called in a post-frame callback: flutter/flutter@e4a39fa2e
457
+ }
458
+
459
+ testWidgets ('request succeeds; sharing succeeds' , (WidgetTester tester) async {
460
+ final mockSharePlus = setupMockSharePlus ();
461
+ final message = eg.streamMessage ();
462
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
463
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
464
+
465
+ prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
466
+ await tapShareButton (tester);
467
+ await tester.pump (Duration .zero);
468
+ check (mockSharePlus.sharedString).equals ('Hello world' );
469
+ });
470
+
471
+ testWidgets ('request succeeds; sharing fails' , (WidgetTester tester) async {
472
+ final mockSharePlus = setupMockSharePlus ();
473
+ final message = eg.streamMessage ();
474
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
475
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
476
+
477
+ prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
478
+ mockSharePlus.resultString = 'dev.fluttercommunity.plus/share/unavailable' ;
479
+ await tapShareButton (tester);
480
+ await tester.pump (Duration .zero);
481
+ check (mockSharePlus.sharedString).equals ('Hello world' );
482
+ await tester.pump ();
483
+ await tester.tap (find.byWidget (checkErrorDialog (tester,
484
+ expectedTitle: 'Sharing failed' )));
485
+ });
486
+
487
+ testWidgets ('request has an error' , (WidgetTester tester) async {
488
+ final mockSharePlus = setupMockSharePlus ();
489
+ final message = eg.streamMessage ();
490
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
491
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
492
+
493
+ prepareRawContentResponseError (store);
494
+ await tapShareButton (tester);
495
+ await tester.pump (Duration .zero); // error arrives; error dialog shows
496
+
497
+ await tester.tap (find.byWidget (checkErrorDialog (tester,
498
+ expectedTitle: 'Sharing failed' ,
499
+ expectedMessage: 'That message does not seem to exist.' ,
500
+ )));
501
+
502
+ check (mockSharePlus.sharedString).isNull ();
503
+ });
504
+ });
505
505
}
0 commit comments