From 861d3c767e870198c73e65171a4ba062b889fde1 Mon Sep 17 00:00:00 2001 From: Sana Ullah Date: Wed, 3 Jun 2026 03:28:56 +0500 Subject: [PATCH] Remove semantics_tester import from material_button_test.dart (#184807) Part of #182636 ## Summary Remove the `semantics_tester.dart` cross-import from `material_button_test.dart`. ## What changed * Replaced the deprecated `SemanticsTester`/`TestSemantics` assertions in the MaterialButton semantics test with `tester.getSemantics(...)` and `matchesSemantics(...)` * Kept the semantic size verification for the enabled and disabled button states * Removed the `../widgets/semantics_tester.dart` import ## Testing * `../../bin/flutter analyze test/material/material_button_test.dart` * `../../bin/flutter test test/material/material_button_test.dart` --------- Co-authored-by: Tong Mu --- .../test/material_button_test.dart | 82 ++++++++----------- 1 file changed, 32 insertions(+), 50 deletions(-) diff --git a/packages/material_ui/test/material_button_test.dart b/packages/material_ui/test/material_button_test.dart index edd784a7088..504ce70fa21 100644 --- a/packages/material_ui/test/material_button_test.dart +++ b/packages/material_ui/test/material_button_test.dart @@ -8,8 +8,6 @@ import 'package:flutter/rendering.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:material_ui/material_ui.dart'; -import 'semantics_tester.dart'; - void main() { setUp(() { debugResetSemanticsIdCounter(); @@ -637,15 +635,13 @@ void main() { testWidgets( 'Disabled MaterialButton has same semantic size as enabled and exposes disabled semantics', (WidgetTester tester) async { - final semantics = SemanticsTester(tester); - - const expectedButtonSize = Rect.fromLTRB(0.0, 0.0, 116.0, 48.0); - // Button is in center of screen - final expectedButtonTransform = Matrix4.identity() - ..translate( - TestSemantics.fullScreen.width / 2 - expectedButtonSize.width / 2, - TestSemantics.fullScreen.height / 2 - expectedButtonSize.height / 2, - ); + const expectedButtonSize = Size(116.0, 48.0); + // Button is in center of the 800x600 test screen. + final expectedButtonTransform = Matrix4.diagonal3Values( + tester.view.devicePixelRatio, + tester.view.devicePixelRatio, + 1.0, + )..translate(400.0 - expectedButtonSize.width / 2, 300.0 - expectedButtonSize.height / 2); // enabled button await tester.pumpWidget( @@ -665,28 +661,21 @@ void main() { ), ); + final SemanticsNode enabledSemantics = tester.getSemantics(find.byType(MaterialButton)); expect( - semantics, - hasSemantics( - TestSemantics.root( - children: [ - TestSemantics.rootChild( - id: 1, - rect: expectedButtonSize, - transform: expectedButtonTransform, - label: 'Button', - actions: [SemanticsAction.tap, SemanticsAction.focus], - flags: [ - SemanticsFlag.hasEnabledState, - SemanticsFlag.isButton, - SemanticsFlag.isEnabled, - SemanticsFlag.isFocusable, - ], - ), - ], - ), + enabledSemantics, + matchesSemantics( + label: 'Button', + hasTapAction: true, + hasFocusAction: true, + hasEnabledState: true, + isButton: true, + isEnabled: true, + isFocusable: true, + size: expectedButtonSize, ), ); + expect(enabledSemantics.transform, expectedButtonTransform); // disabled button await tester.pumpWidget( @@ -704,29 +693,22 @@ void main() { ), ); + final SemanticsNode disabledSemantics = tester.getSemantics(find.byType(MaterialButton)); expect( - semantics, - hasSemantics( - TestSemantics.root( - children: [ - TestSemantics.rootChild( - id: 1, - rect: expectedButtonSize, - transform: expectedButtonTransform, - label: 'Button', - flags: [ - SemanticsFlag.hasEnabledState, - SemanticsFlag.isButton, - SemanticsFlag.isFocusable, - ], - actions: [SemanticsAction.focus], - ), - ], - ), + disabledSemantics, + matchesSemantics( + label: 'Button', + hasFocusAction: true, + hasEnabledState: true, + isButton: true, + isFocusable: true, + size: expectedButtonSize, ), ); - - semantics.dispose(); + expect(disabledSemantics.transform, expectedButtonTransform); + final SemanticsData semanticsData = disabledSemantics.getSemanticsData(); + expect(semanticsData.hasFlag(SemanticsFlag.isEnabled), isFalse); + expect(semanticsData.hasAction(SemanticsAction.tap), isFalse); }, );