From da3cb9701e4672281c8de766803dda8f4c4eabf4 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 20:20:40 +0300 Subject: [PATCH 01/14] (battery_plus): remove manual linux endorsment --- .../battery_plus/lib/battery_plus.dart | 19 ------------------- .../lib/src/battery_plus_linux_real.dart | 5 +++++ .../battery_plus_linux/pubspec.yaml | 1 + 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/packages/battery_plus/battery_plus/lib/battery_plus.dart b/packages/battery_plus/battery_plus/lib/battery_plus.dart index 9da12b7474..73359ccf08 100644 --- a/packages/battery_plus/battery_plus/lib/battery_plus.dart +++ b/packages/battery_plus/battery_plus/lib/battery_plus.dart @@ -3,12 +3,8 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; -import 'package:flutter/foundation.dart' show kIsWeb; import 'package:battery_plus_platform_interface/battery_plus_platform_interface.dart'; -import 'package:battery_plus_platform_interface/method_channel_battery_plus.dart'; -import 'package:battery_plus_linux/battery_plus_linux.dart'; // Export enums from the platform_interface so plugin users can use them directly. export 'package:battery_plus_platform_interface/battery_plus_platform_interface.dart' @@ -31,22 +27,7 @@ class Battery { static Battery? _singleton; - static bool _manualDartRegistrationNeeded = true; - static BatteryPlatform get _platform { - // This is to manually endorse Dart implementations until automatic - // registration of Dart plugins is implemented. For details see - // https://github.com/flutter/flutter/issues/52267. - if (_manualDartRegistrationNeeded) { - // Only do the initial registration if it hasn't already been overridden - // with a non-default instance. - if (!kIsWeb && BatteryPlatform.instance is MethodChannelBattery) { - if (Platform.isLinux) { - BatteryPlatform.instance = BatteryPlusLinux(); - } - } - _manualDartRegistrationNeeded = false; - } return BatteryPlatform.instance; } diff --git a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart index 362f9be6c1..525908f2cc 100644 --- a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart +++ b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart @@ -26,6 +26,11 @@ typedef UPowerDeviceFactory = UPowerDevice Function(); /// The Linux implementation of BatteryPlatform. class BatteryPlusLinux extends BatteryPlatform { + /// Register this dart class as the platform implementation for linux + static void registerWith() { + BatteryPlatform.instance = BatteryPlusLinux(); + } + /// Returns the current battery level in percent. @override Future get batteryLevel { diff --git a/packages/battery_plus/battery_plus_linux/pubspec.yaml b/packages/battery_plus/battery_plus_linux/pubspec.yaml index bc50d334c8..909b5c29ee 100644 --- a/packages/battery_plus/battery_plus_linux/pubspec.yaml +++ b/packages/battery_plus/battery_plus_linux/pubspec.yaml @@ -22,6 +22,7 @@ dev_dependencies: flutter: plugin: + implements: battery_plus platforms: linux: dartPluginClass: BatteryLinux From 622dc76561d59f7ae0f9032909ee97801361beae Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 20:21:04 +0300 Subject: [PATCH 02/14] (connectivity_plus): remove manual linux ednorsment --- .../lib/connectivity_plus.dart | 20 ------------------- .../lib/src/connectivity_real.dart | 7 +++++++ .../connectivity_plus_linux/pubspec.yaml | 1 + 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/packages/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart b/packages/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart index c0dd5e573e..7e2ba98778 100644 --- a/packages/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart +++ b/packages/connectivity_plus/connectivity_plus/lib/connectivity_plus.dart @@ -3,12 +3,8 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; -import 'package:flutter/foundation.dart' show kIsWeb; import 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart'; -import 'package:connectivity_plus_platform_interface/method_channel_connectivity.dart'; -import 'package:connectivity_plus_linux/connectivity_plus_linux.dart'; // Export enums from the platform_interface so plugin users can use them directly. export 'package:connectivity_plus_platform_interface/connectivity_plus_platform_interface.dart' @@ -31,23 +27,7 @@ class Connectivity { static Connectivity? _singleton; - static bool _manualDartRegistrationNeeded = true; - - // This is to manually endorse Dart implementations until automatic - // registration of Dart plugins is implemented. For details see - // https://github.com/flutter/flutter/issues/52267. static ConnectivityPlatform get _platform { - if (_manualDartRegistrationNeeded) { - // Only do the initial registration if it hasn't already been overridden - // with a non-default instance. - if (!kIsWeb && - ConnectivityPlatform.instance is MethodChannelConnectivity) { - if (Platform.isLinux) { - ConnectivityPlatform.instance = ConnectivityLinux(); - } - } - _manualDartRegistrationNeeded = false; - } return ConnectivityPlatform.instance; } diff --git a/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart b/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart index e1e7505e3f..76baaee972 100644 --- a/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart +++ b/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart @@ -12,6 +12,13 @@ typedef NetworkManagerClientFactory = NetworkManagerClient Function(); /// The Linux implementation of ConnectivityPlatform. class ConnectivityLinux extends ConnectivityPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + ConnectivityPlatform.instance = ConnectivityLinux(); + } + // coverage:ignore-end: stops ignoring lines + /// Checks the connection status of the device. @override Future checkConnectivity() async { diff --git a/packages/connectivity_plus/connectivity_plus_linux/pubspec.yaml b/packages/connectivity_plus/connectivity_plus_linux/pubspec.yaml index ad1a82ea0e..615e2d1330 100644 --- a/packages/connectivity_plus/connectivity_plus_linux/pubspec.yaml +++ b/packages/connectivity_plus/connectivity_plus_linux/pubspec.yaml @@ -25,6 +25,7 @@ dev_dependencies: flutter: plugin: + implements: connectivity_plus platforms: linux: dartPluginClass: ConnectivityLinux From 8a6d9bfe17507dd3620cb592360d355ffee4217d Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:00:39 +0300 Subject: [PATCH 03/14] (battery_plus): ignore test coverage for registerWith --- .../battery_plus_linux/lib/src/battery_plus_linux_real.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart index 525908f2cc..f34d9b0665 100644 --- a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart +++ b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart @@ -27,9 +27,11 @@ typedef UPowerDeviceFactory = UPowerDevice Function(); /// The Linux implementation of BatteryPlatform. class BatteryPlusLinux extends BatteryPlatform { /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines static void registerWith() { BatteryPlatform.instance = BatteryPlusLinux(); } + // coverage:ignore-end: stops ignoring lines /// Returns the current battery level in percent. @override From 96846b57ef7f67e2f2113977fe1ca40fe4cf482e Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:15:26 +0300 Subject: [PATCH 04/14] (device_info): remove manual linux endorsment --- .../lib/device_info_plus.dart | 28 +------------------ .../lib/src/device_info.dart | 7 +++++ .../device_info_plus_linux/pubspec.yaml | 7 +++++ .../src/device_info_plus_windows_real.dart | 7 +++++ .../device_info_plus_windows/pubspec.yaml | 7 +++++ 5 files changed, 29 insertions(+), 27 deletions(-) diff --git a/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart b/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart index 4f0c918148..81ad1e8a27 100644 --- a/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart +++ b/packages/device_info_plus/device_info_plus/lib/device_info_plus.dart @@ -3,12 +3,8 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; -import 'package:flutter/foundation.dart' show kIsWeb, visibleForTesting; import 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart'; -import 'package:device_info_plus_linux/device_info_plus_linux.dart'; -import 'package:device_info_plus_windows/device_info_plus_windows.dart'; export 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart' show AndroidBuildVersion, @@ -26,33 +22,11 @@ class DeviceInfoPlugin { /// repeatedly or in performance-sensitive blocks. DeviceInfoPlugin(); - /// Disables the platform override in order to use a manually registered - /// [DeviceInfoPlatform] for testing purposes. - /// See https://github.com/flutter/flutter/issues/52267 for more details. - @visibleForTesting - static set disableDeviceInfoPlatformOverride(bool override) { - _disablePlatformOverride = override; - } - - static bool _disablePlatformOverride = false; - static DeviceInfoPlatform? __platform; - // This is to manually endorse the Linux plugin until automatic registration // of dart plugins is implemented. // See https://github.com/flutter/flutter/issues/52267 for more details. static DeviceInfoPlatform get _platform { - if (__platform == null) { - if (!_disablePlatformOverride && !kIsWeb) { - if (Platform.isLinux) { - __platform = DeviceInfoLinux(); - } else if (Platform.isWindows) { - __platform = DeviceInfoWindows(); - } - } - __platform ??= DeviceInfoPlatform.instance; - } - - return __platform!; + return DeviceInfoPlatform.instance; } /// This information does not change from call to call. Cache it. diff --git a/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart b/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart index 0ba800e137..586def173b 100644 --- a/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart +++ b/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart @@ -7,6 +7,13 @@ import 'package:meta/meta.dart'; /// See [DeviceInfoPlatform] class DeviceInfoLinux extends DeviceInfoPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + DeviceInfoPlatform.instance = DeviceInfoLinux(); + } + // coverage:ignore-end: stops ignoring lines + LinuxDeviceInfo? _cache; final FileSystem _fileSystem; diff --git a/packages/device_info_plus/device_info_plus_linux/pubspec.yaml b/packages/device_info_plus/device_info_plus_linux/pubspec.yaml index 8f43e23732..476d51029a 100644 --- a/packages/device_info_plus/device_info_plus_linux/pubspec.yaml +++ b/packages/device_info_plus/device_info_plus_linux/pubspec.yaml @@ -19,3 +19,10 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^1.0.4 + +flutter: + plugin: + implements: device_info_plus + platforms: + linux: + dartPluginClass: DeviceInfoLinux \ No newline at end of file diff --git a/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart b/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart index 6d9c682c9b..442f57a255 100644 --- a/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart +++ b/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart @@ -9,6 +9,13 @@ import 'package:win32/win32.dart'; /// The Windows implementation of [DeviceInfoPlatform]. class DeviceInfoWindows extends DeviceInfoPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + DeviceInfoPlatform.instance = DeviceInfoWindows(); + } + // coverage:ignore-end: stops ignoring lines + /// Returns a [WindowsDeviceInfo] with information about the device. @override Future windowsInfo() { diff --git a/packages/device_info_plus/device_info_plus_windows/pubspec.yaml b/packages/device_info_plus/device_info_plus_windows/pubspec.yaml index f89222a19d..1188f0950d 100644 --- a/packages/device_info_plus/device_info_plus_windows/pubspec.yaml +++ b/packages/device_info_plus/device_info_plus_windows/pubspec.yaml @@ -18,3 +18,10 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + +flutter: + plugin: + implements: device_info_plus + platforms: + windows: + dartPluginClass: DeviceInfoWindows \ No newline at end of file From ab70d5c98a81332baf82dfc77c10af39a836aac0 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:27:37 +0300 Subject: [PATCH 05/14] (network_info): remove manual linux endorsement --- .../network_info_plus/lib/network_info_plus.dart | 12 ------------ .../lib/src/network_info_real.dart | 7 +++++++ .../network_info_plus_linux/pubspec.yaml | 1 + 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart b/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart index f77b5c1571..e8aeca2eea 100644 --- a/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart +++ b/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart @@ -32,22 +32,10 @@ class NetworkInfo { static NetworkInfo? _singleton; - static bool _manualDartRegistrationNeeded = true; - // This is to manually endorse Dart implementations until automatic // registration of Dart plugins is implemented. For details see // https://github.com/flutter/flutter/issues/52267. static NetworkInfoPlatform get _platform { - if (_manualDartRegistrationNeeded) { - // Only do the initial registration if it hasn't already been overridden - // with a non-default instance. - if (!kIsWeb && NetworkInfoPlatform.instance is MethodChannelNetworkInfo) { - if (Platform.isLinux) { - NetworkInfoPlatform.instance = NetworkInfoLinux(); - } - } - _manualDartRegistrationNeeded = false; - } return NetworkInfoPlatform.instance; } diff --git a/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart b/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart index 72e7a7e76f..8db10d0826 100644 --- a/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart +++ b/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart @@ -17,6 +17,13 @@ typedef NetworkManagerClientFactory = NetworkManagerClient Function(); /// The Linux implementation of NetworkInfoPlatform. class NetworkInfoLinux extends NetworkInfoPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + NetworkInfoPlatform.instance = NetworkInfoLinux(); + } + // coverage:ignore-end: stops ignoring lines + /// Obtains the wifi name (SSID) of the connected network @override Future getWifiName() { diff --git a/packages/network_info_plus/network_info_plus_linux/pubspec.yaml b/packages/network_info_plus/network_info_plus_linux/pubspec.yaml index a1a471f211..4539e02ce4 100644 --- a/packages/network_info_plus/network_info_plus_linux/pubspec.yaml +++ b/packages/network_info_plus/network_info_plus_linux/pubspec.yaml @@ -23,6 +23,7 @@ dev_dependencies: flutter: plugin: + implements: network_info_plus platforms: linux: dartPluginClass: NetworkInfoLinux From d67cb5cb4efcbd6a6d99d75a73cb2e7068e18aae Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:29:12 +0300 Subject: [PATCH 06/14] (package_info): remove manual linux endorsement --- .../lib/package_info_plus.dart | 35 ++----------------- .../test/package_info_test.dart | 4 --- .../lib/src/package_info.dart | 7 ++++ .../package_info_plus_linux/pubspec.yaml | 8 +++++ .../src/package_info_plus_windows_real.dart | 7 ++++ .../package_info_plus_windows/pubspec.yaml | 8 +++++ 6 files changed, 32 insertions(+), 37 deletions(-) diff --git a/packages/package_info_plus/package_info_plus/lib/package_info_plus.dart b/packages/package_info_plus/package_info_plus/lib/package_info_plus.dart index 369f95a3dc..9b11a3b5a6 100644 --- a/packages/package_info_plus/package_info_plus/lib/package_info_plus.dart +++ b/packages/package_info_plus/package_info_plus/lib/package_info_plus.dart @@ -3,12 +3,9 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; -import 'package:flutter/foundation.dart' show kIsWeb, visibleForTesting; -import 'package:package_info_plus_linux/package_info_plus_linux.dart'; +import 'package:flutter/foundation.dart' show visibleForTesting; import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart'; -import 'package:package_info_plus_windows/package_info_plus_windows.dart'; /// Application metadata. Provides application bundle information on iOS and /// application package information on Android. @@ -27,34 +24,6 @@ class PackageInfo { this.buildSignature = '', }); - /// Disables the platform override in order to use a manually registered - /// [PackageInfoPlatform] for testing purposes. - /// See https://github.com/flutter/flutter/issues/52267 for more details. - @visibleForTesting - static set disablePackageInfoPlatformOverride(bool override) { - _disablePlatformOverride = override; - } - - static bool _disablePlatformOverride = false; - static PackageInfoPlatform? __platform; - - // This is to manually endorse the Desktop plugins until automatic - // registration of Dart plugins is implemented. - // See https://github.com/flutter/flutter/issues/52267 for more details. - static PackageInfoPlatform get _platform { - if (__platform == null) { - if (!_disablePlatformOverride && !kIsWeb) { - if (Platform.isLinux) { - __platform = PackageInfoLinux(); - } else if (Platform.isWindows) { - __platform = PackageInfoWindows(); - } - } - __platform ??= PackageInfoPlatform.instance; - } - return __platform!; - } - static PackageInfo? _fromPlatform; /// Retrieves package information from the platform. @@ -64,7 +33,7 @@ class PackageInfo { return _fromPlatform!; } - final platformData = await _platform.getAll(); + final platformData = await PackageInfoPlatform.instance.getAll(); _fromPlatform = PackageInfo( appName: platformData.appName, packageName: platformData.packageName, diff --git a/packages/package_info_plus/package_info_plus/test/package_info_test.dart b/packages/package_info_plus/package_info_plus/test/package_info_test.dart index a23c434985..4d84db11ec 100644 --- a/packages/package_info_plus/package_info_plus/test/package_info_test.dart +++ b/packages/package_info_plus/package_info_plus/test/package_info_test.dart @@ -28,10 +28,6 @@ void main() { } }); - setUp(() { - PackageInfo.disablePackageInfoPlatformOverride = true; - }); - tearDown(() { log.clear(); }); diff --git a/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart b/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart index 2f9832cb83..be5c007fec 100644 --- a/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart +++ b/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart @@ -7,6 +7,13 @@ import 'package:path/path.dart' as path; /// The Linux implementation of [PackageInfoPlatform]. class PackageInfoLinux extends PackageInfoPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + PackageInfoPlatform.instance = PackageInfoLinux(); + } + // coverage:ignore-end: stops ignoring lines + /// Returns a map with the following keys: /// appName, packageName, version, buildNumber @override diff --git a/packages/package_info_plus/package_info_plus_linux/pubspec.yaml b/packages/package_info_plus/package_info_plus_linux/pubspec.yaml index 8c38b792a6..d5e4bb13ec 100644 --- a/packages/package_info_plus/package_info_plus_linux/pubspec.yaml +++ b/packages/package_info_plus/package_info_plus_linux/pubspec.yaml @@ -18,3 +18,11 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^1.0.4 + +flutter: + plugin: + implements: package_info_plus + platforms: + linux: + dartPluginClass: PackageInfoLinux + pluginClass: none \ No newline at end of file diff --git a/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart b/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart index 3a935eff61..067ad52dee 100644 --- a/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart +++ b/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart @@ -13,6 +13,13 @@ part 'file_version_info.dart'; /// The Windows implementation of [PackageInfoPlatform]. class PackageInfoWindows extends PackageInfoPlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + PackageInfoPlatform.instance = PackageInfoWindows(); + } + // coverage:ignore-end: stops ignoring lines + /// Returns a map with the following keys: /// appName, packageName, version, buildNumber @override diff --git a/packages/package_info_plus/package_info_plus_windows/pubspec.yaml b/packages/package_info_plus/package_info_plus_windows/pubspec.yaml index 7476f9b85a..6a91cf86ef 100644 --- a/packages/package_info_plus/package_info_plus_windows/pubspec.yaml +++ b/packages/package_info_plus/package_info_plus_windows/pubspec.yaml @@ -19,3 +19,11 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^1.0.4 + +flutter: + plugin: + implements: package_info_plus + platforms: + windows: + dartPluginClass: PackageInfoWindows + pluginClass: none \ No newline at end of file From f4695caf63587b71ecae493686fff60012a570b5 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:29:23 +0300 Subject: [PATCH 07/14] (share_plus): remove manual linux endorsement --- .../share_plus/share_plus/lib/share_plus.dart | 32 +------------------ .../lib/share_plus_linux.dart | 7 ++++ .../share_plus/share_plus_linux/pubspec.yaml | 8 +++++ .../lib/share_plus_windows.dart | 7 ++++ .../share_plus_windows/pubspec.yaml | 8 +++++ 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/share_plus/share_plus/lib/share_plus.dart b/packages/share_plus/share_plus/lib/share_plus.dart index 99776f7476..22973861c6 100644 --- a/packages/share_plus/share_plus/lib/share_plus.dart +++ b/packages/share_plus/share_plus/lib/share_plus.dart @@ -3,43 +3,13 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; import 'dart:ui'; -import 'package:flutter/foundation.dart' show kIsWeb, visibleForTesting; import 'package:share_plus_platform_interface/share_plus_platform_interface.dart'; -import 'package:share_plus_linux/share_plus_linux.dart'; -import 'package:share_plus_windows/share_plus_windows.dart'; /// Plugin for summoning a platform share sheet. class Share { - /// Disables the platform override in order to use a manually registered - /// [SharePlatform] for testing purposes. - /// See https://github.com/flutter/flutter/issues/52267 for more details. - @visibleForTesting - static set disableSharePlatformOverride(bool override) { - _disablePlatformOverride = override; - } - - static bool _disablePlatformOverride = false; - static SharePlatform? __platform; - - // This is to manually endorse the Linux plugin until automatic registration - // of dart plugins is implemented. - // See https://github.com/flutter/flutter/issues/52267 for more details. - static SharePlatform get _platform { - if (__platform == null) { - if (!_disablePlatformOverride && !kIsWeb) { - if (Platform.isLinux) { - __platform = ShareLinux(); - } else if (Platform.isWindows) { - __platform = ShareWindows(); - } - } - __platform ??= SharePlatform.instance; - } - return __platform!; - } + static SharePlatform get _platform => SharePlatform.instance; /// Summons the platform's share sheet to share text. /// diff --git a/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart b/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart index a011bf35f6..257ace983c 100644 --- a/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart +++ b/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart @@ -8,6 +8,13 @@ import 'package:url_launcher/url_launcher.dart'; /// The Linux implementation of SharePlatform. class ShareLinux extends SharePlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + SharePlatform.instance = ShareLinux(); + } + // coverage:ignore-end: stops ignoring lines + /// Share text. /// Throws a [PlatformException] if `mailto:` scheme cannot be handled. @override diff --git a/packages/share_plus/share_plus_linux/pubspec.yaml b/packages/share_plus/share_plus_linux/pubspec.yaml index 8fe597ca3b..a9164b1617 100644 --- a/packages/share_plus/share_plus_linux/pubspec.yaml +++ b/packages/share_plus/share_plus_linux/pubspec.yaml @@ -21,3 +21,11 @@ dev_dependencies: sdk: flutter flutter_lints: ^1.0.4 url_launcher_platform_interface: ^2.0.2 + +flutter: + plugin: + implements: share_plus + platforms: + linux: + dartPluginClass: ShareLinux + pluginClass: none \ No newline at end of file diff --git a/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart b/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart index ba7a1807cd..a96a9fee90 100644 --- a/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart +++ b/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart @@ -8,6 +8,13 @@ import 'package:share_plus_platform_interface/share_plus_platform_interface.dart /// The Windows implementation of SharePlatform. class ShareWindows extends SharePlatform { + /// Register this dart class as the platform implementation for linux + // coverage:ignore-start: starts ignoring all next lines + static void registerWith() { + SharePlatform.instance = ShareWindows(); + } + // coverage:ignore-end: stops ignoring lines + /// Share text. @override Future share( diff --git a/packages/share_plus/share_plus_windows/pubspec.yaml b/packages/share_plus/share_plus_windows/pubspec.yaml index 1fcdba4684..a441e11059 100644 --- a/packages/share_plus/share_plus_windows/pubspec.yaml +++ b/packages/share_plus/share_plus_windows/pubspec.yaml @@ -20,3 +20,11 @@ dev_dependencies: sdk: flutter flutter_lints: ^1.0.4 url_launcher_platform_interface: ^2.0.2 + +flutter: + plugin: + implements: share_plus + platforms: + windows: + dartPluginClass: ShareWindows + pluginClass: none \ No newline at end of file From 226809291117e8abf7c527451cf51ca1bf729435 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Thu, 21 Oct 2021 21:44:18 +0300 Subject: [PATCH 08/14] (network_info): remove unused imports --- .../network_info_plus/lib/network_info_plus.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart b/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart index e8aeca2eea..3719a6bd95 100644 --- a/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart +++ b/packages/network_info_plus/network_info_plus/lib/network_info_plus.dart @@ -3,13 +3,9 @@ // found in the LICENSE file. import 'dart:async'; -import 'dart:io' show Platform; import 'package:flutter/services.dart'; -import 'package:flutter/foundation.dart' show kIsWeb; import 'package:network_info_plus_platform_interface/network_info_plus_platform_interface.dart'; -import 'package:network_info_plus_platform_interface/method_channel_network_info.dart'; -import 'package:network_info_plus_linux/network_info_plus_linux.dart'; // Export enums from the platform_interface so plugin users can use them directly. export 'package:network_info_plus_platform_interface/network_info_plus_platform_interface.dart' From af7db2f0a759e15c0f1ad06d6016ff7b4b614b78 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:15:50 +0300 Subject: [PATCH 09/14] test(device_info): test platfrom registration --- .../device_info_plus_linux/lib/src/device_info.dart | 2 -- .../test/device_info_plus_linux_test.dart | 5 +++++ .../lib/src/device_info_plus_windows_real.dart | 2 -- .../test/device_info_plus_test.dart | 10 ++++++++++ 4 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 packages/device_info_plus/device_info_plus_windows/test/device_info_plus_test.dart diff --git a/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart b/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart index 586def173b..ab952e4e8c 100644 --- a/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart +++ b/packages/device_info_plus/device_info_plus_linux/lib/src/device_info.dart @@ -8,11 +8,9 @@ import 'package:meta/meta.dart'; /// See [DeviceInfoPlatform] class DeviceInfoLinux extends DeviceInfoPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { DeviceInfoPlatform.instance = DeviceInfoLinux(); } - // coverage:ignore-end: stops ignoring lines LinuxDeviceInfo? _cache; final FileSystem _fileSystem; diff --git a/packages/device_info_plus/device_info_plus_linux/test/device_info_plus_linux_test.dart b/packages/device_info_plus/device_info_plus_linux/test/device_info_plus_linux_test.dart index 1bb5754776..097a934400 100644 --- a/packages/device_info_plus/device_info_plus_linux/test/device_info_plus_linux_test.dart +++ b/packages/device_info_plus/device_info_plus_linux/test/device_info_plus_linux_test.dart @@ -1,8 +1,13 @@ import 'package:device_info_plus_linux/device_info_plus_linux.dart'; +import 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:file/memory.dart'; void main() { + test('registered instance', () { + DeviceInfoLinux.registerWith(); + expect(DeviceInfoPlatform.instance, isA()); + }); test('os-release', () async { final fs = MemoryFileSystem.test(); final file = fs.file('/etc/os-release')..createSync(recursive: true); diff --git a/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart b/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart index 442f57a255..94af98c355 100644 --- a/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart +++ b/packages/device_info_plus/device_info_plus_windows/lib/src/device_info_plus_windows_real.dart @@ -10,11 +10,9 @@ import 'package:win32/win32.dart'; /// The Windows implementation of [DeviceInfoPlatform]. class DeviceInfoWindows extends DeviceInfoPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { DeviceInfoPlatform.instance = DeviceInfoWindows(); } - // coverage:ignore-end: stops ignoring lines /// Returns a [WindowsDeviceInfo] with information about the device. @override diff --git a/packages/device_info_plus/device_info_plus_windows/test/device_info_plus_test.dart b/packages/device_info_plus/device_info_plus_windows/test/device_info_plus_test.dart new file mode 100644 index 0000000000..d82af99456 --- /dev/null +++ b/packages/device_info_plus/device_info_plus_windows/test/device_info_plus_test.dart @@ -0,0 +1,10 @@ +import 'package:device_info_plus_platform_interface/device_info_plus_platform_interface.dart'; +import 'package:device_info_plus_windows/src/device_info_plus_windows_real.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test('registered instance', () { + DeviceInfoWindows.registerWith(); + expect(DeviceInfoPlatform.instance, isA()); + }); +} From 1ecf81a6a9ae53decda6afbce6b293eb3208d51e Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:46:13 +0300 Subject: [PATCH 10/14] test(network_info): test platfrom registration --- .../lib/src/network_info_real.dart | 2 -- .../test/device_info_plus_linux_test.dart | 10 ++++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 packages/network_info_plus/network_info_plus_linux/test/device_info_plus_linux_test.dart diff --git a/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart b/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart index 8db10d0826..01169e736a 100644 --- a/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart +++ b/packages/network_info_plus/network_info_plus_linux/lib/src/network_info_real.dart @@ -18,11 +18,9 @@ typedef NetworkManagerClientFactory = NetworkManagerClient Function(); /// The Linux implementation of NetworkInfoPlatform. class NetworkInfoLinux extends NetworkInfoPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { NetworkInfoPlatform.instance = NetworkInfoLinux(); } - // coverage:ignore-end: stops ignoring lines /// Obtains the wifi name (SSID) of the connected network @override diff --git a/packages/network_info_plus/network_info_plus_linux/test/device_info_plus_linux_test.dart b/packages/network_info_plus/network_info_plus_linux/test/device_info_plus_linux_test.dart new file mode 100644 index 0000000000..96c9826065 --- /dev/null +++ b/packages/network_info_plus/network_info_plus_linux/test/device_info_plus_linux_test.dart @@ -0,0 +1,10 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_info_plus_linux/src/network_info_real.dart'; +import 'package:network_info_plus_platform_interface/network_info_plus_platform_interface.dart'; + +void main() { + test('registered instance', () { + NetworkInfoLinux.registerWith(); + expect(NetworkInfoPlatform.instance, isA()); + }); +} From e90a34a7492002effa816f52c011ae5de3197b3f Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:49:51 +0300 Subject: [PATCH 11/14] test(connectivity_plus): test platfrom registration --- .../connectivity_plus_linux/lib/src/connectivity_real.dart | 2 -- .../test/connectivity_plus_linux_test.dart | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart b/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart index 76baaee972..dd82ce640c 100644 --- a/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart +++ b/packages/connectivity_plus/connectivity_plus_linux/lib/src/connectivity_real.dart @@ -13,11 +13,9 @@ typedef NetworkManagerClientFactory = NetworkManagerClient Function(); /// The Linux implementation of ConnectivityPlatform. class ConnectivityLinux extends ConnectivityPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { ConnectivityPlatform.instance = ConnectivityLinux(); } - // coverage:ignore-end: stops ignoring lines /// Checks the connection status of the device. @override diff --git a/packages/connectivity_plus/connectivity_plus_linux/test/connectivity_plus_linux_test.dart b/packages/connectivity_plus/connectivity_plus_linux/test/connectivity_plus_linux_test.dart index 262831a148..647974b2e2 100644 --- a/packages/connectivity_plus/connectivity_plus_linux/test/connectivity_plus_linux_test.dart +++ b/packages/connectivity_plus/connectivity_plus_linux/test/connectivity_plus_linux_test.dart @@ -9,6 +9,10 @@ import 'connectivity_plus_linux_test.mocks.dart'; @GenerateMocks([NetworkManagerClient]) void main() { + test('registered instance', () { + ConnectivityLinux.registerWith(); + expect(ConnectivityPlatform.instance, isA()); + }); test('wireless', () async { final linux = ConnectivityLinux(); linux.createClient = () { From 0a6c89c520c10db6a7603a74c8f6ac3bf988ddbc Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:58:04 +0300 Subject: [PATCH 12/14] test(battery_plus): test platfrom registration --- .../battery_plus_linux/lib/src/battery_plus_linux_real.dart | 2 -- .../battery_plus_linux/test/battery_plus_linux_test.dart | 4 ++++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart index f34d9b0665..525908f2cc 100644 --- a/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart +++ b/packages/battery_plus/battery_plus_linux/lib/src/battery_plus_linux_real.dart @@ -27,11 +27,9 @@ typedef UPowerDeviceFactory = UPowerDevice Function(); /// The Linux implementation of BatteryPlatform. class BatteryPlusLinux extends BatteryPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { BatteryPlatform.instance = BatteryPlusLinux(); } - // coverage:ignore-end: stops ignoring lines /// Returns the current battery level in percent. @override diff --git a/packages/battery_plus/battery_plus_linux/test/battery_plus_linux_test.dart b/packages/battery_plus/battery_plus_linux/test/battery_plus_linux_test.dart index 0d416136d0..e3d448ba03 100644 --- a/packages/battery_plus/battery_plus_linux/test/battery_plus_linux_test.dart +++ b/packages/battery_plus/battery_plus_linux/test/battery_plus_linux_test.dart @@ -9,6 +9,10 @@ import 'package:dbus/src/dbus_value.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { + test('registered instance', () { + BatteryPlusLinux.registerWith(); + expect(BatteryPlatform.instance, isA()); + }); test('battery level', () async { final battery = BatteryPlusLinux(); battery.createDevice = () { From 1de895a35dfb8813bbabeb9e2594443d3c65f783 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:58:18 +0300 Subject: [PATCH 13/14] test(package_info): test platfrom registration --- .../package_info_plus_linux/lib/src/package_info.dart | 2 -- .../test/package_info_plus_linux_test.dart | 10 ++++++++++ .../lib/src/package_info_plus_windows_real.dart | 2 -- .../test/package_info_plus_windows_test.dart | 10 ++++++++++ 4 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 packages/package_info_plus/package_info_plus_linux/test/package_info_plus_linux_test.dart create mode 100644 packages/package_info_plus/package_info_plus_windows/test/package_info_plus_windows_test.dart diff --git a/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart b/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart index be5c007fec..b8164fbff7 100644 --- a/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart +++ b/packages/package_info_plus/package_info_plus_linux/lib/src/package_info.dart @@ -8,11 +8,9 @@ import 'package:path/path.dart' as path; /// The Linux implementation of [PackageInfoPlatform]. class PackageInfoLinux extends PackageInfoPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { PackageInfoPlatform.instance = PackageInfoLinux(); } - // coverage:ignore-end: stops ignoring lines /// Returns a map with the following keys: /// appName, packageName, version, buildNumber diff --git a/packages/package_info_plus/package_info_plus_linux/test/package_info_plus_linux_test.dart b/packages/package_info_plus/package_info_plus_linux/test/package_info_plus_linux_test.dart new file mode 100644 index 0000000000..c496908e60 --- /dev/null +++ b/packages/package_info_plus/package_info_plus_linux/test/package_info_plus_linux_test.dart @@ -0,0 +1,10 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:package_info_plus_linux/src/package_info.dart'; +import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart'; + +void main() { + test('registered instance', () { + PackageInfoLinux.registerWith(); + expect(PackageInfoPlatform.instance, isA()); + }); +} diff --git a/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart b/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart index 067ad52dee..b2a2ecd6b0 100644 --- a/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart +++ b/packages/package_info_plus/package_info_plus_windows/lib/src/package_info_plus_windows_real.dart @@ -14,11 +14,9 @@ part 'file_version_info.dart'; /// The Windows implementation of [PackageInfoPlatform]. class PackageInfoWindows extends PackageInfoPlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { PackageInfoPlatform.instance = PackageInfoWindows(); } - // coverage:ignore-end: stops ignoring lines /// Returns a map with the following keys: /// appName, packageName, version, buildNumber diff --git a/packages/package_info_plus/package_info_plus_windows/test/package_info_plus_windows_test.dart b/packages/package_info_plus/package_info_plus_windows/test/package_info_plus_windows_test.dart new file mode 100644 index 0000000000..e2b65a9a9f --- /dev/null +++ b/packages/package_info_plus/package_info_plus_windows/test/package_info_plus_windows_test.dart @@ -0,0 +1,10 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:package_info_plus_platform_interface/package_info_platform_interface.dart'; +import 'package:package_info_plus_windows/src/package_info_plus_windows_real.dart'; + +void main() { + test('registered instance', () { + PackageInfoWindows.registerWith(); + expect(PackageInfoPlatform.instance, isA()); + }); +} From 84897fa2d96ec15d303503bd3242e7131f3c4b74 Mon Sep 17 00:00:00 2001 From: pr_Mais Date: Fri, 22 Oct 2021 13:58:32 +0300 Subject: [PATCH 14/14] test(share_plus): test platfrom registration --- .../share_plus/share_plus_linux/lib/share_plus_linux.dart | 2 -- .../share_plus_linux/test/share_plus_linux_test.dart | 5 +++++ .../share_plus_windows/lib/share_plus_windows.dart | 2 -- .../share_plus_windows/test/share_plus_windows_test.dart | 5 +++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart b/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart index 257ace983c..dfab4e3354 100644 --- a/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart +++ b/packages/share_plus/share_plus_linux/lib/share_plus_linux.dart @@ -9,11 +9,9 @@ import 'package:url_launcher/url_launcher.dart'; /// The Linux implementation of SharePlatform. class ShareLinux extends SharePlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { SharePlatform.instance = ShareLinux(); } - // coverage:ignore-end: stops ignoring lines /// Share text. /// Throws a [PlatformException] if `mailto:` scheme cannot be handled. diff --git a/packages/share_plus/share_plus_linux/test/share_plus_linux_test.dart b/packages/share_plus/share_plus_linux/test/share_plus_linux_test.dart index aaf4529f2e..1b990673ed 100644 --- a/packages/share_plus/share_plus_linux/test/share_plus_linux_test.dart +++ b/packages/share_plus/share_plus_linux/test/share_plus_linux_test.dart @@ -1,9 +1,14 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:share_plus_linux/share_plus_linux.dart'; +import 'package:share_plus_platform_interface/share_plus_platform_interface.dart'; import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart'; import 'package:url_launcher_platform_interface/link.dart'; void main() { + test('registered instance', () { + ShareLinux.registerWith(); + expect(SharePlatform.instance, isA()); + }); test('url encoding is correct for &', () async { final mock = MockUrlLauncherPlatform(); UrlLauncherPlatform.instance = mock; diff --git a/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart b/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart index a96a9fee90..3d21607bcb 100644 --- a/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart +++ b/packages/share_plus/share_plus_windows/lib/share_plus_windows.dart @@ -9,11 +9,9 @@ import 'package:share_plus_platform_interface/share_plus_platform_interface.dart /// The Windows implementation of SharePlatform. class ShareWindows extends SharePlatform { /// Register this dart class as the platform implementation for linux - // coverage:ignore-start: starts ignoring all next lines static void registerWith() { SharePlatform.instance = ShareWindows(); } - // coverage:ignore-end: stops ignoring lines /// Share text. @override diff --git a/packages/share_plus/share_plus_windows/test/share_plus_windows_test.dart b/packages/share_plus/share_plus_windows/test/share_plus_windows_test.dart index 8f009fa02f..3618120d1f 100644 --- a/packages/share_plus/share_plus_windows/test/share_plus_windows_test.dart +++ b/packages/share_plus/share_plus_windows/test/share_plus_windows_test.dart @@ -1,9 +1,14 @@ import 'package:flutter_test/flutter_test.dart'; +import 'package:share_plus_platform_interface/share_plus_platform_interface.dart'; import 'package:share_plus_windows/share_plus_windows.dart'; import 'package:url_launcher_platform_interface/url_launcher_platform_interface.dart'; import 'package:url_launcher_platform_interface/link.dart'; void main() { + test('registered instance', () { + ShareWindows.registerWith(); + expect(SharePlatform.instance, isA()); + }); test('url encoding is correct for &', () async { final mock = MockUrlLauncherPlatform(); UrlLauncherPlatform.instance = mock;