flutter/examples/api/test/material/dropdown_menu/dropdown_menu.2_test.dart
Taha Tesser 80d774d8dc
Add DropdownMenu cursor behavior sample (#146133)
fixes [Add `DropdownMenu` cursor behavior sample to  `DropdownMenu.enabled` & `DropdownMenu.requestFocusOnTap`  docs](https://github.com/flutter/flutter/issues/146131)

### Preview
![Screenshot 2024-04-02 at 17 12 43](https://github.com/flutter/flutter/assets/48603081/33865ca0-d48d-4651-9c83-9bdcd6369cb8)
2024-04-03 16:31:06 +00:00

44 lines
1.7 KiB
Dart

// 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 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter_api_samples/material/dropdown_menu/dropdown_menu.2.dart' as example;
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('DropdownMenu cursor behavoir', (WidgetTester tester) async {
await tester.pumpWidget(
const example.DropdownMenuApp(),
);
Finder textFieldFinder(int index) {
return find.byType(TextField).at(index);
}
// Hover over the "enabled and requestFocusOnTap set to true" text field.
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
await gesture.moveTo(tester.getCenter(textFieldFinder(0)));
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.text);
// Hover over the "enabled and requestFocusOnTap set to false" text field.
await gesture.moveTo(tester.getCenter(textFieldFinder(1)));
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.click);
// Hover over the "disabled and requestFocusOnTap set to true" text field.
await gesture.moveTo(tester.getCenter(textFieldFinder(2)));
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic);
// Hover over the "disabled and requestFocusOnTap set to false" text field.
await gesture.moveTo(tester.getCenter(textFieldFinder(3)));
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic);
});
}