1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-10 14:58:34 +00:00

Flutter 3.29 beta (#2571)

This commit is contained in:
Eric Windmill
2025-02-12 18:08:01 -05:00
committed by GitHub
parent d62c784789
commit 719fd72c38
685 changed files with 76244 additions and 53721 deletions

View File

@@ -2,11 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:html' as html;
import 'package:federated_plugin_platform_interface/federated_plugin_platform_interface.dart';
import 'package:flutter/services.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
import 'package:web/web.dart' as html;
/// Web Implementation of [FederatedPluginInterface] to retrieve current battery
/// level of device.
@@ -15,7 +14,7 @@ class FederatedPlugin extends FederatedPluginInterface {
/// Constructor to override the navigator object for testing purpose.
FederatedPlugin({html.Navigator? navigator})
: _navigator = navigator ?? html.window.navigator;
: _navigator = navigator ?? html.window.navigator;
/// Method to register the plugin which sets [FederatedPlugin] to be the default
/// instance of [FederatedPluginInterface].
@@ -30,9 +29,9 @@ class FederatedPlugin extends FederatedPluginInterface {
@override
Future<int> getBatteryLevel() async {
try {
final battery = await _navigator.getBattery() as html.BatteryManager;
final battery = _navigator.getBattery() as html.BatteryManager;
// The battery level retrieved is in range of 0.0 to 1.0.
return battery.level! * 100 as int;
return battery.level * 100 as int;
} catch (error) {
throw PlatformException(
code: 'STATUS_UNAVAILABLE',

View File

@@ -4,7 +4,7 @@ version: 0.0.1
publish_to: none
environment:
sdk: ^3.5.0
sdk: ^3.7.0-0
dependencies:
flutter:
@@ -13,6 +13,7 @@ dependencies:
sdk: flutter
federated_plugin_platform_interface:
path: ../federated_plugin_platform_interface
web: ^1.1.0
dev_dependencies:
analysis_defaults:

View File

@@ -1,43 +0,0 @@
// Copyright 2020 The Flutter team. 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:html';
import 'package:federated_plugin_web/federated_plugin_web.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:mockito/mockito.dart';
const kBatteryLevel = 0.49;
class NavigatorMock extends Mock implements Navigator {}
class BatteryManagerMock extends Mock implements BatteryManager {
@override
num get level => kBatteryLevel;
}
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
group('FederatedPlugin test', () {
final navigatorMock = NavigatorMock();
setUp(() {
when(navigatorMock.getBattery())
.thenAnswer((realInvocation) async => BatteryManagerMock());
});
testWidgets('getBatteryLevel Method', (tester) async {
final federatedPlugin = FederatedPlugin(navigator: navigatorMock);
final batteryLevel = await federatedPlugin.getBatteryLevel();
// Verify that getBattery was called.
verify(navigatorMock.getBattery());
// Verify the battery level.
expect(batteryLevel, kBatteryLevel * 100);
});
});
}