_NoOpCodec review feedback (#149442)

This commit is contained in:
Kevin Moore 2024-05-31 14:03:27 -07:00 committed by GitHub
parent 86321ed229
commit dd2d123806
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 22 additions and 17 deletions

View File

@ -13,7 +13,7 @@ import 'package:flutter_test/flutter_test.dart';
import '../image_data.dart';
import '../rendering/rendering_tester.dart';
import 'noop_codec.dart';
import 'no_op_codec.dart';
void main() {
TestRenderingFlutterBinding.ensureInitialized();
@ -242,7 +242,7 @@ void main() {
const NetworkImage provider = NetworkImage(url);
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noOpDecoderBufferCallback) as MultiFrameImageStreamCompleter;
expect(completer.debugLabel, url);
});

View File

@ -15,7 +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';
import 'no_op_codec.dart';
void main() {
TestRenderingFlutterBinding.ensureInitialized();
@ -89,7 +89,7 @@ void main() {
final FileImage provider = FileImage(file);
expect(provider.loadBuffer(provider, (ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async {
return Future<Codec>.value(NoopCodec());
return Future<Codec>.value(createNoOpCodec());
}), isA<MultiFrameImageStreamCompleter>());
expect(await error.future, isStateError);
@ -100,7 +100,7 @@ void main() {
final File file = fs.file('/blue.png')..createSync(recursive: true)..writeAsBytesSync(kBlueSquarePng);
final FileImage provider = FileImage(file);
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noOpDecoderBufferCallback) as MultiFrameImageStreamCompleter;
expect(completer.debugLabel, file.path);
});
@ -109,7 +109,7 @@ void main() {
final Uint8List bytes = Uint8List.fromList(kBlueSquarePng);
final MemoryImage provider = MemoryImage(bytes);
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noOpDecoderBufferCallback) as MultiFrameImageStreamCompleter;
expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)})');
});
@ -118,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, noopCodec) as MultiFrameImageStreamCompleter;
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(key, noOpDecoderBufferCallback) as MultiFrameImageStreamCompleter;
expect(completer.debugLabel, asset);
});
@ -128,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),
noopCodec,
noOpDecoderBufferCallback,
) as MultiFrameImageStreamCompleter;
expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)}) - Resized(40×40)');

View File

@ -4,7 +4,20 @@
import 'dart:ui';
class NoopCodec implements Codec {
/// Returns a [Codec] that throws on all member invocations.
Codec createNoOpCodec() => _NoOpCodec();
/// Function matching [DecoderBufferCallback] which returns a [Codec]
/// that throws on all member invocations.
Future<Codec> noOpDecoderBufferCallback(
ImmutableBuffer buffer, {
int? cacheWidth,
int? cacheHeight,
bool? allowUpscaling,
}) async =>
_NoOpCodec();
class _NoOpCodec implements Codec {
@override
void dispose() {}
@ -17,11 +30,3 @@ class NoopCodec implements Codec {
@override
int get repetitionCount => throw UnimplementedError();
}
Future<Codec> noopCodec(
ImmutableBuffer buffer, {
int? cacheWidth,
int? cacheHeight,
bool? allowUpscaling,
}) async =>
NoopCodec();