@@ -246,70 +246,6 @@ void main() {
246246 });
247247 });
248248
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-
313249 group ('QuoteAndReplyButton' , () {
314250 ComposeBoxController ? findComposeBoxController (WidgetTester tester) {
315251 return tester.widget <ComposeBox >(find.byType (ComposeBox ))
@@ -502,4 +438,68 @@ void main() {
502438 check (await Clipboard .getData ('text/plain' )).isNull ();
503439 });
504440 });
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+ });
505505}
0 commit comments