1+ // Copyright 2017, the Chromium project authors. Please see the AUTHORS file
2+ // for details. All rights reserved. Use of this source code is governed by a
3+ // BSD-style license that can be found in the LICENSE file.
4+
5+ // @dart=2.9
6+
17import 'dart:async' ;
28import 'package:flutter_test/flutter_test.dart' ;
3- import 'package:shared_preferences/shared_preferences .dart' ;
9+ import 'package:shared_preferences_platform_interface/shared_preferences_platform_interface .dart' ;
410import 'package:integration_test/integration_test.dart' ;
511
612void main () {
713 IntegrationTestWidgetsFlutterBinding .ensureInitialized ();
814
9- group ('$ SharedPreferences ' , () {
15+ group ('SharedPreferencesMacOS ' , () {
1016 const Map <String , dynamic > kTestValues = < String , dynamic > {
1117 'flutter.String' : 'hello world' ,
1218 'flutter.bool' : true ,
@@ -23,67 +29,81 @@ void main() {
2329 'flutter.List' : < String > ['baz' , 'quox' ],
2430 };
2531
26- SharedPreferences preferences;
32+ SharedPreferencesStorePlatform preferences;
2733
2834 setUp (() async {
29- preferences = await SharedPreferences . getInstance () ;
35+ preferences = SharedPreferencesStorePlatform .instance ;
3036 });
3137
3238 tearDown (() {
3339 preferences.clear ();
3440 });
3541
36- test ('reading' , () async {
37- expect (preferences.get ('String' ), isNull);
38- expect (preferences.get ('bool' ), isNull);
39- expect (preferences.get ('int' ), isNull);
40- expect (preferences.get ('double' ), isNull);
41- expect (preferences.get ('List' ), isNull);
42- expect (preferences.getString ('String' ), isNull);
43- expect (preferences.getBool ('bool' ), isNull);
44- expect (preferences.getInt ('int' ), isNull);
45- expect (preferences.getDouble ('double' ), isNull);
46- expect (preferences.getStringList ('List' ), isNull);
42+ // Normally the app-facing package adds the prefix, but since this test
43+ // bypasses the app-facing package it needs to be manually added.
44+ String _prefixedKey (String key) {
45+ return 'flutter.$key ' ;
46+ }
47+
48+ testWidgets ('reading' , (WidgetTester _) async {
49+ final Map <String , Object > values = await preferences.getAll ();
50+ expect (values[_prefixedKey ('String' )], isNull);
51+ expect (values[_prefixedKey ('bool' )], isNull);
52+ expect (values[_prefixedKey ('int' )], isNull);
53+ expect (values[_prefixedKey ('double' )], isNull);
54+ expect (values[_prefixedKey ('List' )], isNull);
4755 });
4856
49- test ('writing' , () async {
57+ testWidgets ('writing' , (WidgetTester _ ) async {
5058 await Future .wait (< Future <bool >> [
51- preferences.setString ('String' , kTestValues2['flutter.String' ]),
52- preferences.setBool ('bool' , kTestValues2['flutter.bool' ]),
53- preferences.setInt ('int' , kTestValues2['flutter.int' ]),
54- preferences.setDouble ('double' , kTestValues2['flutter.double' ]),
55- preferences.setStringList ('List' , kTestValues2['flutter.List' ])
59+ preferences.setValue (
60+ 'String' , _prefixedKey ('String' ), kTestValues2['flutter.String' ]),
61+ preferences.setValue (
62+ 'Bool' , _prefixedKey ('bool' ), kTestValues2['flutter.bool' ]),
63+ preferences.setValue (
64+ 'Int' , _prefixedKey ('int' ), kTestValues2['flutter.int' ]),
65+ preferences.setValue (
66+ 'Double' , _prefixedKey ('double' ), kTestValues2['flutter.double' ]),
67+ preferences.setValue (
68+ 'StringList' , _prefixedKey ('List' ), kTestValues2['flutter.List' ])
5669 ]);
57- expect (preferences.getString ('String' ), kTestValues2['flutter.String' ]);
58- expect (preferences.getBool ('bool' ), kTestValues2['flutter.bool' ]);
59- expect (preferences.getInt ('int' ), kTestValues2['flutter.int' ]);
60- expect (preferences.getDouble ('double' ), kTestValues2['flutter.double' ]);
61- expect (preferences.getStringList ('List' ), kTestValues2['flutter.List' ]);
70+ final Map <String , Object > values = await preferences.getAll ();
71+ expect (values[_prefixedKey ('String' )], kTestValues2['flutter.String' ]);
72+ expect (values[_prefixedKey ('bool' )], kTestValues2['flutter.bool' ]);
73+ expect (values[_prefixedKey ('int' )], kTestValues2['flutter.int' ]);
74+ expect (values[_prefixedKey ('double' )], kTestValues2['flutter.double' ]);
75+ expect (values[_prefixedKey ('List' )], kTestValues2['flutter.List' ]);
6276 });
6377
64- test ('removing' , () async {
65- const String key = 'testKey' ;
66- await preferences.setString (key, kTestValues['flutter.String' ]);
67- await preferences.setBool (key, kTestValues['flutter.bool' ]);
68- await preferences.setInt (key, kTestValues['flutter.int' ]);
69- await preferences.setDouble (key, kTestValues['flutter.double' ]);
70- await preferences.setStringList (key, kTestValues['flutter.List' ]);
78+ testWidgets ('removing' , (WidgetTester _) async {
79+ final String key = _prefixedKey ('testKey' );
80+ await preferences.setValue ('String' , key, kTestValues['flutter.String' ]);
81+ await preferences.setValue ('Bool' , key, kTestValues['flutter.bool' ]);
82+ await preferences.setValue ('Int' , key, kTestValues['flutter.int' ]);
83+ await preferences.setValue ('Double' , key, kTestValues['flutter.double' ]);
84+ await preferences.setValue (
85+ 'StringList' , key, kTestValues['flutter.List' ]);
7186 await preferences.remove (key);
72- expect (preferences.get ('testKey' ), isNull);
87+ final Map <String , Object > values = await preferences.getAll ();
88+ expect (values[key], isNull);
7389 });
7490
75- test ('clearing' , () async {
76- await preferences.setString ('String' , kTestValues['flutter.String' ]);
77- await preferences.setBool ('bool' , kTestValues['flutter.bool' ]);
78- await preferences.setInt ('int' , kTestValues['flutter.int' ]);
79- await preferences.setDouble ('double' , kTestValues['flutter.double' ]);
80- await preferences.setStringList ('List' , kTestValues['flutter.List' ]);
91+ testWidgets ('clearing' , (WidgetTester _) async {
92+ await preferences.setValue (
93+ 'String' , 'String' , kTestValues['flutter.String' ]);
94+ await preferences.setValue ('Bool' , 'bool' , kTestValues['flutter.bool' ]);
95+ await preferences.setValue ('Int' , 'int' , kTestValues['flutter.int' ]);
96+ await preferences.setValue (
97+ 'Double' , 'double' , kTestValues['flutter.double' ]);
98+ await preferences.setValue (
99+ 'StringList' , 'List' , kTestValues['flutter.List' ]);
81100 await preferences.clear ();
82- expect (preferences.getString ('String' ), null );
83- expect (preferences.getBool ('bool' ), null );
84- expect (preferences.getInt ('int' ), null );
85- expect (preferences.getDouble ('double' ), null );
86- expect (preferences.getStringList ('List' ), null );
101+ final Map <String , Object > values = await preferences.getAll ();
102+ expect (values['String' ], null );
103+ expect (values['bool' ], null );
104+ expect (values['int' ], null );
105+ expect (values['double' ], null );
106+ expect (values['List' ], null );
87107 });
88108 });
89109}
0 commit comments