Add SemanticsEvent.toString for easier debugging (#12363)
This commit is contained in:
parent
f6fe8dc7e3
commit
affdab1a5a
@ -26,6 +26,16 @@ abstract class SemanticsEvent {
|
||||
/// Converts this event to a Map that can be encoded with
|
||||
/// [StandardMessageCodec].
|
||||
Map<String, dynamic> toMap();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
final List<String> pairs = <String>[];
|
||||
final Map<String, dynamic> map = toMap();
|
||||
final List<String> sortedKeys = map.keys.toList()..sort();
|
||||
for (String key in sortedKeys)
|
||||
pairs.add('$key: ${map[key]}');
|
||||
return '$runtimeType(${pairs.join(', ')})';
|
||||
}
|
||||
}
|
||||
|
||||
/// Notifies that a scroll action has been completed.
|
||||
|
44
packages/flutter/test/widgets/semantics_event_test.dart
Normal file
44
packages/flutter/test/widgets/semantics_event_test.dart
Normal file
@ -0,0 +1,44 @@
|
||||
// Copyright 2017 The Chromium 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/rendering.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
test('SemanticsEvent.toString', () {
|
||||
expect(
|
||||
new TestSemanticsEvent().toString(),
|
||||
'TestSemanticsEvent()',
|
||||
);
|
||||
expect(
|
||||
new TestSemanticsEvent(number: 10).toString(),
|
||||
'TestSemanticsEvent(number: 10)',
|
||||
);
|
||||
expect(
|
||||
new TestSemanticsEvent(text: 'hello').toString(),
|
||||
'TestSemanticsEvent(text: hello)',
|
||||
);
|
||||
expect(
|
||||
new TestSemanticsEvent(text: 'hello', number: 10).toString(),
|
||||
'TestSemanticsEvent(number: 10, text: hello)',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
class TestSemanticsEvent extends SemanticsEvent {
|
||||
TestSemanticsEvent({ this.text, this.number }) : super('TestEvent');
|
||||
|
||||
final String text;
|
||||
final int number;
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toMap() {
|
||||
final Map<String, dynamic> result = <String, dynamic>{};
|
||||
if (text != null)
|
||||
result['text'] = text;
|
||||
if (number != null)
|
||||
result['number'] = number;
|
||||
return result;
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user