44
55import 'dart:async' ;
66
7+ import 'package:file/memory.dart' ;
8+ import 'package:flutter_tools/src/base/platform.dart' ;
79import 'package:flutter_tools/src/cache.dart' ;
810import 'package:flutter_tools/src/debug_adapters/flutter_adapter_args.dart' ;
9- import 'package:flutter_tools/src/globals.dart' as globals;
11+ import 'package:flutter_tools/src/globals.dart' as globals show platform ;
1012import 'package:test/fake.dart' ;
1113import 'package:test/test.dart' ;
1214import 'package:vm_service/vm_service.dart' ;
1315
1416import 'mocks.dart' ;
1517
1618void main () {
19+ // Use the real platform as a base so that Windows bots test paths.
20+ final FakePlatform platform = FakePlatform .fromPlatform (globals.platform);
21+ final FileSystemStyle fsStyle = platform.isWindows ? FileSystemStyle .windows : FileSystemStyle .posix;
22+
1723 group ('flutter adapter' , () {
18- final String expectedFlutterExecutable = globals. platform.isWindows
24+ final String expectedFlutterExecutable = platform.isWindows
1925 ? r'C:\fake\flutter\bin\flutter.bat'
2026 : '/fake/flutter/bin/flutter' ;
2127
2228 setUpAll (() {
23- Cache .flutterRoot = globals. platform.isWindows
29+ Cache .flutterRoot = platform.isWindows
2430 ? r'C:\fake\flutter'
2531 : '/fake/flutter' ;
2632 });
2733
28-
29- group ('launchRequest' , () {
30- test ('runs "flutter run" with --machine' , () async {
31- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
34+ group ('launchRequest' , () {
35+ test ('runs "flutter run" with --machine' , () async {
36+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
37+ fileSystem: MemoryFileSystem .test (style: fsStyle),
38+ platform: platform,
39+ );
3240 final Completer <void > responseCompleter = Completer <void >();
3341
3442 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -43,8 +51,33 @@ void main() {
4351 expect (adapter.processArgs, containsAllInOrder (< String > ['run' , '--machine' ]));
4452 });
4553
54+ test ('includes env variables' , () async {
55+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
56+ fileSystem: MemoryFileSystem .test (style: fsStyle),
57+ platform: platform,
58+ );
59+ final Completer <void > responseCompleter = Completer <void >();
60+
61+ final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
62+ cwd: '/project' ,
63+ program: 'foo.dart' ,
64+ env: < String , String > {
65+ 'MY_TEST_ENV' : 'MY_TEST_VALUE' ,
66+ },
67+ );
68+
69+ await adapter.configurationDoneRequest (MockRequest (), null , () {});
70+ await adapter.launchRequest (MockRequest (), args, responseCompleter.complete);
71+ await responseCompleter.future;
72+
73+ expect (adapter.env! ['MY_TEST_ENV' ], 'MY_TEST_VALUE' );
74+ });
75+
4676 test ('does not record the VMs PID for terminating' , () async {
47- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
77+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
78+ fileSystem: MemoryFileSystem .test (style: fsStyle),
79+ platform: platform,
80+ );
4881 final Completer <void > responseCompleter = Completer <void >();
4982
5083 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -65,10 +98,12 @@ void main() {
6598 });
6699 });
67100
68-
69- group ('attachRequest' , () {
70- test ('runs "flutter attach" with --machine' , () async {
71- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
101+ group ('attachRequest' , () {
102+ test ('runs "flutter attach" with --machine' , () async {
103+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
104+ fileSystem: MemoryFileSystem .test (style: fsStyle),
105+ platform: platform,
106+ );
72107 final Completer <void > responseCompleter = Completer <void >();
73108
74109 final FlutterAttachRequestArguments args = FlutterAttachRequestArguments (
@@ -83,7 +118,10 @@ void main() {
83118 });
84119
85120 test ('does not record the VMs PID for terminating' , () async {
86- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
121+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
122+ fileSystem: MemoryFileSystem .test (style: fsStyle),
123+ platform: platform,
124+ );
87125 final Completer <void > responseCompleter = Completer <void >();
88126
89127 final FlutterAttachRequestArguments args = FlutterAttachRequestArguments (
@@ -105,7 +143,10 @@ void main() {
105143
106144 group ('--start-paused' , () {
107145 test ('is passed for debug mode' , () async {
108- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
146+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
147+ fileSystem: MemoryFileSystem .test (style: fsStyle),
148+ platform: platform,
149+ );
109150 final Completer <void > responseCompleter = Completer <void >();
110151
111152 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -121,7 +162,10 @@ void main() {
121162 });
122163
123164 test ('is not passed for noDebug mode' , () async {
124- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
165+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
166+ fileSystem: MemoryFileSystem .test (style: fsStyle),
167+ platform: platform,
168+ );
125169 final Completer <void > responseCompleter = Completer <void >();
126170
127171 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -138,7 +182,10 @@ void main() {
138182 });
139183
140184 test ('is not passed if toolArgs contains --profile' , () async {
141- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
185+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
186+ fileSystem: MemoryFileSystem .test (style: fsStyle),
187+ platform: platform,
188+ );
142189 final Completer <void > responseCompleter = Completer <void >();
143190
144191 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -155,7 +202,10 @@ void main() {
155202 });
156203
157204 test ('is not passed if toolArgs contains --release' , () async {
158- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
205+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
206+ fileSystem: MemoryFileSystem .test (style: fsStyle),
207+ platform: platform,
208+ );
159209 final Completer <void > responseCompleter = Completer <void >();
160210
161211 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -173,7 +223,10 @@ void main() {
173223 });
174224
175225 test ('includes toolArgs' , () async {
176- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
226+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
227+ fileSystem: MemoryFileSystem .test (style: fsStyle),
228+ platform: platform,
229+ );
177230 final Completer <void > responseCompleter = Completer <void >();
178231
179232 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
@@ -193,7 +246,10 @@ void main() {
193246
194247 group ('includes customTool' , () {
195248 test ('with no args replaced' , () async {
196- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
249+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
250+ fileSystem: MemoryFileSystem .test (style: fsStyle),
251+ platform: platform,
252+ );
197253 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
198254 cwd: '/project' ,
199255 program: 'foo.dart' ,
@@ -212,7 +268,10 @@ void main() {
212268 });
213269
214270 test ('with all args replaced' , () async {
215- final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (fileSystem: globals.fs, platform: globals.platform);
271+ final MockFlutterDebugAdapter adapter = MockFlutterDebugAdapter (
272+ fileSystem: MemoryFileSystem .test (style: fsStyle),
273+ platform: platform,
274+ );
216275 final FlutterLaunchRequestArguments args = FlutterLaunchRequestArguments (
217276 cwd: '/project' ,
218277 program: 'foo.dart' ,
0 commit comments