2
2
// Use of this source code is governed by a BSD-style license that can be
3
3
// found in the LICENSE file.
4
4
5
- // TODO(gspencergoog): Remove this tag once this test's state leaks/test
6
- // dependencies have been fixed.
7
- // https://github.com/flutter/flutter/issues/85160
8
- // Fails with "flutter test --test-randomize-ordering-seed=20210723"
9
- @Tags (< String > ['no-shuffle' ])
10
-
11
5
import 'dart:async' ;
12
6
13
7
import 'package:args/command_runner.dart' ;
@@ -17,6 +11,7 @@ import 'package:flutter_tools/src/android/android_studio_validator.dart';
17
11
import 'package:flutter_tools/src/android/android_workflow.dart' ;
18
12
import 'package:flutter_tools/src/base/file_system.dart' ;
19
13
import 'package:flutter_tools/src/base/logger.dart' ;
14
+ import 'package:flutter_tools/src/base/platform.dart' ;
20
15
import 'package:flutter_tools/src/base/terminal.dart' ;
21
16
import 'package:flutter_tools/src/base/user_messages.dart' ;
22
17
import 'package:flutter_tools/src/build_info.dart' ;
@@ -25,7 +20,6 @@ import 'package:flutter_tools/src/commands/doctor.dart';
25
20
import 'package:flutter_tools/src/device.dart' ;
26
21
import 'package:flutter_tools/src/doctor.dart' ;
27
22
import 'package:flutter_tools/src/doctor_validator.dart' ;
28
- import 'package:flutter_tools/src/features.dart' ;
29
23
import 'package:flutter_tools/src/globals.dart' as globals;
30
24
import 'package:flutter_tools/src/reporting/reporting.dart' ;
31
25
import 'package:flutter_tools/src/version.dart' ;
@@ -743,10 +737,15 @@ void main() {
743
737
});
744
738
745
739
testUsingContext ('WebWorkflow is a part of validator workflows if enabled' , () async {
746
- expect (DoctorValidatorsProvider .defaultInstance.workflows,
747
- contains (isA <WebWorkflow >()));
740
+ final List <Workflow > workflows = DoctorValidatorsProvider .test (
741
+ featureFlags: TestFeatureFlags (isWebEnabled: true ),
742
+ platform: FakePlatform (),
743
+ ).workflows;
744
+ expect (
745
+ workflows,
746
+ contains (isA <WebWorkflow >()),
747
+ );
748
748
}, overrides: < Type , Generator > {
749
- FeatureFlags : () => TestFeatureFlags (isWebEnabled: true ),
750
749
FileSystem : () => MemoryFileSystem .test (),
751
750
ProcessManager : () => fakeProcessManager,
752
751
});
@@ -769,13 +768,30 @@ void main() {
769
768
}, initializeFlutterRoot: false );
770
769
771
770
testUsingContext ('If android workflow is disabled, AndroidStudio validator is not included' , () {
772
- expect (DoctorValidatorsProvider .defaultInstance.validators, isNot (contains (isA <AndroidStudioValidator >())));
773
- expect (DoctorValidatorsProvider .defaultInstance.validators, isNot (contains (isA <NoAndroidStudioValidator >())));
771
+ final DoctorValidatorsProvider provider = DoctorValidatorsProvider .test (
772
+ featureFlags: TestFeatureFlags (isAndroidEnabled: false ),
773
+ );
774
+ expect (provider.validators, isNot (contains (isA <AndroidStudioValidator >())));
775
+ expect (provider.validators, isNot (contains (isA <NoAndroidStudioValidator >())));
774
776
}, overrides: < Type , Generator > {
775
- FeatureFlags : () => TestFeatureFlags (isAndroidEnabled : false ),
777
+ AndroidWorkflow : () => FakeAndroidWorkflow (appliesToHostPlatform : false ),
776
778
});
777
779
}
778
780
781
+ class FakeAndroidWorkflow extends Fake implements AndroidWorkflow {
782
+ FakeAndroidWorkflow ({
783
+ this .canListDevices = true ,
784
+ this .appliesToHostPlatform = true ,
785
+ });
786
+
787
+ @override
788
+ final bool canListDevices;
789
+
790
+ @override
791
+ final bool appliesToHostPlatform;
792
+ }
793
+
794
+
779
795
class NoOpDoctor implements Doctor {
780
796
@override
781
797
bool get canLaunchAnything => true ;
0 commit comments