appflowy-editor/test/customer/custom_editor_directionality_test.dart

64 lines
2 KiB
Dart
Raw Normal View History

import 'package:appflowy_editor/appflowy_editor.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:network_image_mock/network_image_mock.dart';
void main() async {
2023-09-15 16:13:49 +08:00
await AppFlowyEditorLocalizations.load(
const Locale.fromSubtags(languageCode: 'en'),
);
testWidgets('wrapp editor with directionality', (tester) async {
await mockNetworkImagesFor(() async {
const widget = DirectionalityTester();
await tester.pumpWidget(widget);
await tester.pumpAndSettle();
final editorState = tester
.widget(find.byType(AppFlowyEditor))
.unwrapOrNull<AppFlowyEditor>()!
.editorState;
final Node headerNode = editorState.getNodeAtPath([0])!;
final Node textNode = editorState.getNodeAtPath([1])!;
expect(headerNode.selectable?.textDirection(), TextDirection.rtl);
expect(textNode.selectable?.textDirection(), TextDirection.rtl);
});
});
}
class DirectionalityTester extends StatelessWidget {
const DirectionalityTester({super.key});
@override
Widget build(BuildContext context) {
final document = Document.blank()
..insert(
[0],
[
headingNode(level: 1, delta: Delta()..insert('سلام از Appflowy')),
2023-09-13 15:26:29 +08:00
paragraphNode(text: 'این یک متن راست به چپ است'),
],
);
final editorState = EditorState(document: document);
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: SizedBox(
width: 500,
child: Directionality(
textDirection: TextDirection.rtl,
child: AppFlowyEditor(
editorState: editorState,
blockComponentBuilders: standardBlockComponentBuilderMap,
commandShortcutEvents: standardCommandShortcutEvents,
characterShortcutEvents: standardCharacterShortcutEvents,
),
),
),
),
),
);
}
}