Skip to content

Commit 2f7c8ca

Browse files
authored
Relax http (#1041)
* Relax http * update test package too * format;
1 parent 09fd110 commit 2f7c8ca

File tree

4 files changed

+26
-81
lines changed

4 files changed

+26
-81
lines changed

packages/flutter_svg/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# CHANGES
22

3+
## 2.0.10+1
4+
5+
- Relax http dependency.
6+
37
## 2.0.10
48

59
- Use package:http for network requests, and allow injection of the client.

packages/flutter_svg/pubspec.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ name: flutter_svg
22
description: An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files.
33
repository: https://github.com/dnfield/flutter_svg/tree/master/packages/flutter_svg
44
issue_tracker: https://github.com/dnfield/flutter_svg/issues
5-
version: 2.0.10
5+
version: 2.0.10+1
66

77
dependencies:
88
flutter:
99
sdk: flutter
10-
http: ^1.2.1
10+
http: ^1.0.0
1111
vector_graphics: ^1.1.11
1212
vector_graphics_codec: ^1.1.11
1313
vector_graphics_compiler: ^1.1.11

packages/flutter_svg_test/pubspec.yaml

+6-3
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@ name: flutter_svg_test
22
description: A testing library which makes it easy to test flutter svg . Built to be used with the flutter svg package.
33
repository: https://github.com/dnfield/flutter_svg/tree/master/packages/flutter_svg_test
44
issue_tracker: https://github.com/dnfield/flutter_svg/issues
5-
version: 1.0.0
5+
version: 1.0.1
66

77
dependencies:
88
flutter:
99
sdk: flutter
10-
flutter_svg: ^2.0.4
10+
flutter_svg: ^2.0.10
1111
flutter_test:
1212
sdk: flutter
1313

14+
dev_dependencies:
15+
http: ^1.0.0
16+
1417
environment:
1518
sdk: '>=2.19.0-0 <4.0.0'
1619
flutter: ">=3.7.0-0"
17-
20+
1821

packages/flutter_svg_test/test/flutter_svg_test_test.dart

+14-76
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'dart:async';
21
import 'dart:convert';
32
import 'dart:io';
43
import 'dart:typed_data';
@@ -7,6 +6,7 @@ import 'package:flutter/material.dart';
76
import 'package:flutter_svg/flutter_svg.dart';
87
import 'package:flutter_svg_test/flutter_svg_test.dart';
98
import 'package:flutter_test/flutter_test.dart';
9+
import 'package:http/http.dart' as http;
1010

1111
void main() {
1212
group('finds', () {
@@ -24,12 +24,14 @@ void main() {
2424
});
2525

2626
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);
3033

31-
expect(find.svg(asset.bytesLoader), findsOneWidget);
32-
}, createHttpClient: (SecurityContext? c) => _setupFakeClient);
34+
expect(find.svg(asset.bytesLoader), findsOneWidget);
3335
});
3436

3537
testWidgets('string svg', (WidgetTester widgetTester) async {
@@ -68,12 +70,10 @@ void main() {
6870
});
6971

7072
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));
7475

75-
expect(find.svgNetworkWithUrl(svgUri), findsOneWidget);
76-
}, createHttpClient: (SecurityContext? c) => _setupFakeClient);
76+
expect(find.svgNetworkWithUrl(svgUri), findsOneWidget);
7777
});
7878

7979
testWidgets('file svg wit path', (WidgetTester widgetTester) async {
@@ -93,13 +93,6 @@ void main() {
9393
});
9494
}
9595

96-
HttpClient get _setupFakeClient {
97-
final _FakeHttpClientResponse fakeResponse = _FakeHttpClientResponse();
98-
final _FakeHttpClientRequest fakeRequest =
99-
_FakeHttpClientRequest(fakeResponse);
100-
return _FakeHttpClient(fakeRequest);
101-
}
102-
10396
class _FakeAssetBundle extends Fake implements AssetBundle {
10497
@override
10598
Future<String> loadString(String key, {bool cache = true}) async {
@@ -112,65 +105,10 @@ class _FakeAssetBundle extends Fake implements AssetBundle {
112105
}
113106
}
114107

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 {
161109
@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);
174112
}
175113
}
176114

0 commit comments

Comments
 (0)