| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'dart:async'; |
| import 'dart:io'; |
| |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| import '../../../packages/flutter/test/image_data.dart'; |
| |
| // Returns a mock HTTP client that responds with an image to all requests. |
| FakeHttpClient createMockImageHttpClient(SecurityContext? _) { |
| final FakeHttpClient client = FakeHttpClient(); |
| return client; |
| } |
| |
| class FakeHttpClient extends Fake implements HttpClient { |
| FakeHttpClient([this.context]); |
| |
| SecurityContext? context; |
| |
| @override |
| bool autoUncompress = false; |
| |
| final FakeHttpClientRequest request = FakeHttpClientRequest(); |
| |
| @override |
| Future<HttpClientRequest> getUrl(Uri url) async { |
| return request; |
| } |
| } |
| |
| class FakeHttpClientRequest extends Fake implements HttpClientRequest { |
| final FakeHttpClientResponse response = FakeHttpClientResponse(); |
| |
| @override |
| Future<HttpClientResponse> close() async { |
| return response; |
| } |
| } |
| |
| class FakeHttpClientResponse extends Fake implements HttpClientResponse { |
| @override |
| int get statusCode => 200; |
| |
| @override |
| int get contentLength => kTransparentImage.length; |
| |
| @override |
| final FakeHttpHeaders headers = FakeHttpHeaders(); |
| |
| @override |
| HttpClientResponseCompressionState get compressionState => HttpClientResponseCompressionState.notCompressed; |
| |
| @override |
| StreamSubscription<List<int>> listen(void Function(List<int>)? onData, { |
| void Function()? onDone, |
| Function? onError, |
| bool? cancelOnError, |
| }) { |
| return Stream<List<int>>.fromIterable(<List<int>>[kTransparentImage]) |
| .listen(onData, onDone: onDone, onError: onError, cancelOnError: cancelOnError); |
| } |
| } |
| |
| class FakeHttpHeaders extends Fake implements HttpHeaders { } |