socket_fail_test.dart 1.07 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// 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 {
18
  final IntegrationTestWidgetsFlutterBinding binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
19 20 21 22 23 24 25 26 27 28 29 30 31 32

  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);
  });
}