@@ -21,7 +21,6 @@ import 'package:flutter_tools/src/device.dart';
21
21
import 'package:flutter_tools/src/doctor.dart' ;
22
22
import 'package:flutter_tools/src/doctor_validator.dart' ;
23
23
import 'package:flutter_tools/src/globals.dart' as globals;
24
- import 'package:flutter_tools/src/reporting/reporting.dart' ;
25
24
import 'package:flutter_tools/src/version.dart' ;
26
25
import 'package:flutter_tools/src/vscode/vscode.dart' ;
27
26
import 'package:flutter_tools/src/vscode/vscode_validator.dart' ;
@@ -205,85 +204,6 @@ void main() {
205
204
);
206
205
});
207
206
208
- group ('doctor usage params' , () {
209
- late TestUsage testUsage;
210
-
211
- setUp (() {
212
- testUsage = TestUsage ();
213
- });
214
-
215
- testUsingContext (
216
- 'contains installed' ,
217
- () async {
218
- final Doctor doctor = Doctor (logger: logger, clock: const SystemClock ());
219
- await doctor.diagnose (verbose: false );
220
-
221
- expect (testUsage.events.length, 3 );
222
- expect (
223
- testUsage.events,
224
- contains (const TestUsageEvent ('doctor-result' , 'PassingValidator' , label: 'installed' )),
225
- );
226
- },
227
- overrides: < Type , Generator > {
228
- DoctorValidatorsProvider : () => FakeDoctorValidatorsProvider (),
229
- Usage : () => testUsage,
230
- },
231
- );
232
-
233
- testUsingContext ('contains installed and partial' , () async {
234
- await FakePassingDoctor (logger).diagnose (verbose: false );
235
-
236
- expect (
237
- testUsage.events,
238
- unorderedEquals (< TestUsageEvent > [
239
- const TestUsageEvent ('doctor-result' , 'PassingValidator' , label: 'installed' ),
240
- const TestUsageEvent ('doctor-result' , 'PassingValidator' , label: 'installed' ),
241
- const TestUsageEvent ('doctor-result' , 'PartialValidatorWithHintsOnly' , label: 'partial' ),
242
- const TestUsageEvent ('doctor-result' , 'PartialValidatorWithErrors' , label: 'partial' ),
243
- ]),
244
- );
245
- }, overrides: < Type , Generator > {Usage : () => testUsage});
246
-
247
- testUsingContext ('contains installed, missing and partial' , () async {
248
- await FakeDoctor (logger).diagnose (verbose: false );
249
-
250
- expect (
251
- testUsage.events,
252
- unorderedEquals (< TestUsageEvent > [
253
- const TestUsageEvent ('doctor-result' , 'PassingValidator' , label: 'installed' ),
254
- const TestUsageEvent ('doctor-result' , 'MissingValidator' , label: 'missing' ),
255
- const TestUsageEvent ('doctor-result' , 'NotAvailableValidator' , label: 'notAvailable' ),
256
- const TestUsageEvent ('doctor-result' , 'PartialValidatorWithHintsOnly' , label: 'partial' ),
257
- const TestUsageEvent ('doctor-result' , 'PartialValidatorWithErrors' , label: 'partial' ),
258
- ]),
259
- );
260
- }, overrides: < Type , Generator > {Usage : () => testUsage});
261
-
262
- testUsingContext (
263
- 'events for grouped validators are properly decomposed' ,
264
- () async {
265
- await FakeGroupedDoctor (logger).diagnose (verbose: false );
266
-
267
- expect (
268
- testUsage.events,
269
- unorderedEquals (< TestUsageEvent > [
270
- const TestUsageEvent ('doctor-result' , 'PassingGroupedValidator' , label: 'installed' ),
271
- const TestUsageEvent ('doctor-result' , 'PassingGroupedValidator' , label: 'installed' ),
272
- const TestUsageEvent ('doctor-result' , 'PassingGroupedValidator' , label: 'installed' ),
273
- const TestUsageEvent ('doctor-result' , 'MissingGroupedValidator' , label: 'missing' ),
274
- ]),
275
- );
276
- },
277
- overrides: < Type , Generator > {Usage : () => testUsage},
278
- );
279
-
280
- testUsingContext ('sending events can be skipped' , () async {
281
- await FakePassingDoctor (logger).diagnose (verbose: false , sendEvent: false );
282
-
283
- expect (testUsage.events, isEmpty);
284
- }, overrides: < Type , Generator > {Usage : () => testUsage});
285
- });
286
-
287
207
group ('doctor with fake validators' , () {
288
208
testUsingContext (
289
209
'validate non-verbose output format for run without issues' ,
@@ -516,18 +436,24 @@ void main() {
516
436
});
517
437
518
438
group ('doctor diagnosis wrapper' , () {
519
- late TestUsage testUsage ;
439
+ late FakeAnalytics analytics ;
520
440
late BufferLogger logger;
521
441
522
442
setUp (() {
523
- testUsage = TestUsage ();
443
+ analytics = getInitializedFakeAnalyticsInstance (
444
+ fs: fs,
445
+ fakeFlutterVersion: FakeFlutterVersion (),
446
+ );
524
447
logger = BufferLogger .test ();
525
448
});
526
449
527
450
testUsingContext (
528
451
'PII separated, events only sent once' ,
529
452
() async {
530
- final Doctor fakeDoctor = FakePiiDoctor (logger);
453
+ final DateTime fakeDate = DateTime (1995 , 3 , 3 );
454
+ final SystemClock systemClock = SystemClock .fixed (fakeDate);
455
+
456
+ final Doctor fakeDoctor = FakePiiDoctor (logger, clock: systemClock);
531
457
final DoctorText doctorText = DoctorText (logger, doctor: fakeDoctor);
532
458
const String expectedPiiText =
533
459
'[✓] PII Validator [0ms]\n '
@@ -549,24 +475,25 @@ void main() {
549
475
expect (await doctorText.piiStrippedText, expectedPiiStrippedText);
550
476
551
477
// Only one event sent.
552
- expect (testUsage.events, < TestUsageEvent > [
553
- const TestUsageEvent ('doctor-result' , 'PiiValidator' , label: 'installed' ),
478
+ expect (analytics.sentEvents, < Event > [
479
+ Event .doctorValidatorResult (
480
+ validatorName: 'PII Validator' ,
481
+ result: 'installed' ,
482
+ partOfGroupedValidator: false ,
483
+ doctorInvocationId: systemClock.now ().millisecondsSinceEpoch,
484
+ ),
554
485
]);
555
486
},
556
- overrides: < Type , Generator > {AnsiTerminal : () => FakeTerminal (), Usage : () => testUsage },
487
+ overrides: < Type , Generator > {AnsiTerminal : () => FakeTerminal (), Analytics : () => analytics },
557
488
);
558
489
559
- testUsingContext (
560
- 'without PII has same text and PII-stripped text' ,
561
- () async {
562
- final Doctor fakeDoctor = FakePassingDoctor (logger);
563
- final DoctorText doctorText = DoctorText (logger, doctor: fakeDoctor);
564
- final String piiText = await doctorText.text;
565
- expect (piiText, isNotEmpty);
566
- expect (piiText, await doctorText.piiStrippedText);
567
- },
568
- overrides: < Type , Generator > {Usage : () => testUsage},
569
- );
490
+ testUsingContext ('without PII has same text and PII-stripped text' , () async {
491
+ final Doctor fakeDoctor = FakePassingDoctor (logger);
492
+ final DoctorText doctorText = DoctorText (logger, doctor: fakeDoctor);
493
+ final String piiText = await doctorText.text;
494
+ expect (piiText, isNotEmpty);
495
+ expect (piiText, await doctorText.piiStrippedText);
496
+ });
570
497
});
571
498
572
499
testUsingContext (
0 commit comments