From 0d0b2dbae5461eaa5245e75483a48ead2ca41bf1 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Wed, 3 Nov 2021 19:13:03 -0700 Subject: [PATCH] Replace text directionality control characters with escape sequences in the semantics_tester (#93034) --- packages/flutter/test/widgets/semantics_tester.dart | 9 +++------ ...ntics_expression_for_current_semantics_tree_test.dart | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/flutter/test/widgets/semantics_tester.dart b/packages/flutter/test/widgets/semantics_tester.dart index ed2e8ebb15..03cc46dae7 100644 --- a/packages/flutter/test/widgets/semantics_tester.dart +++ b/packages/flutter/test/widgets/semantics_tester.dart @@ -635,12 +635,9 @@ class SemanticsTester { if (nodeData.actions != 0) buf.writeln(' actions: ${_actionsToSemanticsActionExpression(nodeData.actions)},'); if (node.label != null && node.label.isNotEmpty) { - final String escapedLabel = node.label.replaceAll('\n', r'\n'); - if (escapedLabel != node.label) { - buf.writeln(" label: r'$escapedLabel',"); - } else { - buf.writeln(" label: '$escapedLabel',"); - } + // Escape newlines and text directionality control characters. + final String escapedLabel = node.label.replaceAll('\n', r'\n').replaceAll('\u202a', r'\u202a').replaceAll('\u202c', r'\u202c'); + buf.writeln(" label: '$escapedLabel',"); } if (node.value != null && node.value.isNotEmpty) buf.writeln(" value: '${node.value}',"); diff --git a/packages/flutter/test/widgets/semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test.dart b/packages/flutter/test/widgets/semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test.dart index 0336aaf683..eb3c58f8e1 100644 --- a/packages/flutter/test/widgets/semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test.dart +++ b/packages/flutter/test/widgets/semantics_tester_generate_test_semantics_expression_for_current_semantics_tree_test.dart @@ -132,7 +132,7 @@ void _tests() { tags: [const SemanticsTag('RenderViewport.twoPane')], flags: [SemanticsFlag.hasCheckedState, SemanticsFlag.isChecked, SemanticsFlag.isSelected], actions: [SemanticsAction.tap, SemanticsAction.decrease], - label: '‪Interactive text‬', + label: '\u202aInteractive text\u202c', value: 'test-value', increasedValue: 'test-increasedValue', decreasedValue: 'test-decreasedValue',