shared_preferences: update for official packages/shared_preferences 2.2.0 (#69)
Signed-off-by: Hidenori Matsubayashi <[email protected]>
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
//
|
||||
// Generated file. Do not edit.
|
||||
//
|
||||
// @dart=2.12
|
||||
|
||||
import 'package:shared_preferences_elinux_example/main.dart' as entrypoint;
|
||||
import 'generated_plugin_registrant.dart';
|
||||
|
||||
Future<void> main() async {
|
||||
registerPlugins();
|
||||
entrypoint.main();
|
||||
}
|
||||
+312
-70
@@ -7,94 +7,336 @@ import 'dart:async';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
import 'package:shared_preferences_elinux/shared_preferences_elinux.dart';
|
||||
import 'package:shared_preferences_platform_interface/shared_preferences_platform_interface.dart';
|
||||
import 'package:shared_preferences_platform_interface/types.dart';
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
group('SharedPreferencesELinux', () {
|
||||
const Map<String, dynamic> kTestValues = <String, dynamic>{
|
||||
'flutter.String': 'hello world',
|
||||
'flutter.bool': true,
|
||||
'flutter.int': 42,
|
||||
'flutter.double': 3.14159,
|
||||
'flutter.List': <String>['foo', 'bar'],
|
||||
};
|
||||
|
||||
const Map<String, dynamic> kTestValues2 = <String, dynamic>{
|
||||
'flutter.String': 'goodbye world',
|
||||
'flutter.bool': false,
|
||||
'flutter.int': 1337,
|
||||
'flutter.double': 2.71828,
|
||||
'flutter.List': <String>['baz', 'quox'],
|
||||
};
|
||||
|
||||
late SharedPreferencesELinux preferences;
|
||||
|
||||
const Map<String, Object> flutterTestValues = <String, Object>{
|
||||
'flutter.String': 'hello world',
|
||||
'flutter.Bool': true,
|
||||
'flutter.Int': 42,
|
||||
'flutter.Double': 3.14159,
|
||||
'flutter.StringList': <String>['foo', 'bar'],
|
||||
};
|
||||
|
||||
const Map<String, Object> prefixTestValues = <String, Object>{
|
||||
'prefix.String': 'hello world',
|
||||
'prefix.Bool': true,
|
||||
'prefix.Int': 42,
|
||||
'prefix.Double': 3.14159,
|
||||
'prefix.StringList': <String>['foo', 'bar'],
|
||||
};
|
||||
|
||||
const Map<String, Object> nonPrefixTestValues = <String, Object>{
|
||||
'String': 'hello world',
|
||||
'Bool': true,
|
||||
'Int': 42,
|
||||
'Double': 3.14159,
|
||||
'StringList': <String>['foo', 'bar'],
|
||||
};
|
||||
|
||||
final Map<String, Object> allTestValues = <String, Object>{};
|
||||
|
||||
allTestValues.addAll(flutterTestValues);
|
||||
allTestValues.addAll(prefixTestValues);
|
||||
allTestValues.addAll(nonPrefixTestValues);
|
||||
|
||||
Future<void> addData() async {
|
||||
await preferences.setValue('String', 'String', allTestValues['String']!);
|
||||
await preferences.setValue('Bool', 'Bool', allTestValues['Bool']!);
|
||||
await preferences.setValue('Int', 'Int', allTestValues['Int']!);
|
||||
await preferences.setValue('Double', 'Double', allTestValues['Double']!);
|
||||
await preferences.setValue(
|
||||
'StringList', 'StringList', allTestValues['StringList']!);
|
||||
await preferences.setValue(
|
||||
'String', 'prefix.String', allTestValues['prefix.String']!);
|
||||
await preferences.setValue(
|
||||
'Bool', 'prefix.Bool', allTestValues['prefix.Bool']!);
|
||||
await preferences.setValue(
|
||||
'Int', 'prefix.Int', allTestValues['prefix.Int']!);
|
||||
await preferences.setValue(
|
||||
'Double', 'prefix.Double', allTestValues['prefix.Double']!);
|
||||
await preferences.setValue('StringList', 'prefix.StringList',
|
||||
allTestValues['prefix.StringList']!);
|
||||
await preferences.setValue(
|
||||
'String', 'flutter.String', allTestValues['flutter.String']!);
|
||||
await preferences.setValue(
|
||||
'Bool', 'flutter.Bool', allTestValues['flutter.Bool']!);
|
||||
await preferences.setValue(
|
||||
'Int', 'flutter.Int', allTestValues['flutter.Int']!);
|
||||
await preferences.setValue(
|
||||
'Double', 'flutter.Double', allTestValues['flutter.Double']!);
|
||||
await preferences.setValue('StringList', 'flutter.StringList',
|
||||
allTestValues['flutter.StringList']!);
|
||||
}
|
||||
|
||||
setUp(() async {
|
||||
preferences = SharedPreferencesELinux.instance;
|
||||
preferences = SharedPreferencesELinux();
|
||||
await addData();
|
||||
});
|
||||
|
||||
tearDown(() {
|
||||
preferences.clear();
|
||||
tearDown(() async {
|
||||
await preferences.clearWithParameters(
|
||||
ClearParameters(
|
||||
filter: PreferencesFilter(prefix: ''),
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('reading', (WidgetTester _) async {
|
||||
final all = await preferences.getAll();
|
||||
expect(all['String'], isNull);
|
||||
expect(all['bool'], isNull);
|
||||
expect(all['int'], isNull);
|
||||
expect(all['double'], isNull);
|
||||
expect(all['List'], isNull);
|
||||
testWidgets('getAll', (WidgetTester _) async {
|
||||
final Map<String, Object> values = await preferences.getAll();
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('writing', (WidgetTester _) async {
|
||||
await Future.wait(<Future<bool>>[
|
||||
preferences.setValue(
|
||||
'String', 'String', kTestValues2['flutter.String']),
|
||||
preferences.setValue('Bool', 'bool', kTestValues2['flutter.bool']),
|
||||
preferences.setValue('Int', 'int', kTestValues2['flutter.int']),
|
||||
preferences.setValue(
|
||||
'Double', 'double', kTestValues2['flutter.double']),
|
||||
preferences.setValue('StringList', 'List', kTestValues2['flutter.List'])
|
||||
]);
|
||||
final all = await preferences.getAll();
|
||||
expect(all['String'], kTestValues2['flutter.String']);
|
||||
expect(all['bool'], kTestValues2['flutter.bool']);
|
||||
expect(all['int'], kTestValues2['flutter.int']);
|
||||
expect(all['double'], kTestValues2['flutter.double']);
|
||||
expect(all['List'], kTestValues2['flutter.List']);
|
||||
group('withPrefix', () {
|
||||
testWidgets('remove', (WidgetTester _) async {
|
||||
const String key = 'flutter.String';
|
||||
await preferences.remove(key);
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithPrefix('');
|
||||
expect(values[key], isNull);
|
||||
});
|
||||
|
||||
testWidgets('clear', (WidgetTester _) async {
|
||||
await preferences.clear();
|
||||
final Map<String, Object> values = await preferences.getAll();
|
||||
expect(values['flutter.String'], null);
|
||||
expect(values['flutter.Bool'], null);
|
||||
expect(values['flutter.Int'], null);
|
||||
expect(values['flutter.Double'], null);
|
||||
expect(values['flutter.StringList'], null);
|
||||
});
|
||||
|
||||
testWidgets('get all with prefix', (WidgetTester _) async {
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithPrefix('prefix.');
|
||||
expect(values['prefix.String'], allTestValues['prefix.String']);
|
||||
expect(values['prefix.Bool'], allTestValues['prefix.Bool']);
|
||||
expect(values['prefix.Int'], allTestValues['prefix.Int']);
|
||||
expect(values['prefix.Double'], allTestValues['prefix.Double']);
|
||||
expect(values['prefix.StringList'], allTestValues['prefix.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('getAllWithNoPrefix', (WidgetTester _) async {
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithPrefix('');
|
||||
expect(values['String'], allTestValues['String']);
|
||||
expect(values['Bool'], allTestValues['Bool']);
|
||||
expect(values['Int'], allTestValues['Int']);
|
||||
expect(values['Double'], allTestValues['Double']);
|
||||
expect(values['StringList'], allTestValues['StringList']);
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(
|
||||
values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('clearWithPrefix', (WidgetTester _) async {
|
||||
await preferences.clearWithPrefix('prefix.');
|
||||
Map<String, Object> values =
|
||||
await preferences.getAllWithPrefix('prefix.');
|
||||
expect(values['prefix.String'], null);
|
||||
expect(values['prefix.Bool'], null);
|
||||
expect(values['prefix.Int'], null);
|
||||
expect(values['prefix.Double'], null);
|
||||
expect(values['prefix.StringList'], null);
|
||||
values = await preferences.getAllWithPrefix('flutter.');
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(
|
||||
values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('clearWithNoPrefix', (WidgetTester _) async {
|
||||
await preferences.clearWithPrefix('');
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithPrefix('');
|
||||
expect(values['String'], null);
|
||||
expect(values['Bool'], null);
|
||||
expect(values['Int'], null);
|
||||
expect(values['Double'], null);
|
||||
expect(values['StringList'], null);
|
||||
expect(values['flutter.String'], null);
|
||||
expect(values['flutter.Bool'], null);
|
||||
expect(values['flutter.Int'], null);
|
||||
expect(values['flutter.Double'], null);
|
||||
expect(values['flutter.StringList'], null);
|
||||
});
|
||||
});
|
||||
|
||||
testWidgets('removing', (WidgetTester _) async {
|
||||
const String key = 'testKey';
|
||||
group('withParameters', () {
|
||||
testWidgets('remove', (WidgetTester _) async {
|
||||
const String key = 'flutter.String';
|
||||
await preferences.remove(key);
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: ''),
|
||||
),
|
||||
);
|
||||
expect(values[key], isNull);
|
||||
});
|
||||
|
||||
await Future.wait([
|
||||
preferences.setValue('String', key, kTestValues['flutter.String']),
|
||||
preferences.setValue('Bool', key, kTestValues['flutter.bool']),
|
||||
preferences.setValue('Int', key, kTestValues['flutter.int']),
|
||||
preferences.setValue('Double', key, kTestValues['flutter.double']),
|
||||
preferences.setValue('StringList', key, kTestValues['flutter.List'])
|
||||
]);
|
||||
await preferences.remove(key);
|
||||
final all = await preferences.getAll();
|
||||
expect(all['testKey'], isNull);
|
||||
});
|
||||
testWidgets('clear', (WidgetTester _) async {
|
||||
await preferences.clear();
|
||||
final Map<String, Object> values = await preferences.getAll();
|
||||
expect(values['flutter.String'], null);
|
||||
expect(values['flutter.Bool'], null);
|
||||
expect(values['flutter.Int'], null);
|
||||
expect(values['flutter.Double'], null);
|
||||
expect(values['flutter.StringList'], null);
|
||||
});
|
||||
|
||||
testWidgets('clearing', (WidgetTester _) async {
|
||||
await Future.wait(<Future<bool>>[
|
||||
preferences.setValue('String', 'String', kTestValues['flutter.String']),
|
||||
preferences.setValue('Bool', 'bool', kTestValues['flutter.bool']),
|
||||
preferences.setValue('Int', 'int', kTestValues['flutter.int']),
|
||||
preferences.setValue('Double', 'double', kTestValues['flutter.double']),
|
||||
preferences.setValue('StringList', 'List', kTestValues['flutter.List'])
|
||||
]);
|
||||
await preferences.clear();
|
||||
final all = await preferences.getAll();
|
||||
expect(all['String'], null);
|
||||
expect(all['bool'], null);
|
||||
expect(all['int'], null);
|
||||
expect(all['double'], null);
|
||||
expect(all['List'], null);
|
||||
testWidgets('get all with prefix', (WidgetTester _) async {
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: 'prefix.'),
|
||||
),
|
||||
);
|
||||
expect(values['prefix.String'], allTestValues['prefix.String']);
|
||||
expect(values['prefix.Bool'], allTestValues['prefix.Bool']);
|
||||
expect(values['prefix.Int'], allTestValues['prefix.Int']);
|
||||
expect(values['prefix.Double'], allTestValues['prefix.Double']);
|
||||
expect(values['prefix.StringList'], allTestValues['prefix.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('get all with allow list', (WidgetTester _) async {
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(
|
||||
prefix: 'prefix.',
|
||||
allowList: <String>{'prefix.String'},
|
||||
),
|
||||
),
|
||||
);
|
||||
expect(values['prefix.String'], allTestValues['prefix.String']);
|
||||
expect(values['prefix.Bool'], null);
|
||||
expect(values['prefix.Int'], null);
|
||||
expect(values['prefix.Double'], null);
|
||||
expect(values['prefix.StringList'], null);
|
||||
});
|
||||
|
||||
testWidgets('getAllWithNoPrefix', (WidgetTester _) async {
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: ''),
|
||||
),
|
||||
);
|
||||
expect(values['String'], allTestValues['String']);
|
||||
expect(values['Bool'], allTestValues['Bool']);
|
||||
expect(values['Int'], allTestValues['Int']);
|
||||
expect(values['Double'], allTestValues['Double']);
|
||||
expect(values['StringList'], allTestValues['StringList']);
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(
|
||||
values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('clearWithParameters', (WidgetTester _) async {
|
||||
await preferences.clearWithParameters(
|
||||
ClearParameters(
|
||||
filter: PreferencesFilter(prefix: 'prefix.'),
|
||||
),
|
||||
);
|
||||
Map<String, Object> values = await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: 'prefix.'),
|
||||
),
|
||||
);
|
||||
expect(values['prefix.String'], null);
|
||||
expect(values['prefix.Bool'], null);
|
||||
expect(values['prefix.Int'], null);
|
||||
expect(values['prefix.Double'], null);
|
||||
expect(values['prefix.StringList'], null);
|
||||
values = await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: 'flutter.'),
|
||||
),
|
||||
);
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(
|
||||
values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('clearWithParameters with allow list',
|
||||
(WidgetTester _) async {
|
||||
await addData();
|
||||
await preferences.clearWithParameters(
|
||||
ClearParameters(
|
||||
filter: PreferencesFilter(
|
||||
prefix: 'prefix.',
|
||||
allowList: <String>{'prefix.StringList'},
|
||||
),
|
||||
),
|
||||
);
|
||||
Map<String, Object> values = await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: 'prefix.'),
|
||||
),
|
||||
);
|
||||
expect(values['prefix.String'], allTestValues['prefix.String']);
|
||||
expect(values['prefix.Bool'], allTestValues['prefix.Bool']);
|
||||
expect(values['prefix.Int'], allTestValues['prefix.Int']);
|
||||
expect(values['prefix.Double'], allTestValues['prefix.Double']);
|
||||
expect(values['prefix.StringList'], null);
|
||||
values = await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: 'flutter.'),
|
||||
),
|
||||
);
|
||||
expect(values['flutter.String'], allTestValues['flutter.String']);
|
||||
expect(values['flutter.Bool'], allTestValues['flutter.Bool']);
|
||||
expect(values['flutter.Int'], allTestValues['flutter.Int']);
|
||||
expect(values['flutter.Double'], allTestValues['flutter.Double']);
|
||||
expect(
|
||||
values['flutter.StringList'], allTestValues['flutter.StringList']);
|
||||
});
|
||||
|
||||
testWidgets('clearWithNoPrefix', (WidgetTester _) async {
|
||||
await preferences.clearWithParameters(
|
||||
ClearParameters(
|
||||
filter: PreferencesFilter(prefix: ''),
|
||||
),
|
||||
);
|
||||
final Map<String, Object> values =
|
||||
await preferences.getAllWithParameters(
|
||||
GetAllParameters(
|
||||
filter: PreferencesFilter(prefix: ''),
|
||||
),
|
||||
);
|
||||
expect(values['String'], null);
|
||||
expect(values['Bool'], null);
|
||||
expect(values['Int'], null);
|
||||
expect(values['Double'], null);
|
||||
expect(values['StringList'], null);
|
||||
expect(values['flutter.String'], null);
|
||||
expect(values['flutter.Bool'], null);
|
||||
expect(values['flutter.Int'], null);
|
||||
expect(values['flutter.Double'], null);
|
||||
expect(values['flutter.StringList'], null);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2021 Sony Group Corporation. All rights reserved.
|
||||
// Copyright 2023 Sony Group Corporation. All rights reserved.
|
||||
// Copyright 2013 The Flutter Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
@@ -11,13 +11,15 @@ import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences_elinux/shared_preferences_elinux.dart';
|
||||
|
||||
void main() {
|
||||
runApp(MyApp());
|
||||
runApp(const MyApp());
|
||||
}
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
return const MaterialApp(
|
||||
title: 'SharedPreferences Demo',
|
||||
home: SharedPreferencesDemo(),
|
||||
);
|
||||
@@ -25,18 +27,18 @@ class MyApp extends StatelessWidget {
|
||||
}
|
||||
|
||||
class SharedPreferencesDemo extends StatefulWidget {
|
||||
SharedPreferencesDemo({Key? key}) : super(key: key);
|
||||
const SharedPreferencesDemo({super.key});
|
||||
|
||||
@override
|
||||
SharedPreferencesDemoState createState() => SharedPreferencesDemoState();
|
||||
}
|
||||
|
||||
class SharedPreferencesDemoState extends State<SharedPreferencesDemo> {
|
||||
final prefs = SharedPreferencesELinux.instance;
|
||||
final SharedPreferencesELinux prefs = SharedPreferencesELinux();
|
||||
late Future<int> _counter;
|
||||
|
||||
Future<void> _incrementCounter() async {
|
||||
final values = await prefs.getAll();
|
||||
final Map<String, Object> values = await prefs.getAll();
|
||||
final int counter = (values['counter'] as int? ?? 0) + 1;
|
||||
|
||||
setState(() {
|
||||
@@ -50,7 +52,7 @@ class SharedPreferencesDemoState extends State<SharedPreferencesDemo> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
_counter = prefs.getAll().then((Map<String, Object> values) {
|
||||
return (values['counter'] as int? ?? 0);
|
||||
return values['counter'] as int? ?? 0;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -58,16 +60,18 @@ class SharedPreferencesDemoState extends State<SharedPreferencesDemo> {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text("SharedPreferences Demo"),
|
||||
title: const Text('SharedPreferences Demo'),
|
||||
),
|
||||
body: Center(
|
||||
child: FutureBuilder<int>(
|
||||
future: _counter,
|
||||
builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
|
||||
switch (snapshot.connectionState) {
|
||||
case ConnectionState.none:
|
||||
case ConnectionState.waiting:
|
||||
return const CircularProgressIndicator();
|
||||
default:
|
||||
case ConnectionState.active:
|
||||
case ConnectionState.done:
|
||||
if (snapshot.hasError) {
|
||||
return Text('Error: ${snapshot.error}');
|
||||
} else {
|
||||
|
||||
@@ -3,17 +3,18 @@ description: Demonstrates how to use the shared_preferences_elinux plugin.
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ">=2.12.0 <3.0.0"
|
||||
flutter: ">=2.10.0"
|
||||
sdk: ">=2.18.0 <4.0.0"
|
||||
flutter: ">=3.3.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
shared_preferences_elinux:
|
||||
path: ../
|
||||
shared_preferences_platform_interface: ^2.3.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_driver:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
integration_test:
|
||||
sdk: flutter
|
||||
|
||||
Reference in New Issue
Block a user