refactor: Remove material imports from Widget tests #185078
Conversation
…ditable_text_scribe_test, page_route_builder_test, radio_group_test, semantics_debugger_test, range_maintaining_scroll_physics_test, two_dimensional_scroll_view_test, routes_test, text_selection_test, selectable_region_test and text_golden_test
There was a problem hiding this comment.
Code Review
This pull request refactors several widget tests to remove dependencies on the Material library, replacing Material widgets with custom test-specific implementations like TestCheckbox, TestRadio, and TestButton. It also updates the test infrastructure to use a custom TestWidgetsApp instead of MaterialApp. Feedback was provided regarding the use of instantaneous page changes in tests and a suggestion to improve the reusability of the newly introduced TestSlider widget.
rkishan516
left a comment
There was a problem hiding this comment.
Just few small changes
|
Thanks for helping with the test decoupling effort! I'm going to focus on getting #184798 landed before I review this so that it's easier to see the specific changes done here. @master-wayne7 is the reason that you branched off of that PR because you needed TestCheckbox? |
Yeah in |
…ditable_text_scribe_test, page_route_builder_test, radio_group_test, semantics_debugger_test, range_maintaining_scroll_physics_test, two_dimensional_scroll_view_test, routes_test, text_selection_test, selectable_region_test and text_golden_test
…6/flutter into refactor/cross-imports-v2
|
@rkishan516 @justinmc I have updated PR with |
| /// A minimal implementation of [RadioGroupRegistry] for widget tests. | ||
| /// | ||
| /// Useful when testing [RawRadio] in isolation, outside of a [RadioGroup]. | ||
| class TestRegistry<T> extends RadioGroupRegistry<T> { |
There was a problem hiding this comment.
Are we using TestRegistry somewhere? If not then shouldn't we remove it?
There was a problem hiding this comment.
Yes its used in radio_group_test.dart and radio_tester_test.dart
There was a problem hiding this comment.
Nit: I suggest renaming it to TestRadioGroupRegistry. Now that it is a public test util I think it helps to be more explicit about the name.
|
|
||
| /// A stateful wrapper that hosts a [RadioGroup] with a mutable [groupValue], | ||
| /// making it easy to pump and interact with [TestRadio] buttons in tests. | ||
| class _TestRadioGroup<T> extends StatefulWidget { |
There was a problem hiding this comment.
Could we have radio group tester like radio tester or maybe atleast we can move this to radio tester? Thoughts.
There was a problem hiding this comment.
I'm happy either way. If we do make a radio_group_tester.dart we should also make a radio_group_tester_test.dart though.
There was a problem hiding this comment.
I am creating a separate radio_group_tester.dart which will have this code. But we already have a radio_group_test.dart file which is also using TestRadioGroup so no additional testing file is required for this.
|
|
||
| /// A stateful wrapper that hosts a [RadioGroup] with a mutable [groupValue], | ||
| /// making it easy to pump and interact with [TestRadio] buttons in tests. | ||
| class _TestRadioGroup<T> extends StatefulWidget { |
There was a problem hiding this comment.
I'm happy either way. If we do make a radio_group_tester.dart we should also make a radio_group_tester_test.dart though.
| @@ -0,0 +1,35 @@ | |||
| // Copyright 2014 The Flutter Authors. All rights reserved. | |||
There was a problem hiding this comment.
There is no associated test file for this class?
There was a problem hiding this comment.
Or do we not need a test here given widgets/radio_tester_test.dart already tests for mutable groupValue? And the widget has only a child property?
There was a problem hiding this comment.
There was already a radio_droup_test.dart file, I have updated that to use the TestRadioGroup.
|
autosubmit label was removed for flutter/flutter/185078, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR. |
|
Hey @Piinks , I have updated the branch with the latest changes. |
flutter/flutter@1ceffd1...3598686 2026-05-17 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from G9xv1qcMhvXOy-9pk... to 5Ki-dBY4SpWdQMF_3... (flutter/flutter#186636) 2026-05-17 bdero@google.com [Impeller] Canonicalize uniform block instance names for the GL backends (flutter/flutter#186394) 2026-05-16 srawlins@google.com [widgets] Use super parameters in missed spots (flutter/flutter#186198) 2026-05-16 120367427+master-wayne7@users.noreply.github.com refactor: Remove material imports from Widget tests (flutter/flutter#185078) 2026-05-16 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#186602) 2026-05-16 chris@bracken.jp [gn] Fix typo in comment (flutter/flutter#186549) 2026-05-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from y6uQHA5xUN83IF395... to G9xv1qcMhvXOy-9pk... (flutter/flutter#186599) 2026-05-15 30870216+gaaclarke@users.noreply.github.com Removes bringup from passing macos/sdf tests (flutter/flutter#186527) 2026-05-15 mdebbar@google.com [web] Fix several WebParagraph bugs (flutter/flutter#186403) 2026-05-15 alex.medinsh@gmail.com Display the team ID and name when selecting a signing certificate (flutter/flutter#184665) 2026-05-15 chris@bracken.jp [iOS] Improve documentation on FlutterVSyncClient and FlutterDisplayLink (flutter/flutter#186456) 2026-05-15 jason-simmons@users.noreply.github.com Increase the run time of text field integration tests to 10 seconds (flutter/flutter#186475) 2026-05-15 155553833+MatejLNCD@users.noreply.github.com Fix web-server hot restart/reload not applying changes for entrypoints outside lib (flutter/flutter#183838) 2026-05-15 1063596+reidbaker@users.noreply.github.com Update dart_skills_lint dependency to e449787 and optimize skills validation test (flutter/flutter#186528) 2026-05-15 engine-flutter-autoroll@skia.org Roll Packages from 2ec2236 to 32c84d6 (3 revisions) (flutter/flutter#186583) 2026-05-15 53112208+BilalRehman08@users.noreply.github.com Dispose TextEditingController in IndexedStack example (flutter/flutter#186375) 2026-05-15 34465683+rkishan516@users.noreply.github.com refactor: update filename for sliver semantic widget (flutter/flutter#185917) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…r#11724) flutter/flutter@1ceffd1...3598686 2026-05-17 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from G9xv1qcMhvXOy-9pk... to 5Ki-dBY4SpWdQMF_3... (flutter/flutter#186636) 2026-05-17 bdero@google.com [Impeller] Canonicalize uniform block instance names for the GL backends (flutter/flutter#186394) 2026-05-16 srawlins@google.com [widgets] Use super parameters in missed spots (flutter/flutter#186198) 2026-05-16 120367427+master-wayne7@users.noreply.github.com refactor: Remove material imports from Widget tests (flutter/flutter#185078) 2026-05-16 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#186602) 2026-05-16 chris@bracken.jp [gn] Fix typo in comment (flutter/flutter#186549) 2026-05-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from y6uQHA5xUN83IF395... to G9xv1qcMhvXOy-9pk... (flutter/flutter#186599) 2026-05-15 30870216+gaaclarke@users.noreply.github.com Removes bringup from passing macos/sdf tests (flutter/flutter#186527) 2026-05-15 mdebbar@google.com [web] Fix several WebParagraph bugs (flutter/flutter#186403) 2026-05-15 alex.medinsh@gmail.com Display the team ID and name when selecting a signing certificate (flutter/flutter#184665) 2026-05-15 chris@bracken.jp [iOS] Improve documentation on FlutterVSyncClient and FlutterDisplayLink (flutter/flutter#186456) 2026-05-15 jason-simmons@users.noreply.github.com Increase the run time of text field integration tests to 10 seconds (flutter/flutter#186475) 2026-05-15 155553833+MatejLNCD@users.noreply.github.com Fix web-server hot restart/reload not applying changes for entrypoints outside lib (flutter/flutter#183838) 2026-05-15 1063596+reidbaker@users.noreply.github.com Update dart_skills_lint dependency to e449787 and optimize skills validation test (flutter/flutter#186528) 2026-05-15 engine-flutter-autoroll@skia.org Roll Packages from 2ec2236 to 32c84d6 (3 revisions) (flutter/flutter#186583) 2026-05-15 53112208+BilalRehman08@users.noreply.github.com Dispose TextEditingController in IndexedStack example (flutter/flutter#186375) 2026-05-15 34465683+rkishan516@users.noreply.github.com refactor: update filename for sliver semantic widget (flutter/flutter#185917) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC bmparr@google.com,stuartmorgan@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
This PR removes Material imports from:
Also moved
TestRadio&TestSliderwidgets to their respective separate filesradio_tester.dart&slider_tester.dartpart of: #177415
dependent on #184798
Pre-launch Checklist
///).