Skip to content

Commit 02a6c91

Browse files
authored
Add test for image.error_builder.0.dart API example. (flutter#148497)
This PR contributes to flutter#130459 ### Description - Adds tests for `examples/api/lib/widgets/image/image.error_builder.0.dart`
1 parent 5b9dd53 commit 02a6c91

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

dev/bots/check_code_samples.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,6 @@ final Set<String> _knownMissingTests = <String>{
415415
'examples/api/test/widgets/animated_list/animated_list.0_test.dart',
416416
'examples/api/test/widgets/focus_traversal/focus_traversal_group.0_test.dart',
417417
'examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart',
418-
'examples/api/test/widgets/image/image.error_builder.0_test.dart',
419418
'examples/api/test/widgets/image/image.frame_builder.0_test.dart',
420419
'examples/api/test/widgets/image/image.loading_builder.0_test.dart',
421420
'examples/api/test/widgets/shortcuts/logical_key_set.0_test.dart',
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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:io';
6+
7+
import 'package:flutter/material.dart';
8+
import 'package:flutter_api_samples/widgets/image/image.error_builder.0.dart'
9+
as example;
10+
import 'package:flutter_test/flutter_test.dart';
11+
12+
void main() {
13+
// The app being tested loads images via HTTP which the test
14+
// framework defeats by default.
15+
setUpAll(() {
16+
HttpOverrides.global = null;
17+
});
18+
19+
testWidgets('Has nonexistent url', (WidgetTester tester) async {
20+
await tester.pumpWidget(
21+
const example.ErrorBuilderExampleApp(),
22+
);
23+
await tester.pumpAndSettle();
24+
25+
final Image image = tester.widget<Image>(find.byType(Image));
26+
final NetworkImage imageProvider = image.image as NetworkImage;
27+
28+
expect(
29+
imageProvider.url,
30+
equals('https://example.does.not.exist/image.jpg'),
31+
);
32+
});
33+
34+
testWidgets('errorBuilder returns text with emoji', (WidgetTester tester) async {
35+
await tester.pumpWidget(
36+
const example.ErrorBuilderExampleApp(),
37+
);
38+
await tester.pumpAndSettle();
39+
40+
final Image image = tester.widget<Image>(find.byType(Image));
41+
final ImageErrorWidgetBuilder errorBuilder = image.errorBuilder!;
42+
final BuildContext context = tester.element(find.byType(Image));
43+
44+
expect(
45+
errorBuilder(context, const HttpException('oops'), StackTrace.empty),
46+
isA<Text>().having((Text text) => text.data, 'data', equals('😢')),
47+
);
48+
});
49+
}

0 commit comments

Comments
 (0)