button_tap_test.dart 1.27 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4 5
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter_driver/flutter_driver.dart';
6
import 'package:test/test.dart' hide TypeMatcher, isInstanceOf;
7 8 9

void main() {
  group('button tap test', () {
10
    late FlutterDriver driver;
11 12 13 14 15 16

    setUpAll(() async {
      driver = await FlutterDriver.connect();
    });

    tearDownAll(() async {
17
      driver.close();
18 19 20
    });

    test('tap on the button, verify result', () async {
21 22 23 24 25 26 27 28
      final SerializableFinder batteryLevelLabel =
          find.byValueKey('Battery level label');
      expect(batteryLevelLabel, isNotNull);

      final SerializableFinder button = find.text('Refresh');
      await driver.waitFor(button);
      await driver.tap(button);

29
      String? batteryLevel;
30 31 32 33
      while (batteryLevel == null || batteryLevel.contains('unknown')) {
        batteryLevel = await driver.getText(batteryLevelLabel);
      }

34 35 36 37 38
      // Allow either a battery percentage or "No battery" since it will vary
      // by device; either indicates that a known response came from the host
      // implementation.
      expect(batteryLevel.contains('%') || batteryLevel.contains('No battery'),
          isTrue);
39 40
    });
  });
41
}