blob: 3d9c405c30abb23ca0709491ba8946dc5b323b60 [file] [log] [blame]
// Copyright 2020 The Chromium 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 'package:connectivity_platform_interface/connectivity_platform_interface.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:connectivity_platform_interface/src/method_channel_connectivity.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('$MethodChannelConnectivity', () {
final List<MethodCall> log = <MethodCall>[];
MethodChannelConnectivity methodChannelConnectivity;
setUp(() async {
methodChannelConnectivity = MethodChannelConnectivity();
methodChannelConnectivity.methodChannel
.setMockMethodCallHandler((MethodCall methodCall) async {
log.add(methodCall);
switch (methodCall.method) {
case 'check':
return 'wifi';
case 'wifiName':
return '1337wifi';
case 'wifiBSSID':
return 'c0:ff:33:c0:d3:55';
case 'wifiIPAddress':
return '127.0.0.1';
case 'requestLocationServiceAuthorization':
return 'authorizedAlways';
case 'getLocationServiceAuthorization':
return 'authorizedAlways';
default:
return null;
}
});
log.clear();
MethodChannel(methodChannelConnectivity.eventChannel.name)
.setMockMethodCallHandler((MethodCall methodCall) async {
switch (methodCall.method) {
case 'listen':
await ServicesBinding.instance.defaultBinaryMessenger
.handlePlatformMessage(
methodChannelConnectivity.eventChannel.name,
methodChannelConnectivity.eventChannel.codec
.encodeSuccessEnvelope('wifi'),
(_) {},
);
break;
case 'cancel':
default:
return null;
}
});
});
test('onConnectivityChanged', () async {
final ConnectivityResult result =
await methodChannelConnectivity.onConnectivityChanged.first;
expect(result, ConnectivityResult.wifi);
});
test('getWifiName', () async {
final String result = await methodChannelConnectivity.getWifiName();
expect(result, '1337wifi');
expect(
log,
<Matcher>[
isMethodCall(
'wifiName',
arguments: null,
),
],
);
});
test('getWifiBSSID', () async {
final String result = await methodChannelConnectivity.getWifiBSSID();
expect(result, 'c0:ff:33:c0:d3:55');
expect(
log,
<Matcher>[
isMethodCall(
'wifiBSSID',
arguments: null,
),
],
);
});
test('getWifiIP', () async {
final String result = await methodChannelConnectivity.getWifiIP();
expect(result, '127.0.0.1');
expect(
log,
<Matcher>[
isMethodCall(
'wifiIPAddress',
arguments: null,
),
],
);
});
test('requestLocationServiceAuthorization', () async {
final LocationAuthorizationStatus result =
await methodChannelConnectivity.requestLocationServiceAuthorization();
expect(result, LocationAuthorizationStatus.authorizedAlways);
expect(
log,
<Matcher>[
isMethodCall(
'requestLocationServiceAuthorization',
arguments: <bool>[false],
),
],
);
});
test('getLocationServiceAuthorization', () async {
final LocationAuthorizationStatus result =
await methodChannelConnectivity.getLocationServiceAuthorization();
expect(result, LocationAuthorizationStatus.authorizedAlways);
expect(
log,
<Matcher>[
isMethodCall(
'getLocationServiceAuthorization',
arguments: null,
),
],
);
});
test('checkConnectivity', () async {
final ConnectivityResult result =
await methodChannelConnectivity.checkConnectivity();
expect(result, ConnectivityResult.wifi);
expect(
log,
<Matcher>[
isMethodCall(
'check',
arguments: null,
),
],
);
});
});
}