semantics_event_test.dart 1.7 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 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
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)',
    );
  });
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
  test('SemanticsEvent.toMap', () {
    expect(
      new TestSemanticsEvent(text: 'hi', number: 11).toMap(),
      <String, dynamic> {
        'type': 'TestEvent',
        'data': <String, dynamic> {
          'text': 'hi',
          'number': 11
        }
      }
    );
    expect(
      new TestSemanticsEvent(text: 'hi', number: 11).toMap(nodeId: 123),
      <String, dynamic> {
        'type': 'TestEvent',
        'nodeId': 123,
        'data': <String, dynamic> {
          'text': 'hi',
          'number': 11
        }
      }
    );
  });
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;
  }
}