@@ -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 ))
@@ -517,4 +453,68 @@ void main() {
517
453
check (await Clipboard .getData ('text/plain' )).isNull ();
518
454
});
519
455
});
456
+
457
+ group ('ShareButton' , () {
458
+ // Tests should call this.
459
+ MockSharePlus setupMockSharePlus () {
460
+ final mock = MockSharePlus ();
461
+ TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger.setMockMethodCallHandler (
462
+ MethodChannelShare .channel,
463
+ mock.handleMethodCall,
464
+ );
465
+ return mock;
466
+ }
467
+
468
+ Future <void > tapShareButton (WidgetTester tester) async {
469
+ await tester.ensureVisible (find.byIcon (Icons .adaptive.share, skipOffstage: false ));
470
+ await tester.tap (find.byIcon (Icons .adaptive.share));
471
+ await tester.pump (); // [MenuItemButton.onPressed] called in a post-frame callback: flutter/flutter@e4a39fa2e
472
+ }
473
+
474
+ testWidgets ('request succeeds; sharing succeeds' , (WidgetTester tester) async {
475
+ final mockSharePlus = setupMockSharePlus ();
476
+ final message = eg.streamMessage ();
477
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
478
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
479
+
480
+ prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
481
+ await tapShareButton (tester);
482
+ await tester.pump (Duration .zero);
483
+ check (mockSharePlus.sharedString).equals ('Hello world' );
484
+ });
485
+
486
+ testWidgets ('request succeeds; sharing fails' , (WidgetTester tester) async {
487
+ final mockSharePlus = setupMockSharePlus ();
488
+ final message = eg.streamMessage ();
489
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
490
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
491
+
492
+ prepareRawContentResponseSuccess (store, message: message, rawContent: 'Hello world' );
493
+ mockSharePlus.resultString = 'dev.fluttercommunity.plus/share/unavailable' ;
494
+ await tapShareButton (tester);
495
+ await tester.pump (Duration .zero);
496
+ check (mockSharePlus.sharedString).equals ('Hello world' );
497
+ await tester.pump ();
498
+ await tester.tap (find.byWidget (checkErrorDialog (tester,
499
+ expectedTitle: 'Sharing failed' )));
500
+ });
501
+
502
+ testWidgets ('request has an error' , (WidgetTester tester) async {
503
+ final mockSharePlus = setupMockSharePlus ();
504
+ final message = eg.streamMessage ();
505
+ await setupToMessageActionSheet (tester, message: message, narrow: TopicNarrow .ofMessage (message));
506
+ final store = await testBinding.globalStore.perAccount (eg.selfAccount.id);
507
+
508
+ prepareRawContentResponseError (store);
509
+ await tapShareButton (tester);
510
+ await tester.pump (Duration .zero); // error arrives; error dialog shows
511
+
512
+ await tester.tap (find.byWidget (checkErrorDialog (tester,
513
+ expectedTitle: 'Sharing failed' ,
514
+ expectedMessage: 'That message does not seem to exist.' ,
515
+ )));
516
+
517
+ check (mockSharePlus.sharedString).isNull ();
518
+ });
519
+ });
520
520
}
0 commit comments