blob: 556b6fe6fca00619b7db24cdbb814316b645291f [file] [log] [blame]
// Copyright 2013 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:async';
import 'dart:html';
import 'dart:js_util' show getProperty;
import 'package:flutter_test/flutter_test.dart';
/// A Fake implementation of the NetworkInformation API that allows
/// for external modification of its values.
///
/// Note that the DOM API works by internally mutating and broadcasting
/// 'change' events.
class FakeNetworkInformation extends Fake implements NetworkInformation {
String? _type;
String? _effectiveType;
num? _downlink;
int? _rtt;
@override
String? get type => _type;
@override
String? get effectiveType => _effectiveType;
@override
num? get downlink => _downlink;
@override
int? get rtt => _rtt;
FakeNetworkInformation({
String? type,
String? effectiveType,
num? downlink,
int? rtt,
}) : this._type = type,
this._effectiveType = effectiveType,
this._downlink = downlink,
this._rtt = rtt;
/// Changes the desired values, and triggers the change event listener.
Future<void> mockChangeValue({
String? type,
String? effectiveType,
num? downlink,
int? rtt,
}) async {
this._type = type;
this._effectiveType = effectiveType;
this._downlink = downlink;
this._rtt = rtt;
// This is set by the onConnectivityChanged getter...
final Function onchange = getProperty(this, 'onchange') as Function;
onchange(Event('change'));
}
}