diff options
author | 2013-09-24 03:14:57 -0700 | |
---|---|---|
committer | 2013-09-24 03:14:57 -0700 | |
commit | 821bff9202d4ffc5d0ccabdda6bb4f91a83c5838 (patch) | |
tree | c2bc15e6cbdb8ea41e9b071518296c3debb0239e /tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java | |
parent | c3f7ddd73de360c12b9433106d925f61775b108a (diff) | |
parent | 3d68b066626d7e58cbe2853cd186b1ad75b90259 (diff) | |
download | latinime-821bff9202d4ffc5d0ccabdda6bb4f91a83c5838.tar.gz latinime-821bff9202d4ffc5d0ccabdda6bb4f91a83c5838.tar.xz latinime-821bff9202d4ffc5d0ccabdda6bb4f91a83c5838.zip |
am 3d68b066: Copy only the spans we are interested in.
* commit '3d68b066626d7e58cbe2853cd186b1ad75b90259':
Copy only the spans we are interested in.
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java index 4e396a1cf..eb9fb984e 100644 --- a/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java @@ -20,6 +20,11 @@ import com.android.inputmethod.latin.settings.SettingsValues; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; +import android.text.style.SuggestionSpan; +import android.text.style.URLSpan; +import android.text.SpannableStringBuilder; +import android.text.Spannable; +import android.text.Spanned; import java.util.Arrays; import java.util.List; @@ -280,4 +285,34 @@ public class StringUtilsTests extends AndroidTestCase { assertEquals(objs[i], newObjArray.get(i)); } } + + public void testConcatWithSuggestionSpansOnly() { + SpannableStringBuilder s = new SpannableStringBuilder("test string\ntest string\n" + + "test string\ntest string\ntest string\ntest string\ntest string\ntest string\n" + + "test string\ntest string\n"); + final int N = 10; + for (int i = 0; i < N; ++i) { + // Put a PARAGRAPH-flagged span that should not be found in the result. + s.setSpan(new SuggestionSpan(getContext(), + new String[] {"" + i}, Spannable.SPAN_PARAGRAPH), + i * 12, i * 12 + 12, Spannable.SPAN_PARAGRAPH); + // Put a normal suggestion span that should be found in the result. + s.setSpan(new SuggestionSpan(getContext(), new String[] {"" + i}, 0), i, i * 2, 0); + // Put a URL span than should not be found in the result. + s.setSpan(new URLSpan("http://a"), i, i * 2, 0); + } + + final CharSequence a = s.subSequence(0, 15); + final CharSequence b = s.subSequence(15, s.length()); + final Spanned result = + (Spanned)StringUtils.concatWithNonParagraphSuggestionSpansOnly(a, b); + + Object[] spans = result.getSpans(0, result.length(), SuggestionSpan.class); + for (int i = 0; i < spans.length; i++) { + final int flags = result.getSpanFlags(spans[i]); + assertEquals("Should not find a span with PARAGRAPH flag", + flags & Spannable.SPAN_PARAGRAPH, 0); + assertTrue("Should be a SuggestionSpan", spans[i] instanceof SuggestionSpan); + } + } } |