From a341da6e0e05a390d45bbfc46f429e2992ecefa4 Mon Sep 17 00:00:00 2001 From: Jia Hao Date: Wed, 24 Feb 2021 09:06:04 +0800 Subject: [PATCH] [flutter_tools] Don't stringify null values in EventPrinter (#76579) --- .../lib/src/test/event_printer.dart | 2 +- .../test/event_printer_test.dart | 47 ++++++++++++++++--- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/packages/flutter_tools/lib/src/test/event_printer.dart b/packages/flutter_tools/lib/src/test/event_printer.dart index ca90f75dc8a..30ac915711f 100644 --- a/packages/flutter_tools/lib/src/test/event_printer.dart +++ b/packages/flutter_tools/lib/src/test/event_printer.dart @@ -22,7 +22,7 @@ class EventPrinter extends TestWatcher { @override void handleStartedDevice(Uri observatoryUri) { _sendEvent('test.startedProcess', - {'observatoryUri': observatoryUri.toString()}); + {'observatoryUri': observatoryUri?.toString()}); _parent?.handleStartedDevice(observatoryUri); } diff --git a/packages/flutter_tools/test/general.shard/test/event_printer_test.dart b/packages/flutter_tools/test/general.shard/test/event_printer_test.dart index 4d5af99aea1..37f6b4b6728 100644 --- a/packages/flutter_tools/test/general.shard/test/event_printer_test.dart +++ b/packages/flutter_tools/test/general.shard/test/event_printer_test.dart @@ -11,15 +11,48 @@ import 'package:mockito/mockito.dart'; import '../../src/common.dart'; void main() { - testWithoutContext('EventPrinter handles a null parent', () { - final EventPrinter eventPrinter = EventPrinter(out: StringBuffer()); - final _Device device = _Device(); + group(EventPrinter, () { final Uri observatoryUri = Uri.parse('http://localhost:1234'); + EventPrinter eventPrinter; + StringBuffer output; - expect(() => eventPrinter.handleFinishedTest(device), returnsNormally); - expect(() => eventPrinter.handleStartedDevice(observatoryUri), returnsNormally); - expect(() => eventPrinter.handleTestCrashed(device), returnsNormally); - expect(() => eventPrinter.handleTestTimedOut(device), returnsNormally); + setUp(() { + output = StringBuffer(); + eventPrinter = EventPrinter(out: output); + }); + + testWithoutContext('handles a null parent', () { + final _Device device = _Device(); + + expect(() => eventPrinter.handleFinishedTest(device), returnsNormally); + expect(() => eventPrinter.handleStartedDevice(observatoryUri), returnsNormally); + expect(() => eventPrinter.handleTestCrashed(device), returnsNormally); + expect(() => eventPrinter.handleTestTimedOut(device), returnsNormally); + }); + + group('handleStartedDevice', () { + testWithoutContext('with non-null observatory', () { + eventPrinter.handleStartedDevice(observatoryUri); + + expect( + output.toString(), + '\n' + '[{"event":"test.startedProcess","params":{"observatoryUri":"http://localhost:1234"}}]' + '\n', + ); + }); + + testWithoutContext('with null observatory', () { + eventPrinter.handleStartedDevice(null); + + expect( + output.toString(), + '\n' + '[{"event":"test.startedProcess","params":{"observatoryUri":null}}]' + '\n', + ); + }); + }); }); }