mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
test: add single/double/triple tap test
This commit is contained in:
parent
5c13b324ec
commit
a371cf3a7c
@ -0,0 +1,83 @@
|
||||
import 'package:appflowy_editor/appflowy_editor.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import '../infra/test_editor.dart';
|
||||
|
||||
void main() async {
|
||||
setUpAll(() {
|
||||
TestWidgetsFlutterBinding.ensureInitialized();
|
||||
});
|
||||
|
||||
group('selection_service.dart', () {
|
||||
testWidgets('Single tap test ', (tester) async {
|
||||
const text = 'Welcome to Appflowy 😁';
|
||||
final editor = tester.editor
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text);
|
||||
await editor.startTesting();
|
||||
|
||||
final secondTextNode = editor.nodeAtPath([1]);
|
||||
final finder = find.byKey(secondTextNode!.key!);
|
||||
|
||||
final rect = tester.getRect(finder);
|
||||
// tap at the beginning
|
||||
await tester.tapAt(rect.centerLeft);
|
||||
expect(
|
||||
editor.documentSelection,
|
||||
Selection.single(path: [1], startOffset: 0),
|
||||
);
|
||||
|
||||
// tap at the ending
|
||||
await tester.tapAt(rect.centerRight);
|
||||
expect(
|
||||
editor.documentSelection,
|
||||
Selection.single(path: [1], startOffset: text.length),
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('Test double tap', (tester) async {
|
||||
const text = 'Welcome to Appflowy 😁';
|
||||
final editor = tester.editor
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text);
|
||||
await editor.startTesting();
|
||||
|
||||
final secondTextNode = editor.nodeAtPath([1]);
|
||||
final finder = find.byKey(secondTextNode!.key!);
|
||||
|
||||
final rect = tester.getRect(finder);
|
||||
// double tap
|
||||
await tester.tapAt(rect.centerLeft + const Offset(10.0, 0.0));
|
||||
await tester.tapAt(rect.centerLeft + const Offset(10.0, 0.0));
|
||||
await tester.pump();
|
||||
expect(
|
||||
editor.documentSelection,
|
||||
Selection.single(path: [1], startOffset: 0, endOffset: 7),
|
||||
);
|
||||
});
|
||||
|
||||
testWidgets('Test triple tap', (tester) async {
|
||||
const text = 'Welcome to Appflowy 😁';
|
||||
final editor = tester.editor
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text)
|
||||
..insertTextNode(text);
|
||||
await editor.startTesting();
|
||||
|
||||
final secondTextNode = editor.nodeAtPath([1]);
|
||||
final finder = find.byKey(secondTextNode!.key!);
|
||||
|
||||
final rect = tester.getRect(finder);
|
||||
// triple tap
|
||||
await tester.tapAt(rect.centerLeft + const Offset(10.0, 0.0));
|
||||
await tester.tapAt(rect.centerLeft + const Offset(10.0, 0.0));
|
||||
await tester.tapAt(rect.centerLeft + const Offset(10.0, 0.0));
|
||||
await tester.pump();
|
||||
expect(
|
||||
editor.documentSelection,
|
||||
Selection.single(path: [1], startOffset: 0, endOffset: text.length),
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user