// 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(), { 'type': 'TestEvent', 'data': {'text': 'hi', 'number': 11}, }); expect(TestSemanticsEvent(text: 'hi', number: 11).toMap(nodeId: 123), { 'type': 'TestEvent', 'nodeId': 123, 'data': {'text': 'hi', 'number': 11}, }); }); test('FocusSemanticEvent.toMap', () { expect(const FocusSemanticEvent().toMap(), { 'type': 'focus', 'data': {}, }); }); } class TestSemanticsEvent extends SemanticsEvent { TestSemanticsEvent({this.text, this.number}) : super('TestEvent'); final String? text; final int? number; @override Map getDataMap() { final result = {}; if (text != null) { result['text'] = text; } if (number != null) { result['number'] = number; } return result; } }