| // 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:io'; |
| |
| import 'package:flutter_test/flutter_test.dart'; |
| import 'package:integration_test/integration_test.dart'; |
| |
| class SocketExceptionHttpClient extends Fake implements HttpClient { |
| @override |
| Future<HttpClientRequest> openUrl(String method, Uri url) { |
| throw const SocketException('always throw'); |
| } |
| } |
| |
| Future<void> main() async { |
| final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized(); |
| |
| test('Prints an appropriate message on socket exception', () async { |
| bool gotStateError = false; |
| try { |
| await binding.enableTimeline(httpClient: SocketExceptionHttpClient()); |
| } on StateError catch (e) { |
| gotStateError = true; |
| expect(e.toString(), contains('This may happen if DDS is enabled')); |
| } on SocketException catch (_) { |
| fail('Did not expect a socket exception.'); |
| } |
| expect(gotStateError, true); |
| }); |
| } |