1
- import 'dart:async' ;
2
1
import 'dart:convert' ;
3
2
import 'dart:io' ;
4
3
import 'dart:typed_data' ;
@@ -7,6 +6,7 @@ import 'package:flutter/material.dart';
7
6
import 'package:flutter_svg/flutter_svg.dart' ;
8
7
import 'package:flutter_svg_test/flutter_svg_test.dart' ;
9
8
import 'package:flutter_test/flutter_test.dart' ;
9
+ import 'package:http/http.dart' as http;
10
10
11
11
void main () {
12
12
group ('finds' , () {
@@ -24,12 +24,14 @@ void main() {
24
24
});
25
25
26
26
testWidgets ('network svg' , (WidgetTester widgetTester) async {
27
- await HttpOverrides .runZoned (() async {
28
- final SvgPicture asset = SvgPicture .network ('svg.dart' );
29
- await widgetTester.pumpWidget (asset);
27
+ final http.Client fakeClient = _FakeHttpClient ();
28
+ final SvgPicture asset = SvgPicture .network (
29
+ 'svg.dart' ,
30
+ httpClient: fakeClient,
31
+ );
32
+ await widgetTester.pumpWidget (asset);
30
33
31
- expect (find.svg (asset.bytesLoader), findsOneWidget);
32
- }, createHttpClient: (SecurityContext ? c) => _setupFakeClient);
34
+ expect (find.svg (asset.bytesLoader), findsOneWidget);
33
35
});
34
36
35
37
testWidgets ('string svg' , (WidgetTester widgetTester) async {
@@ -68,12 +70,10 @@ void main() {
68
70
});
69
71
70
72
testWidgets ('network svg with url' , (WidgetTester widgetTester) async {
71
- await HttpOverrides .runZoned (() async {
72
- const String svgUri = 'svg.dart' ;
73
- await widgetTester.pumpWidget (SvgPicture .network (svgUri));
73
+ const String svgUri = 'svg.dart' ;
74
+ await widgetTester.pumpWidget (SvgPicture .network (svgUri));
74
75
75
- expect (find.svgNetworkWithUrl (svgUri), findsOneWidget);
76
- }, createHttpClient: (SecurityContext ? c) => _setupFakeClient);
76
+ expect (find.svgNetworkWithUrl (svgUri), findsOneWidget);
77
77
});
78
78
79
79
testWidgets ('file svg wit path' , (WidgetTester widgetTester) async {
@@ -93,13 +93,6 @@ void main() {
93
93
});
94
94
}
95
95
96
- HttpClient get _setupFakeClient {
97
- final _FakeHttpClientResponse fakeResponse = _FakeHttpClientResponse ();
98
- final _FakeHttpClientRequest fakeRequest =
99
- _FakeHttpClientRequest (fakeResponse);
100
- return _FakeHttpClient (fakeRequest);
101
- }
102
-
103
96
class _FakeAssetBundle extends Fake implements AssetBundle {
104
97
@override
105
98
Future <String > loadString (String key, {bool cache = true }) async {
@@ -112,65 +105,10 @@ class _FakeAssetBundle extends Fake implements AssetBundle {
112
105
}
113
106
}
114
107
115
- class _FakeHttpClient extends Fake implements HttpClient {
116
- _FakeHttpClient (this .request);
117
-
118
- _FakeHttpClientRequest request;
119
-
120
- @override
121
- Future <HttpClientRequest > getUrl (Uri url) async => request;
122
- }
123
-
124
- class _FakeHttpHeaders extends Fake implements HttpHeaders {
125
- final Map <String , String ?> values = < String , String ? > {};
126
-
127
- @override
128
- void add (String name, Object value, {bool preserveHeaderCase = false }) {
129
- values[name] = value.toString ();
130
- }
131
-
132
- @override
133
- List <String >? operator [](String key) {
134
- return < String > [values[key]! ];
135
- }
136
- }
137
-
138
- class _FakeHttpClientRequest extends Fake implements HttpClientRequest {
139
- _FakeHttpClientRequest (this .response);
140
-
141
- _FakeHttpClientResponse response;
142
-
143
- @override
144
- final HttpHeaders headers = _FakeHttpHeaders ();
145
-
146
- @override
147
- Future <HttpClientResponse > close () async => response;
148
- }
149
-
150
- class _FakeHttpClientResponse extends Fake implements HttpClientResponse {
151
- @override
152
- int statusCode = 200 ;
153
-
154
- @override
155
- int contentLength = _svgStr.length;
156
-
157
- @override
158
- HttpClientResponseCompressionState get compressionState =>
159
- HttpClientResponseCompressionState .notCompressed;
160
-
108
+ class _FakeHttpClient extends Fake implements http.Client {
161
109
@override
162
- StreamSubscription <List <int >> listen (
163
- void Function (List <int > event)? onData, {
164
- Function ? onError,
165
- void Function ()? onDone,
166
- bool ? cancelOnError,
167
- }) {
168
- return Stream <Uint8List >.fromIterable (< Uint8List > [_svgBytes]).listen (
169
- onData,
170
- onDone: onDone,
171
- onError: onError,
172
- cancelOnError: cancelOnError,
173
- );
110
+ Future <http.Response > get (Uri url, {Map <String , String >? headers}) async {
111
+ return http.Response (_svgStr, 200 );
174
112
}
175
113
}
176
114
0 commit comments