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
|
/// Converts this event to a Map that can be encoded with
|
||||||
/// [StandardMessageCodec].
|
/// [StandardMessageCodec].
|
||||||
Map<String, dynamic> toMap();
|
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.
|
/// 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