[flutter_tools] ensure EventPrinter handles a null parent (#54918)

This commit is contained in:
Jonah Williams 2020-04-15 20:10:16 -07:00 committed by GitHub
parent 457972b757
commit ac20b614c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 3 deletions

View file

@ -24,17 +24,17 @@ class EventPrinter extends TestWatcher {
@override
Future<void> handleTestCrashed(ProcessEvent event) async {
return _parent.handleTestCrashed(event);
return _parent?.handleTestCrashed(event);
}
@override
Future<void> handleTestTimedOut(ProcessEvent event) async {
return _parent.handleTestTimedOut(event);
return _parent?.handleTestTimedOut(event);
}
@override
Future<void> handleFinishedTest(ProcessEvent event) async {
return _parent.handleFinishedTest(event);
return _parent?.handleFinishedTest(event);
}
void _sendEvent(String name, [ dynamic params ]) {

View file

@ -0,0 +1,21 @@
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_tools/src/test/event_printer.dart';
import 'package:flutter_tools/src/test/watcher.dart';
import '../../src/common.dart';
import '../../src/mocks.dart';
void main() {
testWithoutContext('EventPrinter handles a null parent', () {
final EventPrinter eventPrinter = EventPrinter(out: StringBuffer());
final ProcessEvent processEvent = ProcessEvent(0, FakeProcess());
expect(() => eventPrinter.handleFinishedTest(processEvent), returnsNormally);
expect(() => eventPrinter.handleStartedProcess(processEvent), returnsNormally);
expect(() => eventPrinter.handleTestCrashed(processEvent), returnsNormally);
expect(() => eventPrinter.handleTestTimedOut(processEvent), returnsNormally);
});
}