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