@@ -18,6 +18,7 @@ import 'package:flutter_tools/src/ios/mac.dart';
18
18
import 'package:flutter_tools/src/macos/xcode.dart' ;
19
19
import 'package:flutter_tools/src/mdns_discovery.dart' ;
20
20
import 'package:flutter_tools/src/project.dart' ;
21
+ import 'package:flutter_tools/src/reporting/reporting.dart' ;
21
22
import 'package:mockito/mockito.dart' ;
22
23
import 'package:platform/platform.dart' ;
23
24
import 'package:process/process.dart' ;
@@ -36,6 +37,7 @@ class MockMDnsObservatoryDiscovery extends Mock implements MDnsObservatoryDiscov
36
37
class MockXcode extends Mock implements Xcode {}
37
38
class MockFile extends Mock implements File {}
38
39
class MockPortForwarder extends Mock implements DevicePortForwarder {}
40
+ class MockUsage extends Mock implements Usage {}
39
41
40
42
void main () {
41
43
final FakePlatform macPlatform = FakePlatform .fromPlatform (const LocalPlatform ());
@@ -74,6 +76,7 @@ void main() {
74
76
MockDeviceLogReader mockLogReader;
75
77
MockMDnsObservatoryDiscovery mockMDnsObservatoryDiscovery;
76
78
MockPortForwarder mockPortForwarder;
79
+ MockUsage mockUsage;
77
80
78
81
const int devicePort = 499 ;
79
82
const int hostPort = 42 ;
@@ -98,6 +101,7 @@ void main() {
98
101
mockProcessManager = MockProcessManager ();
99
102
mockLogReader = MockDeviceLogReader ();
100
103
mockPortForwarder = MockPortForwarder ();
104
+ mockUsage = MockUsage ();
101
105
102
106
when (
103
107
mockArtifacts.getArtifactPath (
@@ -154,6 +158,7 @@ void main() {
154
158
debuggingOptions: DebuggingOptions .enabled (const BuildInfo (BuildMode .debug, null )),
155
159
platformArgs: < String , dynamic > {},
156
160
);
161
+ verify (mockUsage.sendEvent ('ios-mdns' , 'success' )).called (1 );
157
162
expect (launchResult.started, isTrue);
158
163
expect (launchResult.hasObservatory, isTrue);
159
164
expect (await device.stopApp (mockApp), isFalse);
@@ -164,6 +169,7 @@ void main() {
164
169
MDnsObservatoryDiscovery : () => mockMDnsObservatoryDiscovery,
165
170
Platform : () => macPlatform,
166
171
ProcessManager : () => mockProcessManager,
172
+ Usage : () => mockUsage,
167
173
});
168
174
169
175
testUsingContext (' succeeds in debug mode when mDNS fails by falling back to manual protocol discovery' , () async {
@@ -183,6 +189,8 @@ void main() {
183
189
debuggingOptions: DebuggingOptions .enabled (const BuildInfo (BuildMode .debug, null )),
184
190
platformArgs: < String , dynamic > {},
185
191
);
192
+ verify (mockUsage.sendEvent ('ios-mdns' , 'failure' )).called (1 );
193
+ verify (mockUsage.sendEvent ('ios-mdns' , 'fallback-success' )).called (1 );
186
194
expect (launchResult.started, isTrue);
187
195
expect (launchResult.hasObservatory, isTrue);
188
196
expect (await device.stopApp (mockApp), isFalse);
@@ -193,6 +201,7 @@ void main() {
193
201
MDnsObservatoryDiscovery : () => mockMDnsObservatoryDiscovery,
194
202
Platform : () => macPlatform,
195
203
ProcessManager : () => mockProcessManager,
204
+ Usage : () => mockUsage,
196
205
});
197
206
198
207
testUsingContext (' fails in debug mode when mDNS fails and when Observatory URI is malformed' , () async {
@@ -213,6 +222,8 @@ void main() {
213
222
debuggingOptions: DebuggingOptions .enabled (const BuildInfo (BuildMode .debug, null )),
214
223
platformArgs: < String , dynamic > {},
215
224
);
225
+ verify (mockUsage.sendEvent ('ios-mdns' , 'failure' )).called (1 );
226
+ verify (mockUsage.sendEvent ('ios-mdns' , 'fallback-failure' )).called (1 );
216
227
expect (launchResult.started, isFalse);
217
228
expect (launchResult.hasObservatory, isFalse);
218
229
}, overrides: < Type , Generator > {
@@ -222,6 +233,7 @@ void main() {
222
233
MDnsObservatoryDiscovery : () => mockMDnsObservatoryDiscovery,
223
234
Platform : () => macPlatform,
224
235
ProcessManager : () => mockProcessManager,
236
+ Usage : () => mockUsage,
225
237
});
226
238
227
239
testUsingContext (' succeeds in release mode' , () async {
0 commit comments