[flutter_tools] remove mocks from features test (#77760)
diff --git a/packages/flutter_tools/test/general.shard/features_test.dart b/packages/flutter_tools/test/general.shard/features_test.dart
index d83ab92..f60da2e 100644
--- a/packages/flutter_tools/test/general.shard/features_test.dart
+++ b/packages/flutter_tools/test/general.shard/features_test.dart
@@ -7,35 +7,39 @@
import 'package:flutter_tools/src/base/config.dart';
import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/features.dart';
-import 'package:flutter_tools/src/version.dart';
-import 'package:mockito/mockito.dart';
import '../src/common.dart';
+import '../src/fakes.dart';
void main() {
group('Features', () {
- MockFlutterVerion mockFlutterVerion;
Config testConfig;
- MockPlatform mockPlatform;
+ FakePlatform platform;
FlutterFeatureFlags featureFlags;
setUp(() {
- mockFlutterVerion = MockFlutterVerion();
testConfig = Config.test();
- mockPlatform = MockPlatform();
- when(mockPlatform.environment).thenReturn(<String, String>{});
+ platform = FakePlatform(environment: <String, String>{});
for (final Feature feature in allFeatures) {
testConfig.setValue(feature.configSetting, false);
}
featureFlags = FlutterFeatureFlags(
- flutterVersion: mockFlutterVerion,
+ flutterVersion: FakeFlutterVersion(),
config: testConfig,
- platform: mockPlatform,
+ platform: platform,
);
});
+ FeatureFlags createFlags(String channel) {
+ return FlutterFeatureFlags(
+ flutterVersion: FakeFlutterVersion(channel: channel),
+ config: testConfig,
+ platform: platform,
+ );
+ }
+
testWithoutContext('setting has safe defaults', () {
const FeatureChannelSetting featureSetting = FeatureChannelSetting();
@@ -52,11 +56,11 @@
});
testWithoutContext('retrieves the correct setting for each branch', () {
- final FeatureChannelSetting masterSetting = FeatureChannelSetting(available: nonconst(true));
- final FeatureChannelSetting devSetting = FeatureChannelSetting(available: nonconst(true));
- final FeatureChannelSetting betaSetting = FeatureChannelSetting(available: nonconst(true));
- final FeatureChannelSetting stableSetting = FeatureChannelSetting(available: nonconst(true));
- final Feature feature = Feature(
+ const FeatureChannelSetting masterSetting = FeatureChannelSetting(available: true);
+ const FeatureChannelSetting devSetting = FeatureChannelSetting(available: true);
+ const FeatureChannelSetting betaSetting = FeatureChannelSetting(available: true);
+ const FeatureChannelSetting stableSetting = FeatureChannelSetting(available: true);
+ const Feature feature = Feature(
name: 'example',
master: masterSetting,
dev: devSetting,
@@ -72,11 +76,11 @@
});
testWithoutContext('env variables are only enabled with "true" string', () {
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'hello'});
+ platform.environment = <String, String>{'FLUTTER_WEB': 'hello'};
expect(featureFlags.isWebEnabled, false);
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'true'});
+ platform.environment = <String, String>{'FLUTTER_WEB': 'true'};
expect(featureFlags.isWebEnabled, true);
});
@@ -125,82 +129,82 @@
/// Flutter Web
testWithoutContext('Flutter web off by default on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
expect(featureFlags.isWebEnabled, false);
});
testWithoutContext('Flutter web enabled with config on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
testConfig.setValue('enable-web', true);
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web enabled with environment variable on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'true'});
+ final FeatureFlags featureFlags = createFlags('master');
+ platform.environment = <String, String>{'FLUTTER_WEB': 'true'};
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web off by default on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
expect(featureFlags.isWebEnabled, false);
});
testWithoutContext('Flutter web enabled with config on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
testConfig.setValue('enable-web', true);
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web enabled with environment variable on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'true'});
+ final FeatureFlags featureFlags = createFlags('dev');
+ platform.environment = <String, String>{'FLUTTER_WEB': 'true'};
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web off by default on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
expect(featureFlags.isWebEnabled, false);
});
testWithoutContext('Flutter web enabled with config on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
testConfig.setValue('enable-web', true);
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web not enabled with environment variable on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'true'});
+ final FeatureFlags featureFlags = createFlags('beta');
+ platform.environment = <String, String>{'FLUTTER_WEB': 'true'};
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web on by default on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.removeValue('enable-web');
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web enabled with config on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.setValue('enable-web', true);
expect(featureFlags.isWebEnabled, true);
});
testWithoutContext('Flutter web not enabled with environment variable on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WEB': 'enabled'});
+ final FeatureFlags featureFlags = createFlags('stable');
+ platform.environment = <String, String>{'FLUTTER_WEB': 'enabled'};
expect(featureFlags.isWebEnabled, false);
});
@@ -208,243 +212,243 @@
/// Flutter macOS desktop.
testWithoutContext('Flutter macos desktop off by default on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
expect(featureFlags.isMacOSEnabled, false);
});
testWithoutContext('Flutter macos desktop enabled with config on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
testConfig.setValue('enable-macos-desktop', true);
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop enabled with environment variable on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_MACOS': 'true'});
+ final FeatureFlags featureFlags = createFlags('master');
+ platform.environment = <String, String>{'FLUTTER_MACOS': 'true'};
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop off by default on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
expect(featureFlags.isMacOSEnabled, false);
});
testWithoutContext('Flutter macos desktop enabled with config on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
testConfig.setValue('enable-macos-desktop', true);
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop enabled with environment variable on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_MACOS': 'true'});
+ final FeatureFlags featureFlags = createFlags('dev');
+ platform.environment = <String, String>{'FLUTTER_MACOS': 'true'};
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop off by default on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
expect(featureFlags.isMacOSEnabled, false);
});
testWithoutContext('Flutter macos desktop enabled with config on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
testConfig.setValue('enable-macos-desktop', true);
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop enabled with environment variable on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_MACOS': 'true'});
+ final FeatureFlags featureFlags = createFlags('beta');
+ platform.environment = <String, String>{'FLUTTER_MACOS': 'true'};
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop off by default on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
expect(featureFlags.isMacOSEnabled, false);
});
testWithoutContext('Flutter macos desktop enabled with config on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.setValue('enable-macos-desktop', true);
expect(featureFlags.isMacOSEnabled, true);
});
testWithoutContext('Flutter macos desktop enabled with environment variable on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_MACOS': 'true'});
+ final FeatureFlags featureFlags = createFlags('stable');
+ platform.environment = <String, String>{'FLUTTER_MACOS': 'true'};
expect(featureFlags.isMacOSEnabled, true);
});
/// Flutter Linux Desktop
testWithoutContext('Flutter linux desktop off by default on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('stable');
expect(featureFlags.isLinuxEnabled, false);
});
testWithoutContext('Flutter linux desktop enabled with config on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
testConfig.setValue('enable-linux-desktop', true);
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop enabled with environment variable on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_LINUX': 'true'});
+ final FeatureFlags featureFlags = createFlags('master');
+ platform.environment = <String, String>{'FLUTTER_LINUX': 'true'};
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop off by default on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
expect(featureFlags.isLinuxEnabled, false);
});
testWithoutContext('Flutter linux desktop enabled with config on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
testConfig.setValue('enable-linux-desktop', true);
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop enabled with environment variable on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_LINUX': 'true'});
+ final FeatureFlags featureFlags = createFlags('dev');
+ platform.environment = <String, String>{'FLUTTER_LINUX': 'true'};
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop off by default on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
expect(featureFlags.isLinuxEnabled, false);
});
testWithoutContext('Flutter linux desktop enabled with config on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
testConfig.setValue('enable-linux-desktop', true);
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop enabled with environment variable on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_LINUX': 'true'});
+ final FeatureFlags featureFlags = createFlags('beta');
+ platform.environment = <String, String>{'FLUTTER_LINUX': 'true'};
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop off by default on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
expect(featureFlags.isLinuxEnabled, false);
});
testWithoutContext('Flutter linux desktop enabled with config on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.setValue('enable-linux-desktop', true);
expect(featureFlags.isLinuxEnabled, true);
});
testWithoutContext('Flutter linux desktop enabled with environment variable on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_LINUX': 'true'});
+ final FeatureFlags featureFlags = createFlags('stable');
+ platform.environment = <String, String>{'FLUTTER_LINUX': 'true'};
expect(featureFlags.isLinuxEnabled, true);
});
/// Flutter Windows desktop.
testWithoutContext('Flutter Windows desktop off by default on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
expect(featureFlags.isWindowsEnabled, false);
});
testWithoutContext('Flutter Windows desktop enabled with config on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
testConfig.setValue('enable-windows-desktop', true);
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop enabled with environment variable on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WINDOWS': 'true'});
+ final FeatureFlags featureFlags = createFlags('master');
+ platform.environment = <String, String>{'FLUTTER_WINDOWS': 'true'};
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop off by default on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
expect(featureFlags.isWindowsEnabled, false);
});
testWithoutContext('Flutter Windows desktop enabled with config on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
+ final FeatureFlags featureFlags = createFlags('dev');
testConfig.setValue('enable-windows-desktop', true);
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop not enabled with environment variable on dev', () {
- when(mockFlutterVerion.channel).thenReturn('dev');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WINDOWS': 'true'});
+ final FeatureFlags featureFlags = createFlags('dev');
+ platform.environment = <String, String>{'FLUTTER_WINDOWS': 'true'};
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop off by default on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
expect(featureFlags.isWindowsEnabled, false);
});
testWithoutContext('Flutter Windows desktop enabled with config on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
+ final FeatureFlags featureFlags = createFlags('beta');
testConfig.setValue('enable-windows-desktop', true);
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop enabled with environment variable on beta', () {
- when(mockFlutterVerion.channel).thenReturn('beta');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WINDOWS': 'true'});
+ final FeatureFlags featureFlags = createFlags('beta');
+ platform.environment = <String, String>{'FLUTTER_WINDOWS': 'true'};
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop off by default on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
expect(featureFlags.isWindowsEnabled, false);
});
testWithoutContext('Flutter Windows desktop enabled with config on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.setValue('enable-windows-desktop', true);
expect(featureFlags.isWindowsEnabled, true);
});
testWithoutContext('Flutter Windows desktop enabled with environment variable on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
- when(mockPlatform.environment).thenReturn(<String, String>{'FLUTTER_WINDOWS': 'true'});
+ final FeatureFlags featureFlags = createFlags('stable');
+ platform.environment = <String, String>{'FLUTTER_WINDOWS': 'true'};
expect(featureFlags.isWindowsEnabled, true);
});
@@ -452,34 +456,29 @@
// Windows UWP desktop
testWithoutContext('Flutter Windows UWP desktop off by default on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
expect(featureFlags.isWindowsUwpEnabled, false);
});
testWithoutContext('Flutter Windows UWP desktop enabled with config on master', () {
- when(mockFlutterVerion.channel).thenReturn('master');
+ final FeatureFlags featureFlags = createFlags('master');
testConfig.setValue('enable-windows-uwp-desktop', true);
expect(featureFlags.isWindowsUwpEnabled, true);
});
testWithoutContext('Flutter Windows UWP desktop off by default on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
expect(featureFlags.isWindowsUwpEnabled, false);
});
testWithoutContext('Flutter Windows UWP desktop not enabled with config on stable', () {
- when(mockFlutterVerion.channel).thenReturn('stable');
+ final FeatureFlags featureFlags = createFlags('stable');
testConfig.setValue('enable-windows-uwp-desktop', true);
expect(featureFlags.isWindowsUwpEnabled, false);
});
});
}
-
-class MockFlutterVerion extends Mock implements FlutterVersion {}
-class MockPlatform extends Mock implements Platform {}
-
-T nonconst<T>(T item) => item;