diff options
-rw-r--r-- | core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java index 242e578..aedfbad 100644 --- a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java +++ b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java @@ -56,6 +56,12 @@ public class AccessibilityInjectorTest private static final int META_STATE_ALT_LEFT_ON = KeyEvent.META_ALT_ON | KeyEvent.META_ALT_LEFT_ON; + /** Prefix for the CSS style span appended by WebKit. */ + private static final String APPLE_SPAN_PREFIX = "<span class=\"Apple-style-span\""; + + /** Suffix for the CSS style span appended by WebKit. */ + private static final String APPLE_SPAN_SUFFIX = "</span>"; + /** The value for not specified selection string since null is a valid value. */ private static final String SELECTION_STRING_UNKNOWN = "Unknown"; @@ -1578,6 +1584,27 @@ public class AccessibilityInjectorTest } /** + * Strips the apple span appended by WebKit while generating + * the selection markup. + * + * @param markup The markup. + * @return Stripped from apple spans markup. + */ + private static String stripAppleSpanFromMarkup(String markup) { + StringBuilder stripped = new StringBuilder(markup); + int prefixBegIdx = stripped.indexOf(APPLE_SPAN_PREFIX); + while (prefixBegIdx >= 0) { + int prefixEndIdx = stripped.indexOf(">", prefixBegIdx) + 1; + stripped.replace(prefixBegIdx, prefixEndIdx, ""); + int suffixBegIdx = stripped.lastIndexOf(APPLE_SPAN_SUFFIX); + int suffixEndIdx = suffixBegIdx + APPLE_SPAN_SUFFIX.length(); + stripped.replace(suffixBegIdx, suffixEndIdx, ""); + prefixBegIdx = stripped.indexOf(APPLE_SPAN_PREFIX); + } + return stripped.toString(); + } + + /** * Disables accessibility and the mock accessibility service. */ private void disableAccessibilityAndMockAccessibilityService() { @@ -1757,7 +1784,11 @@ public class AccessibilityInjectorTest } if (!event.getText().isEmpty()) { CharSequence text = event.getText().get(0); - sReceivedSelectionString = (text != null) ? text.toString() : null; + if (text != null) { + sReceivedSelectionString = stripAppleSpanFromMarkup(text.toString()); + } else { + sReceivedSelectionString = null; + } } synchronized (sTestLock) { sTestLock.notifyAll(); |