providers_test.dart
2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Copyright 2019 The FlutterCandies author. All rights reserved.
// Use of this source code is governed by an Apache license that can be found
// in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
import 'test_utils.dart';
void main() async {
PhotoManager.withPlugin(TestPhotoManagerPlugin());
AssetPicker.setPickerDelegate(TestAssetPickerDelegate());
group('AssetPickerProvider', () {
testWidgets('disposed correctly', (WidgetTester tester) async {
await tester.pumpWidget(
defaultPickerTestApp(
onButtonPressed: (BuildContext context) {
AssetPicker.pickAssets(context);
},
),
);
await tester.tap(defaultButtonFinder);
await tester.pumpAndSettle();
final Finder pickerFinder = find.byType(
AssetPicker<AssetEntity, AssetPathEntity>,
);
final AssetPicker<AssetEntity, AssetPathEntity> picker = tester.widget(
pickerFinder,
);
final DefaultAssetPickerProvider provider =
(picker.builder as DefaultAssetPickerBuilderDelegate).provider;
expect(provider, isA<DefaultAssetPickerProvider>());
await tester.tap(find.widgetWithIcon(IconButton, Icons.close));
await tester.pumpAndSettle();
expect(
() {
provider.addListener(() {});
},
throwsA(isA<AssertionError>()),
);
});
/// Regression: https://github.com/fluttercandies/flutter_wechat_assets_picker/issues/427
testWidgets(
'does not clear selected assets',
(WidgetTester tester) async {
final List<AssetEntity> selectedAssets = <AssetEntity>[testAssetEntity];
await tester.pumpWidget(
defaultPickerTestApp(
onButtonPressed: (BuildContext context) {
AssetPicker.pickAssets(
context,
pickerConfig: AssetPickerConfig(selectedAssets: selectedAssets),
);
},
),
);
await tester.tap(defaultButtonFinder);
await tester.pumpAndSettle();
await tester.tap(find.widgetWithIcon(IconButton, Icons.close));
await tester.pumpAndSettle();
expect(selectedAssets, contains(testAssetEntity));
},
);
});
}