// Copyright 2014 The Flutter 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_driver/driver_extension.dart'; void main() { enableFlutterDriverExtension(); runApp(const DriverTestApp()); } class DriverTestApp extends StatefulWidget { const DriverTestApp({super.key}); @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'), ), ElevatedButton( 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 }