1
1
import 'package:checks/checks.dart' ;
2
+ import 'package:flutter/foundation.dart' ;
2
3
import 'package:flutter/material.dart' ;
3
4
import 'package:flutter_test/flutter_test.dart' ;
4
5
import 'package:zulip/model/settings.dart' ;
@@ -24,6 +25,43 @@ void main() {
24
25
await tester.pump ();
25
26
}
26
27
28
+ group ('BrowserPreference' , () {
29
+ Finder useInAppBrowserSwitchFinder = find.ancestor (
30
+ of: find.text ('Open links with in-app browser' ),
31
+ matching: find.byType (SwitchListTile ));
32
+
33
+ void checkSwitchAndGlobalSettings (WidgetTester tester, {
34
+ required bool useInAppBrowser,
35
+ }) {
36
+ check (tester.widget <SwitchListTile >(useInAppBrowserSwitchFinder))
37
+ .value.equals (useInAppBrowser);
38
+ check (testBinding.globalStore).globalSettings.effectiveBrowserPreference.equals (
39
+ useInAppBrowser ? BrowserPreference .embedded : BrowserPreference .external );
40
+ }
41
+
42
+ testWidgets ('smoke' , (tester) async {
43
+ await testBinding.globalStore.updateGlobalSettings (
44
+ eg.globalSettings (
45
+ browserPreference: BrowserPreference .external ).toCompanion (false ));
46
+ await prepare (tester);
47
+ checkSwitchAndGlobalSettings (tester, useInAppBrowser: false );
48
+
49
+ await tester.tap (useInAppBrowserSwitchFinder);
50
+ await tester.pump ();
51
+ checkSwitchAndGlobalSettings (tester, useInAppBrowser: true );
52
+ });
53
+
54
+ testWidgets ('use platform-specific default browser preference' , (tester) async {
55
+ await prepare (tester);
56
+ final defaultUseInAppBrowser = defaultTargetPlatform == TargetPlatform .android;
57
+ checkSwitchAndGlobalSettings (tester, useInAppBrowser: defaultUseInAppBrowser);
58
+
59
+ await tester.tap (useInAppBrowserSwitchFinder);
60
+ await tester.pump ();
61
+ checkSwitchAndGlobalSettings (tester, useInAppBrowser: ! defaultUseInAppBrowser);
62
+ }, variant: TargetPlatformVariant ({TargetPlatform .android, TargetPlatform .iOS}));
63
+ });
64
+
27
65
group ('ThemeSetting' , () {
28
66
Finder findRadioListTileWithTitle (String title) => find.ancestor (
29
67
of: find.text (title),
0 commit comments