1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// 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.
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_driver/driver_extension.dart';
void main() {
enableFlutterDriverExtension();
runApp(DriverTestApp());
}
class DriverTestApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return DriverTestAppState();
}
}
class DriverTestAppState extends State<DriverTestApp> {
bool present = true;
Letter _selectedValue = Letter.a;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('FlutterDriver test'),
),
body: ListView(
padding: const EdgeInsets.all(5.0),
children: <Widget>[
Row(
children: <Widget>[
Expanded(
child: Text(present ? 'present' : 'absent'),
),
RaisedButton(
child: const Text(
'toggle',
key: ValueKey<String>('togglePresent'),
),
onPressed: () {
setState(() {
present = !present;
});
},
),
],
),
Row(
children: <Widget>[
const Expanded(
child: Text('hit testability'),
),
DropdownButton<Letter>(
key: const ValueKey<String>('dropdown'),
value: _selectedValue,
onChanged: (Letter newValue) {
setState(() {
_selectedValue = newValue;
});
},
items: const <DropdownMenuItem<Letter>>[
DropdownMenuItem<Letter>(
value: Letter.a,
child: Text('Aaa', key: ValueKey<String>('a')),
),
DropdownMenuItem<Letter>(
value: Letter.b,
child: Text('Bbb', key: ValueKey<String>('b')),
),
DropdownMenuItem<Letter>(
value: Letter.c,
child: Text('Ccc', key: ValueKey<String>('c')),
),
],
),
],
),
const TextField(
key: ValueKey<String>('enter-text-field'),
),
],
),
),
);
}
}
enum Letter { a, b, c }