Skip to content

Commit 2253978

Browse files
chrisbobbegnprice
authored andcommitted
test: Use TestZulipApp everywhere else it makes sense
1 parent a596789 commit 2253978

17 files changed

+105
-191
lines changed

integration_test/unreadmarker_test.dart

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1-
2-
import 'package:flutter/material.dart';
31
import 'package:flutter_test/flutter_test.dart';
42
import 'package:integration_test/integration_test.dart';
53
import 'package:zulip/api/model/events.dart';
64
import 'package:zulip/api/model/model.dart';
75
import 'package:zulip/model/narrow.dart';
86
import 'package:zulip/model/store.dart';
97
import 'package:zulip/widgets/message_list.dart';
10-
import 'package:zulip/widgets/page.dart';
11-
import 'package:zulip/widgets/store.dart';
128

139
import '../test/api/fake_api.dart';
1410
import '../test/example_data.dart' as eg;
1511
import '../test/model/binding.dart';
1612
import '../test/model/message_list_test.dart';
13+
import '../test/widgets/test_app.dart';
1714

1815
void main() {
1916
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
@@ -34,13 +31,8 @@ void main() {
3431
connection.prepare(json:
3532
newestResult(foundOldest: true, messages: messages).toJson());
3633

37-
await tester.pumpWidget(
38-
MaterialApp(
39-
home: GlobalStoreWidget(
40-
child: PerAccountStoreWidget(
41-
accountId: eg.selfAccount.id,
42-
placeholder: const LoadingPlaceholderPage(),
43-
child: const MessageListPage(narrow: CombinedFeedNarrow())))));
34+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
35+
child: const MessageListPage(narrow: CombinedFeedNarrow())));
4436
await tester.pumpAndSettle();
4537
return messages;
4638
}

test/widgets/action_sheet_test.dart

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'dart:convert';
33
import 'package:checks/checks.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter/services.dart';
6-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
76
import 'package:flutter_test/flutter_test.dart';
87
import 'package:http/http.dart' as http;
98
import 'package:zulip/api/model/model.dart';
@@ -18,9 +17,7 @@ import 'package:zulip/widgets/compose_box.dart';
1817
import 'package:zulip/widgets/content.dart';
1918
import 'package:zulip/widgets/icons.dart';
2019
import 'package:zulip/widgets/message_list.dart';
21-
import 'package:zulip/widgets/store.dart';
2220
import 'package:share_plus_platform_interface/method_channel/method_channel_share.dart';
23-
import 'package:zulip/widgets/theme.dart';
2421
import '../api/fake_api.dart';
2522

2623
import '../example_data.dart' as eg;
@@ -32,6 +29,7 @@ import '../test_clipboard.dart';
3229
import '../test_share_plus.dart';
3330
import 'compose_box_checks.dart';
3431
import 'dialog_checks.dart';
32+
import 'test_app.dart';
3533

3634
/// Simulates loading a [MessageListPage] and long-pressing on [message].
3735
Future<void> setupToMessageActionSheet(WidgetTester tester, {
@@ -60,15 +58,8 @@ Future<void> setupToMessageActionSheet(WidgetTester tester, {
6058
messages: [message],
6159
).toJson());
6260

63-
await tester.pumpWidget(Builder(builder: (context) =>
64-
MaterialApp(
65-
theme: zulipThemeData(context),
66-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
67-
supportedLocales: ZulipLocalizations.supportedLocales,
68-
home: GlobalStoreWidget(
69-
child: PerAccountStoreWidget(
70-
accountId: eg.selfAccount.id,
71-
child: MessageListPage(narrow: narrow))))));
61+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
62+
child: MessageListPage(narrow: narrow)));
7263

7364
// global store, per-account store, and message list get loaded
7465
await tester.pumpAndSettle();

test/widgets/actions_test.dart

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import 'dart:convert';
22

33
import 'package:checks/checks.dart';
44
import 'package:flutter/material.dart';
5-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
65
import 'package:flutter_test/flutter_test.dart';
76
import 'package:http/http.dart' as http;
87
import 'package:zulip/api/model/initial_snapshot.dart';
@@ -12,15 +11,14 @@ import 'package:zulip/model/localizations.dart';
1211
import 'package:zulip/model/narrow.dart';
1312
import 'package:zulip/model/store.dart';
1413
import 'package:zulip/widgets/actions.dart';
15-
import 'package:zulip/widgets/store.dart';
16-
import 'package:zulip/widgets/theme.dart';
1714

