summaryrefslogtreecommitdiffstats
path: root/chips/tests
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2011-11-02 13:33:18 -0700
committerMindy Pereira <mindyp@google.com>2011-11-02 15:43:36 -0700
commit8faa56ff909edb20154219f8d2ba6feecf1b5238 (patch)
treeb87958758029a45d408ce9e0f6f4500b9cc17790 /chips/tests
parent1d1940c6f20552fee84662cbb473d24d93f1f8f1 (diff)
downloadandroid_frameworks_ex-8faa56ff909edb20154219f8d2ba6feecf1b5238.tar.gz
android_frameworks_ex-8faa56ff909edb20154219f8d2ba6feecf1b5238.tar.bz2
android_frameworks_ex-8faa56ff909edb20154219f8d2ba6feecf1b5238.zip
If message starts with > 50 chips, dont chipify anything.
Also added test cases for new plain text version when there are too many recips. fixes b/5556474 Gmail ANR when replyi-all to a msg with many recipients Change-Id: I69ba560bf8d8112b81a582aee17a07bf3da1aa65
Diffstat (limited to 'chips/tests')
-rw-r--r--chips/tests/src/com/android/ex/chips/ChipsTest.java95
1 files changed, 88 insertions, 7 deletions
diff --git a/chips/tests/src/com/android/ex/chips/ChipsTest.java b/chips/tests/src/com/android/ex/chips/ChipsTest.java
index e56de61..4d662f3 100644
--- a/chips/tests/src/com/android/ex/chips/ChipsTest.java
+++ b/chips/tests/src/com/android/ex/chips/ChipsTest.java
@@ -41,9 +41,9 @@ public class ChipsTest extends AndroidTestCase {
private Editable mEditable;
- class MockRecipientEditTextView extends RecipientEditTextView {
+ class BaseMockRecipientEditTextView extends RecipientEditTextView {
- public MockRecipientEditTextView(Context context) {
+ public BaseMockRecipientEditTextView(Context context) {
super(context, null);
mTokenizer = new Rfc822Tokenizer();
setTokenizer(mTokenizer);
@@ -55,6 +55,35 @@ public class ChipsTest extends AndroidTestCase {
}
@Override
+ public int getLineHeight() {
+ return 48;
+ }
+
+ @Override
+ Drawable getChipBackground(RecipientEntry contact) {
+ return createChipBackground();
+ }
+
+ @Override
+ public int getViewWidth() {
+ return 100;
+ }
+ }
+
+ class MockRecipientEditTextView extends BaseMockRecipientEditTextView {
+
+ public MockRecipientEditTextView(Context context) {
+ super(context);
+ mTokenizer = new Rfc822Tokenizer();
+ setTokenizer(mTokenizer);
+ }
+
+ @Override
+ public RecipientChip[] getSortedRecipients() {
+ return mMockRecips;
+ }
+
+ @Override
public Editable getText() {
return mEditable;
}
@@ -83,6 +112,11 @@ public class ChipsTest extends AndroidTestCase {
public String toString() {
return mEditable != null ? mEditable.toString() : "";
}
+
+ @Override
+ public int getViewWidth() {
+ return 100;
+ }
}
private MockRecipientEditTextView createViewForTesting() {
@@ -191,6 +225,53 @@ public class ChipsTest extends AndroidTestCase {
assertEquals(mEditable.toString(), (first + second));
}
+ public void testMoreChipPlainText() {
+ MockRecipientEditTextView view = createViewForTesting();
+ view.setMoreItem(createTestMoreItem());
+ String first = (String) mTokenizer.terminateToken("FIRST");
+ String second = (String) mTokenizer.terminateToken("SECOND");
+ String third = (String) mTokenizer.terminateToken("THIRD");
+ mEditable = new SpannableStringBuilder();
+ mEditable.append(first+second+third);
+ int thirdStart = mEditable.toString().indexOf(third);
+ int thirdEnd = thirdStart + third.trim().length();
+ view.createMoreChipPlainText();
+ ImageSpan moreChip = view.getMoreChip();
+ assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd + 1);
+ }
+
+ public void testCountTokens() {
+ MockRecipientEditTextView view = createViewForTesting();
+ view.setMoreItem(createTestMoreItem());
+ String first = (String) mTokenizer.terminateToken("FIRST");
+ String second = (String) mTokenizer.terminateToken("SECOND");
+ String third = (String) mTokenizer.terminateToken("THIRD");
+ String fourth = (String) ("FOURTH,");
+ String fifth = (String) ("FIFTH,");
+ mEditable = new SpannableStringBuilder();
+ mEditable.append(first+second+third+fourth+fifth);
+ assertEquals(view.countTokens(mEditable), 5);
+ }
+
+ public void testTooManyRecips() {
+ BaseMockRecipientEditTextView view = new BaseMockRecipientEditTextView(getContext());
+ view.setMoreItem(createTestMoreItem());
+ for (int i = 0; i < 100; i++) {
+ view.append(mTokenizer.terminateToken(i + ""));
+ }
+ assertEquals(view.countTokens(view.getText()), 100);
+ view.handlePendingChips();
+ view.createMoreChip();
+ ImageSpan moreChip = view.getMoreChip();
+ // We show 2 chips then place a more chip.
+ int secondStart = view.getText().toString().indexOf(
+ (String) mTokenizer.terminateToken(RecipientEditTextView.CHIP_LIMIT + ""));
+ assertEquals(view.getText().getSpanStart(moreChip), secondStart);
+ assertEquals(view.getText().getSpanEnd(moreChip), view.length());
+ assertEquals(view.getSortedRecipients(), null);
+ }
+
public void testMoreChip() {
// Add 3 chips: this is the trigger point at which the more chip will be created.
// Test that adding the chips and then creating and removing the more chip, as if
@@ -221,7 +302,7 @@ public class ChipsTest extends AndroidTestCase {
// Find the more chip.
ImageSpan moreChip = view.getMoreChip();
assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
- assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd + 1);
view.removeMoreChip();
assertEquals(mEditable.toString(), first+second+third);
@@ -241,7 +322,7 @@ public class ChipsTest extends AndroidTestCase {
// Find the more chip.
moreChip = view.getMoreChip();
assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
- assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd + 1);
view.removeMoreChip();
assertEquals(mEditable.toString(), first+second+third);
@@ -311,7 +392,7 @@ public class ChipsTest extends AndroidTestCase {
// Find the more chip.
ImageSpan moreChip = view.getMoreChip();
assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
- assertEquals(mEditable.getSpanEnd(moreChip), tenthEnd);
+ assertEquals(mEditable.getSpanEnd(moreChip), tenthEnd + 1);
view.removeMoreChip();
assertEquals(mEditable.toString(), first + second + third + fourth + fifth + sixth
@@ -361,7 +442,7 @@ public class ChipsTest extends AndroidTestCase {
// Find the more chip.
ImageSpan moreChip = view.getMoreChip();
assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
- assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdEnd + 1);
view.removeMoreChip();
assertEquals(mEditable.toString(), first+second+third);
@@ -405,7 +486,7 @@ public class ChipsTest extends AndroidTestCase {
// Find the more chip.
ImageSpan moreChip = view.getMoreChip();
assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
- assertEquals(mEditable.getSpanEnd(moreChip), thirdNextEnd);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdNextEnd + 1);
view.removeMoreChip();
assertEquals(mEditable.toString(), first+second+third+third);