@@ -19,11 +19,15 @@ void main() {
19
19
});
20
20
21
21
Future <void > _addScreenshotAttachment (
22
- WidgetTester tester, FlutterRenderer renderer, bool added,
23
- {int ? expectedMaxWidthOrHeight}) async {
22
+ WidgetTester tester,
23
+ FlutterRenderer ? renderer, {
24
+ required bool isWeb,
25
+ required bool added,
26
+ int ? expectedMaxWidthOrHeight,
27
+ }) async {
24
28
// Run with real async https://stackoverflow.com/a/54021863
25
29
await tester.runAsync (() async {
26
- final sut = fixture.getSut (renderer);
30
+ final sut = fixture.getSut (renderer, isWeb );
27
31
28
32
await tester.pumpWidget (SentryScreenshotWidget (
29
33
child: Text ('Catching Pokémon is a snap!' ,
@@ -48,55 +52,54 @@ void main() {
48
52
});
49
53
}
50
54
51
- testWidgets ('adds screenshot attachment with skia renderer ' , (tester) async {
52
- await _addScreenshotAttachment (tester, FlutterRenderer .skia, true );
55
+ testWidgets ('adds screenshot attachment dart:io ' , (tester) async {
56
+ await _addScreenshotAttachment (tester, null , added : true , isWeb : false );
53
57
});
54
58
55
59
testWidgets ('adds screenshot attachment with canvasKit renderer' ,
56
60
(tester) async {
57
- await _addScreenshotAttachment (tester, FlutterRenderer .canvasKit, true );
61
+ await _addScreenshotAttachment (tester, FlutterRenderer .canvasKit,
62
+ added: true , isWeb: true );
58
63
});
59
64
60
65
testWidgets ('does not add screenshot attachment with html renderer' ,
61
66
(tester) async {
62
- await _addScreenshotAttachment (tester, FlutterRenderer .html, false );
63
- });
64
-
65
- testWidgets ('does not add screenshot attachment with unknown renderer' ,
66
- (tester) async {
67
- await _addScreenshotAttachment (tester, FlutterRenderer .unknown, false );
67
+ await _addScreenshotAttachment (tester, FlutterRenderer .html,
68
+ added: false , isWeb: true );
68
69
});
69
70
70
71
testWidgets ('does add screenshot in correct resolution for low' ,
71
72
(tester) async {
72
73
final height = SentryScreenshotQuality .low.targetResolution ()! ;
73
74
fixture.options.screenshotQuality = SentryScreenshotQuality .low;
74
- await _addScreenshotAttachment (tester, FlutterRenderer .skia, true ,
75
- expectedMaxWidthOrHeight: height);
75
+ await _addScreenshotAttachment (tester, null ,
76
+ added : true , isWeb : false , expectedMaxWidthOrHeight: height);
76
77
});
77
78
78
79
testWidgets ('does add screenshot in correct resolution for medium' ,
79
80
(tester) async {
80
81
final height = SentryScreenshotQuality .medium.targetResolution ()! ;
81
82
fixture.options.screenshotQuality = SentryScreenshotQuality .medium;
82
- await _addScreenshotAttachment (tester, FlutterRenderer .skia, true ,
83
- expectedMaxWidthOrHeight: height);
83
+ await _addScreenshotAttachment (tester, null ,
84
+ added : true , isWeb : false , expectedMaxWidthOrHeight: height);
84
85
});
85
86
86
87
testWidgets ('does add screenshot in correct resolution for high' ,
87
88
(tester) async {
88
89
final widthOrHeight = SentryScreenshotQuality .high.targetResolution ()! ;
89
90
fixture.options.screenshotQuality = SentryScreenshotQuality .high;
90
- await _addScreenshotAttachment (tester, FlutterRenderer .skia, true ,
91
- expectedMaxWidthOrHeight: widthOrHeight);
91
+ await _addScreenshotAttachment (tester, null ,
92
+ added : true , isWeb : false , expectedMaxWidthOrHeight: widthOrHeight);
92
93
});
93
94
}
94
95
95
96
class Fixture {
96
97
SentryFlutterOptions options = SentryFlutterOptions (dsn: fakeDsn);
97
98
98
- ScreenshotEventProcessor getSut (FlutterRenderer flutterRenderer) {
99
+ ScreenshotEventProcessor getSut (
100
+ FlutterRenderer ? flutterRenderer, bool isWeb) {
99
101
options.rendererWrapper = MockRendererWrapper (flutterRenderer);
102
+ options.platformChecker = MockPlatformChecker (isWebValue: isWeb);
100
103
return ScreenshotEventProcessor (options);
101
104
}
102
105
}
0 commit comments