summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@android.com>2011-04-04 10:17:43 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-04-04 10:17:43 -0700
commit9b1b64399502af0a08beac3014f2294644753602 (patch)
tree5df350ece466c491d51610210dd634ffabdcf185 /core
parentf7a34b15986f8c00bc6fb941a40f9acbe2c21aff (diff)
parent2ed72048828cf9f617da971e5d2b8a062de08e5b (diff)
downloadframeworks_base-9b1b64399502af0a08beac3014f2294644753602.zip
frameworks_base-9b1b64399502af0a08beac3014f2294644753602.tar.gz
frameworks_base-9b1b64399502af0a08beac3014f2294644753602.tar.bz2
am 2ed72048: Merge "Always return a valid index from Rfc822Tokenizer.findTokenEnd()"
* commit '2ed72048828cf9f617da971e5d2b8a062de08e5b': Always return a valid index from Rfc822Tokenizer.findTokenEnd()
Diffstat (limited to 'core')
-rw-r--r--core/java/android/text/util/Rfc822Tokenizer.java4
-rw-r--r--core/tests/coretests/src/android/text/TextUtilsTest.java17
2 files changed, 19 insertions, 2 deletions
diff --git a/core/java/android/text/util/Rfc822Tokenizer.java b/core/java/android/text/util/Rfc822Tokenizer.java
index 69cf93c..68334e4 100644
--- a/core/java/android/text/util/Rfc822Tokenizer.java
+++ b/core/java/android/text/util/Rfc822Tokenizer.java
@@ -256,7 +256,7 @@ public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
if (c == '"') {
i++;
break;
- } else if (c == '\\') {
+ } else if (c == '\\' && i + 1 < len) {
i += 2;
} else {
i++;
@@ -275,7 +275,7 @@ public class Rfc822Tokenizer implements MultiAutoCompleteTextView.Tokenizer {
} else if (c == '(') {
level++;
i++;
- } else if (c == '\\') {
+ } else if (c == '\\' && i + 1 < len) {
i += 2;
} else {
i++;
diff --git a/core/tests/coretests/src/android/text/TextUtilsTest.java b/core/tests/coretests/src/android/text/TextUtilsTest.java
index e111662..79d57f1 100644
--- a/core/tests/coretests/src/android/text/TextUtilsTest.java
+++ b/core/tests/coretests/src/android/text/TextUtilsTest.java
@@ -255,6 +255,23 @@ public class TextUtilsTest extends TestCase {
assertEquals("Foo Bar", tokens[0].getAddress());
}
+ @SmallTest
+ public void testRfc822FindToken() {
+ Rfc822Tokenizer tokenizer = new Rfc822Tokenizer();
+ // 0 1 2 3 4
+ // 0 1234 56789012345678901234 5678 90123456789012345
+ String address = "\"Foo\" <foo@google.com>, \"Bar\" <bar@google.com>";
+ assertEquals(0, tokenizer.findTokenStart(address, 21));
+ assertEquals(22, tokenizer.findTokenEnd(address, 21));
+ assertEquals(24, tokenizer.findTokenStart(address, 25));
+ assertEquals(46, tokenizer.findTokenEnd(address, 25));
+ }
+
+ @SmallTest
+ public void testRfc822FindTokenWithError() {
+ assertEquals(9, new Rfc822Tokenizer().findTokenEnd("\"Foo Bar\\", 0));
+ }
+
@LargeTest
public void testEllipsize() {
CharSequence s1 = "The quick brown fox jumps over \u00FEhe lazy dog.";