forked from felangel/mocktail
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mocktail_image_network_test.dart
70 lines (57 loc) · 2.16 KB
/
mocktail_image_network_test.dart
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
69
70
import 'dart:convert';
import 'dart:io';
import 'package:mocktail_image_network/mocktail_image_network.dart';
import 'package:test/test.dart';
void main() {
group('mockNetworkImages', () {
test(
'should properly mock getUrl and complete without exceptions',
() async {
await mockNetworkImages(() async {
final expectedData = base64Decode(
'''iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==''',
);
final client = HttpClient()..autoUncompress = false;
final request = await client.getUrl(Uri.https(''));
final response = await request.close();
final data = <int>[];
response.listen(data.addAll);
// Wait for all microtasks to run
await Future<void>.delayed(Duration.zero);
expect(data, equals(expectedData));
});
},
);
test('should properly pass through onDone', () async {
await mockNetworkImages(() async {
final client = HttpClient()..autoUncompress = false;
final request = await client.getUrl(Uri.https(''));
final response = await request.close();
var onDoneCalled = false;
void onDone() => onDoneCalled = true;
response.listen((_) {}, onDone: onDone);
// Wait for all microtasks to run
await Future<void>.delayed(Duration.zero);
expect(onDoneCalled, isTrue);
});
});
test('should properly use custom imageBytes', () async {
final greenPixel = base64Decode(
'''iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg==''',
);
await mockNetworkImages(
() async {
final client = HttpClient()..autoUncompress = false;
final request = await client.getUrl(Uri.https(''));
final response = await request.close();
final data = <int>[];
response.listen(data.addAll);
// Wait for all microtasks to run
await Future<void>.delayed(Duration.zero);
expect(data, equals(greenPixel));
},
imageBytes: greenPixel,
);
});
});
}