54 lines
1.7 KiB
Dart
54 lines
1.7 KiB
Dart
// 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/semantics.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
test('SemanticsEvent.toString', () {
|
|
expect(TestSemanticsEvent().toString(), 'TestSemanticsEvent()');
|
|
expect(TestSemanticsEvent(number: 10).toString(), 'TestSemanticsEvent(number: 10)');
|
|
expect(TestSemanticsEvent(text: 'hello').toString(), 'TestSemanticsEvent(text: hello)');
|
|
expect(
|
|
TestSemanticsEvent(text: 'hello', number: 10).toString(),
|
|
'TestSemanticsEvent(number: 10, text: hello)',
|
|
);
|
|
});
|
|
test('SemanticsEvent.toMap', () {
|
|
expect(TestSemanticsEvent(text: 'hi', number: 11).toMap(), <String, dynamic>{
|
|
'type': 'TestEvent',
|
|
'data': <String, dynamic>{'text': 'hi', 'number': 11},
|
|
});
|
|
expect(TestSemanticsEvent(text: 'hi', number: 11).toMap(nodeId: 123), <String, dynamic>{
|
|
'type': 'TestEvent',
|
|
'nodeId': 123,
|
|
'data': <String, dynamic>{'text': 'hi', 'number': 11},
|
|
});
|
|
});
|
|
test('FocusSemanticEvent.toMap', () {
|
|
expect(const FocusSemanticEvent().toMap(), <String, dynamic>{
|
|
'type': 'focus',
|
|
'data': <String, dynamic>{},
|
|
});
|
|
});
|
|
}
|
|
|
|
class TestSemanticsEvent extends SemanticsEvent {
|
|
TestSemanticsEvent({this.text, this.number}) : super('TestEvent');
|
|
|
|
final String? text;
|
|
final int? number;
|
|
|
|
@override
|
|
Map<String, dynamic> getDataMap() {
|
|
final result = <String, dynamic>{};
|
|
if (text != null) {
|
|
result['text'] = text;
|
|
}
|
|
if (number != null) {
|
|
result['number'] = number;
|
|
}
|
|
return result;
|
|
}
|
|
}
|