1815
import '../api/fake_api.dart';
1916
import '../example_data.dart' as eg;
2017
import '../model/binding.dart';
2118
import '../model/unreads_checks.dart';
2219
import '../stdlib_checks.dart';
2320
import 'dialog_checks.dart';
21+
import 'test_app.dart';
2422

2523
void main() {
2624
TestZulipBinding.ensureInitialized();
@@ -39,16 +37,9 @@ void main() {
3937
store = await testBinding.globalStore.perAccount(eg.selfAccount.id);
4038
connection = store.connection as FakeApiConnection;
4139

42-
await tester.pumpWidget(Builder(builder: (context) =>
43-
MaterialApp(
44-
theme: zulipThemeData(context),
45-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
46-
supportedLocales: ZulipLocalizations.supportedLocales,
47-
home: GlobalStoreWidget(
48-
child: PerAccountStoreWidget(
49-
accountId: eg.selfAccount.id,
50-
child: const Scaffold(
51-
body: Placeholder()))))));
40+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
41+
child: const Scaffold(body: Placeholder())));
42+
// global store, per-account store get loaded
5243
await tester.pumpAndSettle();
5344
context = tester.element(find.byType(Placeholder));
5445
}

test/widgets/app_test.dart

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import 'package:checks/checks.dart';
22
import 'package:flutter/material.dart';
3-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
43
import 'package:flutter_test/flutter_test.dart';
54
import 'package:zulip/model/database.dart';
65
import 'package:zulip/widgets/app.dart';
76
import 'package:zulip/widgets/inbox.dart';
87
import 'package:zulip/widgets/page.dart';
9-
import 'package:zulip/widgets/store.dart';
108

119
import '../example_data.dart' as eg;
1210
import '../flutter_checks.dart';
1311
import '../model/binding.dart';
1412
import '../test_navigation.dart';
1513
import 'page_checks.dart';
14+
import 'test_app.dart';
1615

