From ba778dea6d51ff700b877316f90e5bc1ac36bd21 Mon Sep 17 00:00:00 2001 From: Ildeberto Vasconcelos Date: Sat, 12 Oct 2024 14:54:31 +0100 Subject: [PATCH] Add test for AutofillGroup api example (#156439) Write Tests for API Examples of `autoffil_group` as part of https://github.com/flutter/flutter/issues/130459 This are tests of snippets used in [AutofillGroup class](https://api.flutter.dev/flutter/widgets/AutofillGroup-class.html) --- dev/bots/check_code_samples.dart | 1 - .../autofill/autofill_group.0_test.dart | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 examples/api/test/widgets/autofill/autofill_group.0_test.dart diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index 3678d1873d..1ea32a71a1 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -330,7 +330,6 @@ final Set _knownMissingTests = { 'examples/api/test/widgets/navigator/navigator_state.restorable_push.0_test.dart', 'examples/api/test/widgets/focus_manager/focus_node.unfocus.0_test.dart', 'examples/api/test/widgets/framework/build_owner.0_test.dart', - 'examples/api/test/widgets/autofill/autofill_group.0_test.dart', 'examples/api/test/widgets/nested_scroll_view/nested_scroll_view_state.0_test.dart', 'examples/api/test/widgets/scroll_position/scroll_metrics_notification.0_test.dart', 'examples/api/test/widgets/media_query/media_query_data.system_gesture_insets.0_test.dart', diff --git a/examples/api/test/widgets/autofill/autofill_group.0_test.dart b/examples/api/test/widgets/autofill/autofill_group.0_test.dart new file mode 100644 index 0000000000..581cbca2b0 --- /dev/null +++ b/examples/api/test/widgets/autofill/autofill_group.0_test.dart @@ -0,0 +1,102 @@ +// 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_api_samples/widgets/autofill/autofill_group.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('AutofillGroupExample renders and updates correctly', (WidgetTester tester) async { + await tester.pumpWidget(const example.AutofillGroupExampleApp()); + + expect(find.text('Shipping address'), findsOneWidget); + expect(find.text('Billing address'), findsOneWidget); + expect(find.byType(TextField), findsNWidgets(5)); + expect(find.byType(Checkbox), findsOneWidget); + expect(find.text('Contact Phone Number'), findsOneWidget); + + final Checkbox checkbox = tester.widget(find.byType(Checkbox)); + expect(checkbox.value, isTrue); + + // Tap to uncheck the checkbox (to show billing address fields). + await tester.tap(find.byType(Checkbox)); + await tester.pump(); + + expect( + find.byType(AutofillGroup), + findsNWidgets(3), // 3 AutofillGroup widgets created + ); + + expect( + find.byType(TextField), + findsNWidgets(7), // 5 initial + 2 billing address fields + ); + + final TextField shippingAddress1 = tester.widget( + find.byType(TextField).at(0), + ); + expect( + shippingAddress1.autofillHints, + contains(AutofillHints.streetAddressLine1), + ); + + final TextField shippingAddress2 = tester.widget( + find.byType(TextField).at(1), + ); + expect( + shippingAddress2.autofillHints, + contains(AutofillHints.streetAddressLine2), + ); + + final TextField billingAddress1 = tester.widget( + find.byType(TextField).at(2), + ); + expect( + billingAddress1.autofillHints, + contains(AutofillHints.streetAddressLine1), + ); + + final TextField billingAddress2 = tester.widget( + find.byType(TextField).at(3), + ); + expect( + billingAddress2.autofillHints, + contains(AutofillHints.streetAddressLine2), + ); + + // Credit card information fields. + final TextField creditCardNumber = tester.widget( + find.byType(TextField).at(4), + ); + expect( + creditCardNumber.autofillHints, + contains(AutofillHints.creditCardNumber), + ); + + final TextField creditCardSecurityCode = tester.widget( + find.byType(TextField).at(5), + ); + expect( + creditCardSecurityCode.autofillHints, + contains(AutofillHints.creditCardSecurityCode), + ); + + // Contact phone number field. + final TextField phoneNumber = tester.widget( + find.byType(TextField).at(6), + ); + expect( + phoneNumber.autofillHints, + contains(AutofillHints.telephoneNumber), + ); + + await tester.tap(find.byType(Checkbox)); + await tester.pump(); + + expect( + find.byType(TextField), + findsNWidgets(5), + ); + }); +}