semantics_event_test.dart 1.67 KB
Newer Older
1 2 3 4
// 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.

5
import 'package:flutter/semantics.dart';
6 7 8 9 10
import 'package:flutter_test/flutter_test.dart';

void main() {
  test('SemanticsEvent.toString', () {
    expect(
11
      TestSemanticsEvent().toString(),
12 13 14
      'TestSemanticsEvent()',
    );
    expect(
15
      TestSemanticsEvent(number: 10).toString(),
16 17 18
      'TestSemanticsEvent(number: 10)',
    );
    expect(
19
      TestSemanticsEvent(text: 'hello').toString(),
20 21 22
      'TestSemanticsEvent(text: hello)',
    );
    expect(
23
      TestSemanticsEvent(text: 'hello', number: 10).toString(),
24 25 26
      'TestSemanticsEvent(number: 10, text: hello)',
    );
  });
27 28
  test('SemanticsEvent.toMap', () {
    expect(
29
      TestSemanticsEvent(text: 'hi', number: 11).toMap(),
30
      <String, dynamic>{
31
        'type': 'TestEvent',
32
        'data': <String, dynamic>{
33
          'text': 'hi',
34 35 36
          'number': 11,
        },
      },
37 38
    );
    expect(
39
      TestSemanticsEvent(text: 'hi', number: 11).toMap(nodeId: 123),
40
      <String, dynamic>{
41 42
        'type': 'TestEvent',
        'nodeId': 123,
43
        'data': <String, dynamic>{
44
          'text': 'hi',
45 46 47
          'number': 11,
        },
      },
48 49
    );
  });
50 51 52 53 54 55 56 57 58
}

class TestSemanticsEvent extends SemanticsEvent {
  TestSemanticsEvent({ this.text, this.number }) : super('TestEvent');

  final String text;
  final int number;

  @override
59
  Map<String, dynamic> getDataMap() {
60 61 62 63 64 65 66 67
    final Map<String, dynamic> result = <String, dynamic>{};
    if (text != null)
      result['text'] = text;
    if (number != null)
      result['number'] = number;
    return result;
  }
}