blob: a2e1718516803bdf9ce0e3605c158e2af7ead85d [file] [log] [blame]
// 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(handler: (String message) async {
// TODO(cbernaschina) remove when test flakiness is resolved
return 'driver';
});
runApp(new DriverTestApp());
}
class DriverTestApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new DriverTestAppState();
}
}
class DriverTestAppState extends State<DriverTestApp> {
bool present = true;
Letter _selectedValue = Letter.a;
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: const Text('FlutterDriver test'),
),
body: new ListView(
padding: const EdgeInsets.all(5.0),
children: <Widget>[
new Row(
children: <Widget>[
new Expanded(
child: new Text(present ? 'present' : 'absent'),
),
new RaisedButton(
child: const Text(
'toggle',
key: const ValueKey<String>('togglePresent'),
),
onPressed: () {
setState(() {
present = !present;
});
},
),
],
),
new Row(
children: <Widget>[
const Expanded(
child: const Text('hit testability'),
),
new DropdownButton<Letter>(
key: const ValueKey<String>('dropdown'),
value: _selectedValue,
onChanged: (Letter newValue) {
setState(() {
_selectedValue = newValue;
});
},
items: const <DropdownMenuItem<Letter>>[
const DropdownMenuItem<Letter>(
value: Letter.a,
child: const Text('Aaa', key: const ValueKey<String>('a')),
),
const DropdownMenuItem<Letter>(
value: Letter.b,
child: const Text('Bbb', key: const ValueKey<String>('b')),
),
const DropdownMenuItem<Letter>(
value: Letter.c,
child: const Text('Ccc', key: const ValueKey<String>('c')),
),
],
),
],
),
const TextField(
key: const ValueKey<String>('enter-text-field'),
),
],
),
),
);
}
}
enum Letter { a, b, c }