1716
void main() {
1817
TestZulipBinding.ensureInitialized();
@@ -67,12 +66,8 @@ void main() {
6766
.insertAccount(account.toCompanion(false));
6867
}
6968

70-
await tester.pumpWidget(
71-
const MaterialApp(
72-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
73-
supportedLocales: ZulipLocalizations.supportedLocales,
74-
home: GlobalStoreWidget(
75-
child: ChooseAccountPage())));
69+
await tester.pumpWidget(const TestZulipApp(
70+
child: ChooseAccountPage()));
7671

7772
// global store gets loaded
7873
await tester.pumpAndSettle();

test/widgets/autocomplete_test.dart

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
import 'package:checks/checks.dart';
22
import 'package:flutter/material.dart';
3-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
43
import 'package:flutter_test/flutter_test.dart';
54
import 'package:zulip/api/model/model.dart';
65
import 'package:zulip/api/route/messages.dart';
76
import 'package:zulip/model/compose.dart';
87
import 'package:zulip/model/narrow.dart';
98
import 'package:zulip/model/store.dart';
109
import 'package:zulip/widgets/message_list.dart';
11-
import 'package:zulip/widgets/store.dart';
12-
import 'package:zulip/widgets/theme.dart';
1310

1411
import '../api/fake_api.dart';
1512
import '../example_data.dart' as eg;
1613
import '../model/binding.dart';
1714
import '../model/test_store.dart';
1815
import '../test_images.dart';
16+
import 'test_app.dart';
1917

2018
/// Simulates loading a [MessageListPage] and tapping to focus the compose input.
2119
///
@@ -49,19 +47,10 @@ Future<Finder> setupToComposeInput(WidgetTester tester, {
4947

5048
prepareBoringImageHttpClient();
5149

52-
await tester.pumpWidget(Builder(builder: (context) =>
53-
MaterialApp(
54-
theme: zulipThemeData(context),
55-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
56-
supportedLocales: ZulipLocalizations.supportedLocales,
57-
home: GlobalStoreWidget(
58-
child: PerAccountStoreWidget(
59-
accountId: eg.selfAccount.id,
60-
child: MessageListPage(
61-
narrow: DmNarrow(
62-
allRecipientIds: [eg.selfUser.userId, eg.otherUser.userId],
63-
selfUserId: eg.selfUser.userId,
64-
)))))));
50+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
51+
child: MessageListPage(narrow: DmNarrow(
52+
allRecipientIds: [eg.selfUser.userId, eg.otherUser.userId],
53+
selfUserId: eg.selfUser.userId))));
6554

6655
// global store, per-account store, and message list get loaded
6756
await tester.pumpAndSettle();

test/widgets/clipboard_test.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:zulip/widgets/clipboard.dart';
88
import '../flutter_checks.dart';
99
import '../model/binding.dart';
1010
import '../test_clipboard.dart';
11+
import 'test_app.dart';
1112

1213
void main() {
1314
TestZulipBinding.ensureInitialized();
@@ -26,17 +27,16 @@ void main() {
2627

2728
group('copyWithPopup', () {
2829
Future<void> call(WidgetTester tester, {required String text}) async {
29-
await tester.pumpWidget(
30-
MaterialApp(
31-
home: Scaffold(
32-
body: Builder(builder: (context) => Center(
33-
child: ElevatedButton(
34-
onPressed: () async {
35-
copyWithPopup(context: context, successContent: const Text('Text copied'),
36-
data: ClipboardData(text: text));
37-
},
38-
child: const Text('Copy'))))),
39-
));
30+
await tester.pumpWidget(TestZulipApp(
31+
child: Scaffold(
32+
body: Builder(builder: (context) => Center(
33+
child: ElevatedButton(
34+
onPressed: () async {
35+
copyWithPopup(context: context, successContent: const Text('Text copied'),
36+
data: ClipboardData(text: text));
37+
},
38+
child: const Text('Copy')))))));
39+
await tester.pump();
4040
await tester.tap(find.text('Copy'));
4141
await tester.pump(); // copy
4242
await tester.pump(Duration.zero); // await platform info (awkwardly async)

test/widgets/compose_box_test.dart

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,21 @@ import 'package:checks/checks.dart';
44
import 'package:file_picker/file_picker.dart';
55
import 'package:http/http.dart' as http;
66
import 'package:flutter/material.dart';
7-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
87
import 'package:flutter_test/flutter_test.dart';
98
import 'package:image_picker/image_picker.dart';
109
import 'package:zulip/api/route/messages.dart';
1110
import 'package:zulip/model/localizations.dart';
1211
import 'package:zulip/model/narrow.dart';
1312
import 'package:zulip/model/store.dart';
1413
import 'package:zulip/widgets/compose_box.dart';
15-
import 'package:zulip/widgets/store.dart';
1614

1715
import '../api/fake_api.dart';
1816
import '../example_data.dart' as eg;
1917
import '../flutter_checks.dart';
2018
import '../model/binding.dart';
2119
import '../stdlib_checks.dart';
2220
import 'dialog_checks.dart';
21+
import 'test_app.dart';
2322

2423
void main() {
2524
TestZulipBinding.ensureInitialized();
@@ -35,14 +34,8 @@ void main() {
3534
connection = store.connection as FakeApiConnection;
3635

3736
final controllerKey = GlobalKey<ComposeBoxController>();
38-
await tester.pumpWidget(
39-
MaterialApp(
40-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
41-
supportedLocales: ZulipLocalizations.supportedLocales,
42-
home: GlobalStoreWidget(
43-
child: PerAccountStoreWidget(
44-
accountId: eg.selfAccount.id,
45-
child: ComposeBox(controllerKey: controllerKey, narrow: narrow)))));
37+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
38+
child: ComposeBox(controllerKey: controllerKey, narrow: narrow)));
4639
await tester.pumpAndSettle();
4740

4841
return controllerKey;

test/widgets/content_test.dart

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
33
import 'package:flutter/foundation.dart';
44
import 'package:flutter/material.dart';
55
import 'package:flutter/rendering.dart';
6-
import 'package:flutter_gen/gen_l10n/zulip_localizations.dart';
76
import 'package:flutter_test/flutter_test.dart';
87
import 'package:url_launcher/url_launcher.dart';
98
import 'package:zulip/api/core.dart';
@@ -16,7 +15,6 @@ import 'package:zulip/widgets/message_list.dart';
1615
import 'package:zulip/widgets/page.dart';
1716
import 'package:zulip/widgets/store.dart';
1817
import 'package:zulip/widgets/text.dart';
19-
import 'package:zulip/widgets/theme.dart';
2018

2119
import '../example_data.dart' as eg;
2220
import '../flutter_checks.dart';
@@ -29,6 +27,7 @@ import '../test_navigation.dart';
2927
import 'dialog_checks.dart';
3028
import 'message_list_checks.dart';
3129
import 'page_checks.dart';
30+
import 'test_app.dart';
3231

3332
/// Simulate a nested "inner" span's style by merging all ancestor-span
3433
/// styles, starting from the root.
@@ -113,26 +112,18 @@ void main() {
113112
List<NavigatorObserver> navObservers = const [],
114113
bool wrapWithPerAccountStoreWidget = false,
115114
}) async {
116-
Widget widget = child;
117-
118115
if (wrapWithPerAccountStoreWidget) {
119116
await testBinding.globalStore.add(eg.selfAccount, eg.initialSnapshot());
120-
widget = PerAccountStoreWidget(accountId: eg.selfAccount.id, child: widget);
121117
}
122118

123-
widget = GlobalStoreWidget(child: widget);
124119
addTearDown(testBinding.reset);
125120

126121
prepareBoringImageHttpClient();
127122

128-
await tester.pumpWidget(
129-
Builder(builder: (context) =>
130-
MaterialApp(
131-
theme: zulipThemeData(context),
132-
localizationsDelegates: ZulipLocalizations.localizationsDelegates,
133-
supportedLocales: ZulipLocalizations.supportedLocales,
134-
navigatorObservers: navObservers,
135-
home: widget)));
123+
await tester.pumpWidget(TestZulipApp(
124+
accountId: wrapWithPerAccountStoreWidget ? eg.selfAccount.id : null,
125+
navigatorObservers: navObservers,
126+
child: child));
136127
await tester.pump(); // global store
137128
if (wrapWithPerAccountStoreWidget) {
138129
await tester.pump();

test/widgets/emoji_reaction_test.dart

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import 'package:zulip/api/model/events.dart';
1111
import 'package:zulip/api/model/model.dart';
1212
import 'package:zulip/model/store.dart';
1313
import 'package:zulip/widgets/emoji_reaction.dart';
14-
import 'package:zulip/widgets/store.dart';
1514

1615
import '../example_data.dart' as eg;
1716
import '../flutter_checks.dart';
1817
import '../model/binding.dart';
1918
import '../model/test_store.dart';
2019
import '../test_images.dart';
20+
import 'test_app.dart';
2121
import 'text_test.dart';
2222

2323
void main() {
@@ -46,22 +46,18 @@ void main() {
4646
}) async {
4747
final message = eg.streamMessage(reactions: reactions);
4848

49-
await tester.pumpWidget(
50-
MaterialApp(
51-
home: Directionality(
52-
textDirection: textDirection,
53-
child: GlobalStoreWidget(
54-
child: PerAccountStoreWidget(
55-
accountId: eg.selfAccount.id,
56-
child: Center(
57-
child: ColoredBox(
58-
color: Colors.white,
59-
child: SizedBox(
60-
width: width,
61-
child: ReactionChipsList(
62-
messageId: message.id,
63-
reactions: message.reactions!,
64-
)))))))));
49+
await tester.pumpWidget(TestZulipApp(accountId: eg.selfAccount.id,
50+
child: Directionality(
51+
textDirection: textDirection,
52+
child: Center(
53+
child: ColoredBox(
54+
color: Colors.white,
55+
child: SizedBox(
56+
width: width,
57+
child: ReactionChipsList(
58+
messageId: message.id,
59+
reactions: message.reactions!,
60+
)))))));
6561

6662
// global store, per-account store
6763
await tester.pumpAndSettle();

0 commit comments

Comments
 (0)