Repository navigation
Description
See #189278 for additional context here.
The web test shards that contain the material_ui and material_ui/example tests take too long to complete (currently ~1 hour, which is the timeout limit). Initial solution involved changing the sharding logic so that the material_ui and material_ui/example tests were assigned to separate shards, but that will need more design (see #189278).
Instead, we are going to reduce the number of test we are running on web, using a similar mechanism to the reduced-test-set tag in flutter/flutter. We can call it something like reduced-web-test-set.
We should only run tests on web that are specifically targeting web behavior or regressions. These test cases can be tagged with reduced-web-test-set. They will run on both web and non-web platforms, whereas tests without that tag will only run on non-web platforms.
Below is a list of test cases targeting web that should use the new test tag (note: the following were identifying via agentic analysis so it's possible some were missed, however I think this subset will still guarantee us solid web coverage):
Web test audit
File: action_chip_test.dart
Path: packages/material_ui/test/action_chip_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| ActionChip has expected default mouse cursor on hover | L504 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: back_button_test.dart
Path: packages/material_ui/test/back_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| BackButton icon | L69 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| BackButton has expected default mouse cursor on hover | L384 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| CloseButton has expected default mouse cursor on hover | L404 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: checkbox_list_tile_test.dart
Path: packages/material_ui/test/checkbox_list_tile_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| CheckboxListTile respects mouseCursor when hovered | L579 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| Material3 - CheckboxListTile respects overlayColor in active/pressed/hovered states | L912 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: checkbox_test.dart
Path: packages/material_ui/test/checkbox_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Checkbox can be toggled by keyboard shortcuts | L1021 |
kIsWeb Web comment / regression |
Asserts web-specific keyboard interaction: on Web, widgets do not respond to the Enter key. |
| Checkbox changes mouse cursor when hovered | L1219 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| Checkbox.adaptive respects Checkbox.mouseCursor on iOS/macOS | L2338 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: chip_test.dart
Path: packages/material_ui/test/chip_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Material3 - Selection with avatar works as expected on RawChip | L2152 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Material3 - Selection without avatar works as expected on RawChip | L2314 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Material3 - Activation works as expected on RawChip | L2451 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| label only | L2833 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| delete | L2881 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| with onPressed | L2945 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| with onSelected | L2999 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| disabled | L3122 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| tapEnabled explicitly false | L3174 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| enabled when tapEnabled and canTap | L3223 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| disabled when tapEnabled but not canTap | L3278 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
File: choice_chip_test.dart
Path: packages/material_ui/test/choice_chip_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| ChoiceChip has expected default mouse cursor on hover | L765 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: date_picker_theme_test.dart
Path: packages/material_ui/test/date_picker_theme_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| DatePickerDialog resolves DatePickerTheme.dayOverlayColor states | L964 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| DateRangePickerDialog resolves DatePickerTheme.rangeSelectionOverlayColor states | L1146 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: drawer_button_test.dart
Path: packages/material_ui/test/drawer_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| DrawerButton has expected default mouse cursor on hover | L293 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| EndDrawerButton has expected default mouse cursor on hover | L316 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: dropdown_form_field_test.dart
Path: packages/material_ui/test/dropdown_form_field_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| DropdownFormField has expected default mouse cursor on hover | L1466 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: dropdown_menu_test.dart
Path: packages/material_ui/test/dropdown_menu_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| DropdownMenuEntries do not overflow when width is specified | L2980 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
| DropdownMenuEntry.labelWidget is Text that specifies maxLines 1 or 2 | L3023 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
| Setting DropdownMenu.requestFocusOnTap to false makes TextField a button | L3699 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| ensure exclude semantics for trailing button | L4379 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: dropdown_test.dart
Path: packages/material_ui/test/dropdown_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| DropdownMenuItem has expected default mouse cursor on hover | L3963 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| DropdownButton changes mouse cursor when hovered as expected | L4012 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: elevated_button_test.dart
Path: packages/material_ui/test/elevated_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| ElevatedButton uses InkSparkle only for Android non-web when useMaterial3 is true | L1632 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| ElevatedButton changes mouse cursor when hovered | L1810 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: filled_button_test.dart
Path: packages/material_ui/test/filled_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| FilledButton.icon responds to applied padding | L1306 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| FilledButton uses InkSparkle only for Android non-web when useMaterial3 is true | L1766 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| FilledButton changes mouse cursor when hovered | L1924 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: filter_chip_test.dart
Path: packages/material_ui/test/filter_chip_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| FilterChip has expected default mouse cursor on hover | L1267 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: icon_button_test.dart
Path: packages/material_ui/test/icon_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Disabled IconButton can | L800 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| IconButton.mouseCursor changes cursor on hover | L945 |
kIsWeb Web comment / regression |
Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| does not draw focus color when focused by semantics on the web | L3378 |
isBrowser | Tests web-specific platform behavior or conditionals. |
File: ink_paint_test.dart
Path: packages/material_ui/test/ink_paint_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Material3 - InkWell widget renders an ink splash | L92 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: ink_splash_test.dart
Path: packages/material_ui/test/ink_splash_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Material3 - InkWell with NoSplash splashFactory paints nothing | L93 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: ink_well_test.dart
Path: packages/material_ui/test/ink_well_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| InkWell.mouseCursor changes cursor on hover | L1143 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| InkResponse containing selectable text changes mouse cursor when hovered | L1235 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: input_chip_test.dart
Path: packages/material_ui/test/input_chip_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| InputChip has expected default mouse cursor on hover | L609 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: input_decorator_test.dart
Path: packages/material_ui/test/input_decorator_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| uses alphabetic baseline for CJK layout | L15184 |
isBrowser | Tests web-specific platform behavior or conditionals. |
File: list_tile_test.dart
Path: packages/material_ui/test/list_tile_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| leading | L2753 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
| trailing | L2780 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
File: material_button_test.dart
Path: packages/material_ui/test/material_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| MaterialButton changes mouse cursor when hovered | L431 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: menu_anchor_test.dart
Path: packages/material_ui/test/menu_anchor_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Shortcuts of MenuAnchor do not rely on WidgetsApp.shortcuts | L2424 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
| MenuItemButton has platform-adaptive button semantics | L4467 |
kIsWeb Web comment / regression |
Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| SubmenuButton has platform-adaptive button semantics | L4533 |
kIsWeb Web comment / regression |
Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| SubmenuButton expanded/collapsed state | L4583 |
kIsWeb | Asserts web-specific semantics flag behavior (e.g. SemanticsFlag.hasCheckedState vs hasSelectedState or SemanticsFlag.isButton). |
| SubmenuButton has expected default mouse cursor on hover | L5457 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| MenuItemButton has expected default mouse cursor on hover | L5491 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| CheckboxMenuButton has expected default mouse cursor on hover | L5535 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| RadioMenuButton has expected default mouse cursor on hover | L5571 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: navigation_bar_test.dart
Path: packages/material_ui/test/navigation_bar_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Navigation bar semantics | L455 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Navigation bar disabled semantics | L561 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Navigation bar semantics with some labels hidden | L589 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| NavigationBar respects overlayColor in active/pressed/hovered states | L1124 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: navigation_bar_theme_test.dart
Path: packages/material_ui/test/navigation_bar_theme_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| NavigationBar respects NavigationBarTheme.overlayColor in active/pressed/hovered states | L244 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: outlined_button_test.dart
Path: packages/material_ui/test/outlined_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| OutlinedButton uses InkSparkle only for Android non-web when useMaterial3 is true | L1861 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| OutlinedButton changes mouse cursor when hovered | L2039 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: popup_menu_test.dart
Path: packages/material_ui/test/popup_menu_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| PopupMenuButton has expected default mouse cursor on hover | L2542 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| PopupMenuItem changes mouse cursor when hovered | L2573 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| CheckedPopupMenuItem changes mouse cursor when hovered | L2667 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: popup_menu_theme_test.dart
Path: packages/material_ui/test/popup_menu_theme_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Passing no PopupMenuThemeData returns defaults | L134 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| Passing no PopupMenuThemeData returns defaults | L479 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: radio_list_tile_test.dart
Path: packages/material_ui/test/radio_list_tile_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Radio changes mouse cursor when hovered | L846 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: radio_test.dart
Path: packages/material_ui/test/radio_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Radio can be controlled by keyboard shortcuts | L921 |
kIsWeb Web comment / regression |
Asserts web-specific keyboard interaction: on Web, widgets do not respond to the Enter key. |
| Radio changes mouse cursor when hovered | L1049 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: raw_material_button_test.dart
Path: packages/material_ui/test/raw_material_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| RawMaterialButton responds to shortcut when activated | L45 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| RawMaterialButton changes mouse cursor as expected when hovered | L597 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: scaffold_test.dart
Path: packages/material_ui/test/scaffold_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Back arrow uses correct default | L1090 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Call to Scaffold.of() without context | L2497 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
| Call to Scaffold.geometryOf() without context | L2570 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
File: scrollbar_test.dart
Path: packages/material_ui/test/scrollbar_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Simultaneous dragging and pointer scrolling does not cause a crash | L1588 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: search_anchor_test.dart
Path: packages/material_ui/test/search_anchor_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| SearchAnchor.bar.scrollPadding is passed through to EditableText | L3778 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: search_test.dart
Path: packages/material_ui/test/search_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Custom flexibleSpace value | L675 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| does not include routeName | L863 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: segmented_button_test.dart
Path: packages/material_ui/test/segmented_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| SegmentedButton has expected default mouse cursor on hover | L1503 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: selection_area_test.dart
Path: packages/material_ui/test/selection_area_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| builds the default context menu by default on Android and iOS web | L133 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Can only drag one selection handle at a time on Android web | L488 |
kIsWeb | Web-only test (skip: !kIsWeb), runs exclusively on web platforms. |
File: stepper_test.dart
Path: packages/material_ui/test/stepper_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Nested stepper error test | L476 |
Web comment / regression | Tests web-specific platform behavior or conditionals. |
File: switch_test.dart
Path: packages/material_ui/test/switch_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Switch.adaptive default mouse cursor(Cupertino) | L1222 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| Switch can be toggled by keyboard shortcuts | L2017 |
kIsWeb Web comment / regression |
Asserts web-specific keyboard interaction: on Web, widgets do not respond to the Enter key. |
File: tabs_test.dart
Path: packages/material_ui/test/tabs_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| correct semantics | L4254 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| correct scrolling semantics | L4337 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| can override semantics of tabs | L4534 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Test semantics of TabPageSelector | L6387 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: text_button_test.dart
Path: packages/material_ui/test/text_button_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| TextButton uses InkSparkle only for Android non-web when useMaterial3 is true | L1575 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| TextButton changes mouse cursor when hovered | L1751 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
File: text_field_test.dart
Path: packages/material_ui/test/text_field_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Live Text button shows and hides correctly when LiveTextStatus changes | L75 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Read only text field basic | L2051 |
isBrowser Web comment / regression |
Tests web-specific platform behavior or conditionals. |
| Dynamically switching to read only should close input connection | L2228 |
isBrowser Web comment / regression |
Tests web-specific platform behavior or conditionals. |
| Dynamically switching to non read only should open input connection | L2260 |
isBrowser Web comment / regression |
Tests web-specific platform behavior or conditionals. |
| Can only drag one selection handle at a time on Android web | L3531 |
kIsWeb Web comment / regression |
Web-only test (skip: !kIsWeb), runs exclusively on web platforms. |
| Does not show handles when updated from the web engine | L14755 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| TextField icons change mouse cursor when hovered | L15349 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
| using default behavior for different platforms. | L15836 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Tapping outside doesn | L17968 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
| Default TextField handling of onTapOutside follows platform conventions for ${pointerDeviceKind.name} | L18102 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: theme_data_test.dart
Path: packages/material_ui/test/theme_data_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| splashFactory is InkSparkle only for Android non-web when useMaterial3 is true | L952 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: toggle_buttons_test.dart
Path: packages/material_ui/test/toggle_buttons_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| ToggleButtons changes mouse cursor when the button is hovered | L1712 |
kIsWeb | Verifies that mouse cursor changes to SystemMouseCursors.click when hovered on Web (vs basic cursor on desktop/mobile). |
Package: packages/material_ui/example
- Package Path:
packages/material_ui/example - Web Test Files: 3 | Web Test Cases: 3
File: editable_text_toolbar_builder.2_test.dart
Path: packages/material_ui/example/test/context_menu/editable_text_toolbar_builder.2_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| showing and hiding the context menu in TextField with a custom toolbar | L14 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: selectable_region_toolbar_builder.0_test.dart
Path: packages/material_ui/example/test/context_menu/selectable_region_toolbar_builder.0_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| showing and hiding the custom context menu on SelectionArea | L14 |
kIsWeb | Tests web-specific platform behavior or conditionals. |
File: text_form_field.1_test.dart
Path: packages/material_ui/example/test/text_form_field/text_form_field.1_test.dart
| Test Case | Line | Reasons / Mechanism | Explanation |
|---|---|---|---|
| Pressing space should focus the next field | L12 |
isBrowser | Tests web-specific platform behavior or conditionals. |
Activity
elliette commentedon Sep 4, 2026
Tracker for test tagging
packages/material_uiaction_chip_test.dartpackages/material_uiback_button_test.dartpackages/material_uicheckbox_list_tile_test.dartpackages/material_uicheckbox_test.dartpackages/material_uichip_test.dartpackages/material_uichoice_chip_test.dartpackages/material_uidate_picker_theme_test.dartpackages/material_uidrawer_button_test.dartpackages/material_uidropdown_form_field_test.dartpackages/material_uidropdown_menu_test.dartpackages/material_uidropdown_test.dartpackages/material_uielevated_button_test.dartpackages/material_uifilled_button_test.dartpackages/material_uifilter_chip_test.dartpackages/material_uiicon_button_test.dartpackages/material_uiink_paint_test.dartpackages/material_uiink_splash_test.dartpackages/material_uiink_well_test.dartpackages/material_uiinput_chip_test.dartpackages/material_uiinput_decorator_test.dartpackages/material_uilist_tile_test.dartpackages/material_uimaterial_button_test.dartpackages/material_uimenu_anchor_test.dartpackages/material_uinavigation_bar_test.dartpackages/material_uinavigation_bar_theme_test.dartpackages/material_uioutlined_button_test.dartpackages/material_uipopup_menu_test.dartpackages/material_uipopup_menu_theme_test.dartpackages/material_uiradio_list_tile_test.dartpackages/material_uiradio_test.dartpackages/material_uiraw_material_button_test.dartpackages/material_uiscaffold_test.dartpackages/material_uiscrollbar_test.dartpackages/material_uisearch_anchor_test.dartpackages/material_uisearch_test.dartpackages/material_uisegmented_button_test.dartpackages/material_uiselection_area_test.dartpackages/material_uistepper_test.dartpackages/material_uiswitch_test.dartpackages/material_uitabs_test.dartpackages/material_uitext_button_test.dartpackages/material_uitext_field_test.dartpackages/material_uitheme_data_test.dartpackages/material_uitoggle_buttons_test.dartpackages/material_ui/exampleeditable_text_toolbar_builder.2_test.dartpackages/material_ui/exampleselectable_region_toolbar_builder.0_test.dartpackages/material_ui/exampletext_form_field.1_test.dart[material_ui] Reduce the `material_ui` non-wasm web test suite (#12763)
elliette commentedon Oct 28, 2026
Did some investigation when the
material_uiweb tests were timing out on one of my PRs.Turns out their is a bug in the implementation (flutter/packages#12763) which causes a discrepancy in the name of a package to match against when run locally vs. when run on CI:
DartTestCommand._getTagForPackagelooks a package up withRepositoryPackage.displayName, which in turn removes everything up to the first path component namedpackages. On the LUCI bots the repo is checked out into a directory that is itself calledpackages(e.g./b/s/w/ir/x/w/packages/packages/material_ui). So the name comes out aspackages/material_ui, which never matches thematerial_uikey.I am working on a fix!
[tool] Fix package matching logic for `--package-tags` filter (#13472)