Repository navigation
Remove last material dependency from cupertino tests - #184781
Conversation
|
FYI @justinmc 🥳 |
There was a problem hiding this comment.
Code Review
This pull request updates the text selection tests in the Cupertino package by replacing SelectableText.rich with CupertinoTextField and introducing a private _RichTextController class to manage text spans. The reviewer noted that the new _RichTextController class and its members should include documentation comments using the triple-slash (///) syntax, as per the Flutter style guide.
| class _RichTextController extends TextEditingController { | ||
| _RichTextController({required this.textSpan}) : super(text: textSpan.toPlainText()); | ||
|
|
||
| final TextSpan textSpan; | ||
|
|
||
| @override | ||
| TextSpan buildTextSpan({ | ||
| required BuildContext context, | ||
| TextStyle? style, | ||
| required bool withComposing, | ||
| }) { | ||
| return textSpan; | ||
| } | ||
| } |
There was a problem hiding this comment.
The _RichTextController class and its members should have documentation comments (///) as required by the Flutter style guide, even for private members.
/// A controller that provides a custom [TextSpan] for testing.
class _RichTextController extends TextEditingController {
/// Creates a [_RichTextController] with the given [textSpan].
_RichTextController({required this.textSpan}) : super(text: textSpan.toPlainText());
/// The [TextSpan] to be returned by [buildTextSpan].
final TextSpan textSpan;
@override
TextSpan buildTextSpan({
required BuildContext context,
TextStyle? style,
required bool withComposing,
}) {
return textSpan;
}
}References
- All members, including private ones, should have documentation using
///. (link)
|
|
||
| import 'package:flutter/cupertino.dart'; | ||
| import 'package:flutter/foundation.dart'; | ||
| import 'package:flutter/material.dart'; |
There was a problem hiding this comment.
Don't forget to remove this test from the check in dev/bots
| @@ -168,8 +168,6 @@ class TestsCrossImportChecker { | |||
| // TODO(justinmc): Fix all of these tests so there are no cross imports. | |||
| // See https://github.com/flutter/flutter/issues/177028. | |||
| static final Set<String> knownCupertinoCrossImports = <String>{ | |||
There was a problem hiding this comment.
I started to refactor this to remove all things Cupertino since this is the last one, but decided against it. We can do that in another change, or since we are close, wait for this project to be done and remove it all together.
There was a problem hiding this comment.
Personally I'd remove these checks only after the split is completed?
|
autosubmit label was removed for flutter/flutter/184781, because - The status or check suite Windows tool_tests_commands_1_2 has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
Le sigh. Not having my best day over here. Need to account for how this affects the cross imports tests. |
|
autosubmit label was removed for flutter/flutter/184781, because This PR has not met approval requirements for merging. Changes were requested by {navaronbracke}, please make the needed changes and resubmit this PR.
|
|
autosubmit label was removed for flutter/flutter/184781, because This PR has not met approval requirements for merging. Changes were requested by {navaronbracke}, please make the needed changes and resubmit this PR.
|
|
The changes requested review was cleared, but apparently autosubmit is unsatisfied. @navaronbracke can you please approve. |
|
Since the tree is green again, we can try landing this again! 🤞 |
flutter/flutter@05e0ae0...81c87ea 2026-04-09 [email protected] Remove last material dependency from cupertino tests (flutter/flutter#184781) 2026-04-09 [email protected] Roll Skia from 7c46cb639dba to 4d0f5389e131 (7 revisions) (flutter/flutter#184812) 2026-04-09 [email protected] Make `windowing_test` follow repo analyzer rules (flutter/flutter#184752) 2026-04-09 [email protected] Improve documentation of `frictionFactor` function (flutter/flutter#184509) 2026-04-09 [email protected] Roll Skia from d2b0bd12576a to 7c46cb639dba (1 revision) (flutter/flutter#184796) 2026-04-09 [email protected] Roll Fuchsia GN SDK from JLBh4Z9PKsjIJcqDU... to SEfYx3xgueX3aFAY3... (flutter/flutter#184797) 2026-04-09 [email protected] Fixed freeze flow (flutter/flutter#184793) 2026-04-09 [email protected] Roll pub packages (flutter/flutter#184795) 2026-04-09 [email protected] Roll Skia from e9ed4fc9f154 to d2b0bd12576a (36 revisions) (flutter/flutter#184791) 2026-04-08 [email protected] [Android] Allow sensitive content to gracefully fail when unregistering host before registering (flutter/flutter#184789) 2026-04-08 [email protected] Refactor: remove material from autocomplete_test, scrollable_restoration_test, semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test (flutter/flutter#184615) 2026-04-08 [email protected] Warn about the use of TestSemantics (flutter/flutter#184369) 2026-04-08 [email protected] Change freeze flow to pull_request_target (flutter/flutter#184785) 2026-04-08 [email protected] Update to the beta dart version for 3.44 branch cut. (flutter/flutter#184770) 2026-04-08 [email protected] [Dot shorthands] Migrate examples/api/test (flutter/flutter#183966) 2026-04-08 [email protected] [fuchsia] Give AOT runners the ability to copy FFI callback thunks. (flutter/flutter#184696) 2026-04-08 [email protected] Add await or ignore lint to invokeMethod callsites (flutter/flutter#182870) 2026-04-08 [email protected] Correctly handle failure to read /proc/self/exe link (flutter/flutter#184700) 2026-04-08 [email protected] Roll Skia from e264d870a380 to e9ed4fc9f154 (11 revisions) (flutter/flutter#184713) 2026-04-08 [email protected] Roll Packages from 5299279 to 0e0a032 (5 revisions) (flutter/flutter#184720) 2026-04-08 [email protected] Roll pub packages (flutter/flutter#184772) 2026-04-08 [email protected] Roll Fuchsia Linux SDK from 1rcChbOv4nSTVkUxs... to pDXMXRIjEHTw7B0sk... (flutter/flutter#184722) 2026-04-08 [email protected] Remove navigator_utils cross-imports from cupertino tests (flutter/flutter#184282) 2026-04-08 [email protected] Even more awaits v2 (flutter/flutter#184552) 2026-04-08 [email protected] Allow personal skills to be gitignored (flutter/flutter#184727) 2026-04-08 [email protected] [ci] mac_arm64 build_test re-enable shard 1 presubmit (flutter/flutter#184751) 2026-04-08 [email protected] Fix repo check on code freeze (flutter/flutter#184771) 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 [email protected],[email protected] 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 removes the last material dependency from the cupertino test library. It refactors tests that were relying on SelectableText. **Code freeze override: this is necessary to complete decoupling, and will not cause cupertino_ui to be incompatible with the upcoming stable release.** ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
…r#11477) flutter/flutter@05e0ae0...81c87ea 2026-04-09 [email protected] Remove last material dependency from cupertino tests (flutter/flutter#184781) 2026-04-09 [email protected] Roll Skia from 7c46cb639dba to 4d0f5389e131 (7 revisions) (flutter/flutter#184812) 2026-04-09 [email protected] Make `windowing_test` follow repo analyzer rules (flutter/flutter#184752) 2026-04-09 [email protected] Improve documentation of `frictionFactor` function (flutter/flutter#184509) 2026-04-09 [email protected] Roll Skia from d2b0bd12576a to 7c46cb639dba (1 revision) (flutter/flutter#184796) 2026-04-09 [email protected] Roll Fuchsia GN SDK from JLBh4Z9PKsjIJcqDU... to SEfYx3xgueX3aFAY3... (flutter/flutter#184797) 2026-04-09 [email protected] Fixed freeze flow (flutter/flutter#184793) 2026-04-09 [email protected] Roll pub packages (flutter/flutter#184795) 2026-04-09 [email protected] Roll Skia from e9ed4fc9f154 to d2b0bd12576a (36 revisions) (flutter/flutter#184791) 2026-04-08 [email protected] [Android] Allow sensitive content to gracefully fail when unregistering host before registering (flutter/flutter#184789) 2026-04-08 [email protected] Refactor: remove material from autocomplete_test, scrollable_restoration_test, semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test (flutter/flutter#184615) 2026-04-08 [email protected] Warn about the use of TestSemantics (flutter/flutter#184369) 2026-04-08 [email protected] Change freeze flow to pull_request_target (flutter/flutter#184785) 2026-04-08 [email protected] Update to the beta dart version for 3.44 branch cut. (flutter/flutter#184770) 2026-04-08 [email protected] [Dot shorthands] Migrate examples/api/test (flutter/flutter#183966) 2026-04-08 [email protected] [fuchsia] Give AOT runners the ability to copy FFI callback thunks. (flutter/flutter#184696) 2026-04-08 [email protected] Add await or ignore lint to invokeMethod callsites (flutter/flutter#182870) 2026-04-08 [email protected] Correctly handle failure to read /proc/self/exe link (flutter/flutter#184700) 2026-04-08 [email protected] Roll Skia from e264d870a380 to e9ed4fc9f154 (11 revisions) (flutter/flutter#184713) 2026-04-08 [email protected] Roll Packages from 5299279 to 0e0a032 (5 revisions) (flutter/flutter#184720) 2026-04-08 [email protected] Roll pub packages (flutter/flutter#184772) 2026-04-08 [email protected] Roll Fuchsia Linux SDK from 1rcChbOv4nSTVkUxs... to pDXMXRIjEHTw7B0sk... (flutter/flutter#184722) 2026-04-08 [email protected] Remove navigator_utils cross-imports from cupertino tests (flutter/flutter#184282) 2026-04-08 [email protected] Even more awaits v2 (flutter/flutter#184552) 2026-04-08 [email protected] Allow personal skills to be gitignored (flutter/flutter#184727) 2026-04-08 [email protected] [ci] mac_arm64 build_test re-enable shard 1 presubmit (flutter/flutter#184751) 2026-04-08 [email protected] Fix repo check on code freeze (flutter/flutter#184771) 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 [email protected],[email protected] 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 removes the last material dependency from the cupertino test library. It refactors tests that were relying on SelectableText.
Code freeze override: this is necessary to complete decoupling, and will not cause cupertino_ui to be incompatible with the upcoming stable release.
Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance.
Note: The Flutter team is currently trialing the use of Gemini Code Assist for GitHub. Comments from the
gemini-code-assistbot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed.