Skip to content

Commit de26ec8

Browse files
authored
DRY up FakeCodec (#149381)
- dedupe the same class in two places - renamed it to not clash with `FakeCodec` defined somewhere else
1 parent 6193615 commit de26ec8

File tree

3 files changed

+36
-47
lines changed

3 files changed

+36
-47
lines changed

packages/flutter/test/painting/image_provider_network_image_test.dart

+3-22
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
import 'dart:async';
66
import 'dart:io';
77
import 'dart:math' as math;
8-
import 'dart:ui' show Codec, FrameInfo, ImmutableBuffer;
8+
import 'dart:ui' show Codec, ImmutableBuffer;
99

1010
import 'package:flutter/foundation.dart';
1111
import 'package:flutter/painting.dart';
1212
import 'package:flutter_test/flutter_test.dart';
1313

1414
import '../image_data.dart';
1515
import '../rendering/rendering_tester.dart';
16+
import 'noop_codec.dart';
1617

1718
void main() {
1819
TestRenderingFlutterBinding.ensureInitialized();
@@ -227,10 +228,6 @@ void main() {
227228
debugNetworkImageHttpClientProvider = null;
228229
}, skip: isBrowser); // [intended] Browser does not resolve images this way.
229230

230-
Future<Codec> decoder(ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async {
231-
return FakeCodec();
232-
}
233-
234231
test('Network image sets tag', () async {
235232
const String url = 'http://test.png';
236233
const int chunkSize = 8;
@@ -245,7 +242,7 @@ void main() {
245242

246243
const NetworkImage provider = NetworkImage(url);
247244

248-
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter;
245+
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
249246

250247
expect(completer.debugLabel, url);
251248
});
@@ -319,19 +316,3 @@ class _FakeHttpClientResponse extends Fake implements HttpClientResponse {
319316
return futureValue ?? futureValue as E; // Mirrors the implementation in Stream.
320317
}
321318
}
322-
323-
class FakeCodec implements Codec {
324-
@override
325-
void dispose() {}
326-
327-
@override
328-
int get frameCount => throw UnimplementedError();
329-
330-
@override
331-
Future<FrameInfo> getNextFrame() {
332-
throw UnimplementedError();
333-
}
334-
335-
@override
336-
int get repetitionCount => throw UnimplementedError();
337-
}

packages/flutter/test/painting/image_provider_test.dart

+6-25
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import 'package:flutter_test/flutter_test.dart';
1515
import '../image_data.dart';
1616
import '../rendering/rendering_tester.dart';
1717
import 'mocks_for_image_cache.dart';
18+
import 'noop_codec.dart';
1819

1920
void main() {
2021
TestRenderingFlutterBinding.ensureInitialized();
@@ -88,22 +89,18 @@ void main() {
8889
final FileImage provider = FileImage(file);
8990

9091
expect(provider.loadBuffer(provider, (ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async {
91-
return Future<Codec>.value(FakeCodec());
92+
return Future<Codec>.value(NoopCodec());
9293
}), isA<MultiFrameImageStreamCompleter>());
9394

9495
expect(await error.future, isStateError);
9596
});
9697

97-
Future<Codec> decoder(ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool? allowUpscaling}) async {
98-
return FakeCodec();
99-
}
100-
10198
test('File image sets tag', () async {
10299
final MemoryFileSystem fs = MemoryFileSystem();
103100
final File file = fs.file('/blue.png')..createSync(recursive: true)..writeAsBytesSync(kBlueSquarePng);
104101
final FileImage provider = FileImage(file);
105102

106-
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter;
103+
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
107104

108105
expect(completer.debugLabel, file.path);
109106
});
@@ -112,7 +109,7 @@ void main() {
112109
final Uint8List bytes = Uint8List.fromList(kBlueSquarePng);
113110
final MemoryImage provider = MemoryImage(bytes);
114111

115-
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, decoder) as MultiFrameImageStreamCompleter;
112+
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(provider, noopCodec) as MultiFrameImageStreamCompleter;
116113

117114
expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)})');
118115
});
@@ -121,7 +118,7 @@ void main() {
121118
const String asset = 'images/blue.png';
122119
final ExactAssetImage provider = ExactAssetImage(asset, bundle: _TestAssetBundle());
123120
final AssetBundleImageKey key = await provider.obtainKey(ImageConfiguration.empty);
124-
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(key, decoder) as MultiFrameImageStreamCompleter;
121+
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(key, noopCodec) as MultiFrameImageStreamCompleter;
125122

126123
expect(completer.debugLabel, asset);
127124
});
@@ -131,7 +128,7 @@ void main() {
131128
final ResizeImage provider = ResizeImage(MemoryImage(bytes), width: 40, height: 40);
132129
final MultiFrameImageStreamCompleter completer = provider.loadBuffer(
133130
await provider.obtainKey(ImageConfiguration.empty),
134-
decoder,
131+
noopCodec,
135132
) as MultiFrameImageStreamCompleter;
136133

137134
expect(completer.debugLabel, 'MemoryImage(${describeIdentity(bytes)}) - Resized(40×40)');
@@ -167,22 +164,6 @@ void main() {
167164
});
168165
}
169166

170-
class FakeCodec implements Codec {
171-
@override
172-
void dispose() {}
173-
174-
@override
175-
int get frameCount => throw UnimplementedError();
176-
177-
@override
178-
Future<FrameInfo> getNextFrame() {
179-
throw UnimplementedError();
180-
}
181-
182-
@override
183-
int get repetitionCount => throw UnimplementedError();
184-
}
185-
186167
class _TestAssetBundle extends CachingAssetBundle {
187168
@override
188169
Future<ByteData> load(String key) async {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'dart:ui';
6+
7+
class NoopCodec implements Codec {
8+
@override
9+
void dispose() {}
10+
11+
@override
12+
int get frameCount => throw UnimplementedError();
13+
14+
@override
15+
Future<FrameInfo> getNextFrame() => throw UnimplementedError();
16+
17+
@override
18+
int get repetitionCount => throw UnimplementedError();
19+
}
20+
21+
Future<Codec> noopCodec(
22+
ImmutableBuffer buffer, {
23+
int? cacheWidth,
24+
int? cacheHeight,
25+
bool? allowUpscaling,
26+
}) async =>
27+
NoopCodec();

0 commit comments

Comments
 (0)