From bc0134d3d64fc1e0743cb74dfbc14339142442a8 Mon Sep 17 00:00:00 2001 From: chunhtai <47866232+chunhtai@users.noreply.github.com> Date: Mon, 10 Jun 2024 12:58:58 -0700 Subject: [PATCH] Fixes TextField hinttext in a11y_assessment (#150007) b/317131589 --- .../lib/use_cases/text_field.dart | 2 ++ .../lib/use_cases/text_field_password.dart | 2 -- .../test/text_field_password_test.dart | 20 ++++++++++++++++ .../test/text_field_test.dart | 24 +++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/dev/a11y_assessments/lib/use_cases/text_field.dart b/dev/a11y_assessments/lib/use_cases/text_field.dart index 210163f444..f19fd7c69b 100644 --- a/dev/a11y_assessments/lib/use_cases/text_field.dart +++ b/dev/a11y_assessments/lib/use_cases/text_field.dart @@ -32,6 +32,7 @@ class _MainWidget extends StatelessWidget { children: [ const TextField( key: Key('enabled text field'), + maxLines: null, decoration: InputDecoration( labelText: 'Email', suffixText: '@gmail.com', @@ -40,6 +41,7 @@ class _MainWidget extends StatelessWidget { ), TextField( key: const Key('disabled text field'), + maxLines: null, decoration: const InputDecoration( labelText: 'Email', suffixText: '@gmail.com', diff --git a/dev/a11y_assessments/lib/use_cases/text_field_password.dart b/dev/a11y_assessments/lib/use_cases/text_field_password.dart index a960e5d85c..513604cc5e 100644 --- a/dev/a11y_assessments/lib/use_cases/text_field_password.dart +++ b/dev/a11y_assessments/lib/use_cases/text_field_password.dart @@ -34,7 +34,6 @@ class _MainWidget extends StatelessWidget { key: Key('enabled password'), decoration: InputDecoration( labelText: 'Password', - hintText: 'Enter your password', ), obscureText: true, ), @@ -42,7 +41,6 @@ class _MainWidget extends StatelessWidget { key: Key('disabled password'), decoration: InputDecoration( labelText: 'Password', - hintText: 'Enter your password', ), enabled: false, obscureText: true, diff --git a/dev/a11y_assessments/test/text_field_password_test.dart b/dev/a11y_assessments/test/text_field_password_test.dart index 90e4fd6a6a..5ecd650d62 100644 --- a/dev/a11y_assessments/test/text_field_password_test.dart +++ b/dev/a11y_assessments/test/text_field_password_test.dart @@ -30,4 +30,24 @@ void main() { expect(passwordField.enabled, isFalse); } }); + + testWidgets('text field passwords do not have hint text', (WidgetTester tester) async { + await pumpsUseCase(tester, TextFieldPasswordUseCase()); + expect(find.byType(TextField), findsExactly(2)); + + // Test the enabled password + { + final Finder finder = find.byKey(const Key('enabled password')); + final TextField textField = tester.widget(finder); + expect(textField.decoration?.hintText, isNull); + + } + + // Test the disabled password + { + final Finder finder = find.byKey(const Key('disabled password')); + final TextField textField = tester.widget(finder); + expect(textField.decoration?.hintText, isNull); + } + }); } diff --git a/dev/a11y_assessments/test/text_field_test.dart b/dev/a11y_assessments/test/text_field_test.dart index 0b2ea4ad7a..2d7b927fc3 100644 --- a/dev/a11y_assessments/test/text_field_test.dart +++ b/dev/a11y_assessments/test/text_field_test.dart @@ -30,4 +30,28 @@ void main() { expect(textField.enabled, isFalse); } }); + + testWidgets('font size increase does not ellipsize hint text', (WidgetTester tester) async { + await pumpsUseCase(tester, TextFieldUseCase()); + await tester.pumpWidget(MaterialApp( + home: MediaQuery.withClampedTextScaling( + minScaleFactor: 3, + maxScaleFactor: 3, + child: Builder( + builder: (BuildContext context) { + return TextFieldUseCase().build(context); + }, + ), + ), + )); + // Test the enabled text field + { + final Finder finder = find.byKey(const Key('enabled text field')); + await tester.tap(finder); + await tester.pumpAndSettle(); + final Size size = tester.getSize(finder); + // Should have a multi-line height. + expect(size.height, 280); + } + }); }