summaryrefslogtreecommitdiffstats
path: root/chips/tests
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2011-09-23 10:50:47 -0700
committerMindy Pereira <mindyp@google.com>2011-09-23 13:23:28 -0700
commita1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1 (patch)
treeb5001ff553ffd350c26fff7d3342039704bf78c6 /chips/tests
parent8a518e93aef58d5ced2d0223a5fd89b996930e26 (diff)
downloadandroid_frameworks_ex-a1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1.tar.gz
android_frameworks_ex-a1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1.tar.bz2
android_frameworks_ex-a1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1.zip
Make the space part of the replacement image span.
This eliminates the need for manually adding extra spaces at the end. This also fixes bug:5323325 Chips sometimes have no spacing between them on deleting since now the space is ALWAYS deleted when the chip is deleted. Change-Id: I8923940a070bcc1ce6894af3efa1449e98aa4830
Diffstat (limited to 'chips/tests')
-rw-r--r--chips/tests/src/com/android/ex/chips/ChipsTest.java81
1 files changed, 63 insertions, 18 deletions
diff --git a/chips/tests/src/com/android/ex/chips/ChipsTest.java b/chips/tests/src/com/android/ex/chips/ChipsTest.java
index f550e96..768e500 100644
--- a/chips/tests/src/com/android/ex/chips/ChipsTest.java
+++ b/chips/tests/src/com/android/ex/chips/ChipsTest.java
@@ -108,9 +108,9 @@ public class ChipsTest extends AndroidTestCase {
mEditable = new SpannableStringBuilder();
mEditable.append(first + extra + second);
int firstStart = mEditable.toString().indexOf(first);
- int firstEnd = firstStart + first.trim().length();
+ int firstEnd = firstStart + first.length();
int secondStart = mEditable.toString().indexOf(second);
- int secondEnd = secondStart + second.trim().length();
+ int secondEnd = secondStart + second.length();
mEditable.setSpan(mMockRecips[mMockRecips.length - 2], firstStart, firstEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 1], secondStart, secondEnd, 0);
view.sanitizeBetween();
@@ -144,11 +144,11 @@ public class ChipsTest extends AndroidTestCase {
mEditable.append(first+second+third);
int firstStart = mEditable.toString().indexOf(first);
- int firstEnd = firstStart + first.trim().length();
+ int firstEnd = firstStart + first.length();
int secondStart = mEditable.toString().indexOf(second);
- int secondEnd = secondStart + second.trim().length();
+ int secondEnd = secondStart + second.length();
int thirdStart = mEditable.toString().indexOf(third);
- int thirdEnd = thirdStart + third.trim().length();
+ int thirdEnd = thirdStart + third.length();
mEditable.setSpan(mMockRecips[mMockRecips.length - 3], firstStart, firstEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 2], secondStart, secondEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 1], thirdStart, thirdEnd, 0);
@@ -211,25 +211,25 @@ public class ChipsTest extends AndroidTestCase {
mEditable.append(first+second+third+fourth+fifth+sixth+seventh+eigth+ninth+tenth);
int firstStart = mEditable.toString().indexOf(first);
- int firstEnd = firstStart + first.trim().length();
+ int firstEnd = firstStart + first.length();
int secondStart = mEditable.toString().indexOf(second);
- int secondEnd = secondStart + second.trim().length();
+ int secondEnd = secondStart + second.length();
int thirdStart = mEditable.toString().indexOf(third);
- int thirdEnd = thirdStart + third.trim().length();
+ int thirdEnd = thirdStart + third.length();
int fourthStart = mEditable.toString().indexOf(fourth);
- int fourthEnd = fourthStart + fourth.trim().length();
+ int fourthEnd = fourthStart + fourth.length();
int fifthStart = mEditable.toString().indexOf(fifth);
- int fifthEnd = fifthStart + fifth.trim().length();
+ int fifthEnd = fifthStart + fifth.length();
int sixthStart = mEditable.toString().indexOf(sixth);
- int sixthEnd = sixthStart + sixth.trim().length();
+ int sixthEnd = sixthStart + sixth.length();
int seventhStart = mEditable.toString().indexOf(seventh);
- int seventhEnd = seventhStart + seventh.trim().length();
+ int seventhEnd = seventhStart + seventh.length();
int eighthStart = mEditable.toString().indexOf(eigth);
- int eighthEnd = eighthStart + eigth.trim().length();
+ int eighthEnd = eighthStart + eigth.length();
int ninthStart = mEditable.toString().indexOf(ninth);
- int ninthEnd = ninthStart + ninth.trim().length();
+ int ninthEnd = ninthStart + ninth.length();
int tenthStart = mEditable.toString().indexOf(tenth);
- int tenthEnd = tenthStart + tenth.trim().length();
+ int tenthEnd = tenthStart + tenth.length();
mEditable.setSpan(mMockRecips[mMockRecips.length - 10], firstStart, firstEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 9], secondStart, secondEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 8], thirdStart, thirdEnd, 0);
@@ -281,11 +281,11 @@ public class ChipsTest extends AndroidTestCase {
mEditable.append(first+second+third);
int firstStart = mEditable.toString().indexOf(first);
- int firstEnd = firstStart + first.trim().length();
+ int firstEnd = firstStart + first.length();
int secondStart = mEditable.toString().indexOf(second);
- int secondEnd = secondStart + second.trim().length();
+ int secondEnd = secondStart + second.length();
int thirdStart = mEditable.toString().indexOf(third);
- int thirdEnd = thirdStart + third.trim().length();
+ int thirdEnd = thirdStart + third.length();
mEditable.setSpan(mMockRecips[mMockRecips.length - 3], firstStart, firstEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 2], secondStart, secondEnd, 0);
mEditable.setSpan(mMockRecips[mMockRecips.length - 1], thirdStart, thirdEnd, 0);
@@ -310,6 +310,51 @@ public class ChipsTest extends AndroidTestCase {
assertEquals(mEditable.getSpanStart(moreChip), -1);
}
+ public void testMoreChipDupes() {
+ populateMocks(4);
+ 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+third);
+
+ int firstStart = mEditable.toString().indexOf(first);
+ int firstEnd = firstStart + first.length();
+ int secondStart = mEditable.toString().indexOf(second);
+ int secondEnd = secondStart + second.length();
+ int thirdStart = mEditable.toString().indexOf(third);
+ int thirdEnd = thirdStart + third.length();
+ int thirdNextStart = mEditable.toString().indexOf(third, thirdEnd);
+ int thirdNextEnd = thirdNextStart + third.length();
+ mEditable.setSpan(mMockRecips[mMockRecips.length - 4], firstStart, firstEnd, 0);
+ mEditable.setSpan(mMockRecips[mMockRecips.length - 3], secondStart, secondEnd, 0);
+ mEditable.setSpan(mMockRecips[mMockRecips.length - 2], thirdStart, thirdEnd, 0);
+ mEditable.setSpan(mMockRecips[mMockRecips.length - 1], thirdNextStart, thirdNextEnd, 0);
+
+ view.createMoreChip();
+ assertEquals(mEditable.toString(), first+second+third+third);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 4]), firstStart);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 3]), secondStart);
+ // Find the more chip.
+ ImageSpan moreChip = view.getMoreChip();
+ assertEquals(mEditable.getSpanStart(moreChip), thirdStart);
+ assertEquals(mEditable.getSpanEnd(moreChip), thirdNextEnd);
+
+ view.removeMoreChip();
+ assertEquals(mEditable.toString(), first+second+third+third);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 4]), firstStart);
+ assertEquals(mEditable.getSpanEnd(mMockRecips[mMockRecips.length - 4]), firstEnd);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 3]), secondStart);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 2]), thirdStart);
+ assertEquals(mEditable.getSpanEnd(mMockRecips[mMockRecips.length - 2]), thirdEnd);
+ assertEquals(mEditable.getSpanStart(mMockRecips[mMockRecips.length - 1]), thirdNextStart);
+ assertEquals(mEditable.getSpanEnd(mMockRecips[mMockRecips.length - 1]), thirdNextEnd);
+ moreChip = view.getMoreChip();
+ assertEquals(mEditable.getSpanStart(moreChip), -1);
+ }
+
private TextView createTestMoreItem() {
TextView view = new TextView(getContext());
view.setText("<xliff:g id='count'>%1$s</xliff:g> more...");