From de26ec83604f4862005b0380c77b04328e6de60a Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Fri, 31 May 2024 13:24:20 -0700 Subject: [PATCH] DRY up FakeCodec (#149381) - dedupe the same class in two places - renamed it to not clash with `FakeCodec` defined somewhere else --- .../image_provider_network_image_test.dart | 25 ++------------- .../test/painting/image_provider_test.dart | 31 ++++--------------- .../flutter/test/painting/noop_codec.dart | 27 ++++++++++++++++ 3 files changed, 36 insertions(+), 47 deletions(-) create mode 100644 packages/flutter/test/painting/noop_codec.dart diff --git a/packages/flutter/test/painting/image_provider_network_image_test.dart b/packages/flutter/test/painting/image_provider_network_image_test.dart index 45f9ffaf9e..8a8bdfe348 100644 --- a/packages/flutter/test/painting/image_provider_network_image_test.dart +++ b/packages/flutter/test/painting/image_provider_network_image_test.dart @@ -5,7 +5,7 @@ import 'dart:async'; import 'dart:io'; import 'dart:math' as math; -import 'dart:ui' show Codec, FrameInfo, ImmutableBuffer; +import 'dart:ui' show Codec, ImmutableBuffer; import 'package:flutter/foundation.dart'; import 'package:flutter/painting.dart'; @@ -13,6 +13,7 @@ import 'package:flutter_test/flutter_test.dart'; import '../image_data.dart'; import '../rendering/rendering_tester.dart'; +import 'noop_codec.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); @@ -227,10 +228,6 @@ void main() { debugNetworkImageHttpClientProvider = null; }, skip: isBrowser); // [intended] Browser does not resolve images this way. - Future decoder(ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { - return FakeCodec(); - } - test('Network image sets tag', () async { const String url = 'http://test.png'; const int chunkSize = 8; @@ -245,7 +242,7 @@ void main() { const NetworkImage provider = NetworkImage(url); - final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, url); }); @@ -319,19 +316,3 @@ class _FakeHttpClientResponse extends Fake implements HttpClientResponse { return futureValue ?? futureValue as E; // Mirrors the implementation in Stream. } } - -class FakeCodec implements Codec { - @override - void dispose() {} - - @override - int get frameCount => throw UnimplementedError(); - - @override - Future getNextFrame() { - throw UnimplementedError(); - } - - @override - int get repetitionCount => throw UnimplementedError(); -} diff --git a/packages/flutter/test/painting/image_provider_test.dart b/packages/flutter/test/painting/image_provider_test.dart index 737471dfee..09d26571eb 100644 --- a/packages/flutter/test/painting/image_provider_test.dart +++ b/packages/flutter/test/painting/image_provider_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_test/flutter_test.dart'; import '../image_data.dart'; import '../rendering/rendering_tester.dart'; import 'mocks_for_image_cache.dart'; +import 'noop_codec.dart'; void main() { TestRenderingFlutterBinding.ensureInitialized(); @@ -88,22 +89,18 @@ void main() { final FileImage provider = FileImage(file); expect(provider.loadBuffer(provider, (ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { - return Future.value(FakeCodec()); + return Future.value(NoopCodec()); }), isA()); expect(await error.future, isStateError); }); - Future decoder(ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async { - return FakeCodec(); - } - test('File image sets tag', () async { final MemoryFileSystem fs = MemoryFileSystem(); final File file = fs.file('/blue.png')..createSync(recursive: true)..writeAsBytesSync(kBlueSquarePng); final FileImage provider = FileImage(file); - final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, file.path); }); @@ -112,7 +109,7 @@ void main() { final Uint8List bytes = Uint8List.fromList(kBlueSquarePng); final MemoryImage provider = MemoryImage(bytes); - final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)})'); }); @@ -121,7 +118,7 @@ void main() { const String asset = 'images/blue.png'; final ExactAssetImage provider = ExactAssetImage(asset, bundle: _TestAssetBundle()); final AssetBundleImageKey key = await provider.obtainKey(ImageConfiguration.empty); - final MultiFrameImageStreamCompleter completer = provider.loadBuffer(key, decoder) as MultiFrameImageStreamCompleter; + final MultiFrameImageStreamCompleter completer = provider.loadBuffer(key, noopCodec) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, asset); }); @@ -131,7 +128,7 @@ void main() { final ResizeImage provider = ResizeImage(MemoryImage(bytes), width: 40, height: 40); final MultiFrameImageStreamCompleter completer = provider.loadBuffer( await provider.obtainKey(ImageConfiguration.empty), - decoder, + noopCodec, ) as MultiFrameImageStreamCompleter; expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)}) - Resized(40×40)'); @@ -167,22 +164,6 @@ void main() { }); } -class FakeCodec implements Codec { - @override - void dispose() {} - - @override - int get frameCount => throw UnimplementedError(); - - @override - Future getNextFrame() { - throw UnimplementedError(); - } - - @override - int get repetitionCount => throw UnimplementedError(); -} - class _TestAssetBundle extends CachingAssetBundle { @override Future load(String key) async { diff --git a/packages/flutter/test/painting/noop_codec.dart b/packages/flutter/test/painting/noop_codec.dart new file mode 100644 index 0000000000..900e35836f --- /dev/null +++ b/packages/flutter/test/painting/noop_codec.dart @@ -0,0 +1,27 @@ +// 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:ui'; + +class NoopCodec implements Codec { + @override + void dispose() {} + + @override + int get frameCount => throw UnimplementedError(); + + @override + Future getNextFrame() => throw UnimplementedError(); + + @override + int get repetitionCount => throw UnimplementedError(); +} + +Future noopCodec( + ImmutableBuffer buffer, { + int? cacheWidth, + int? cacheHeight, + bool? allowUpscaling, +}) async => + NoopCodec();