diff options
author | Mindy Pereira <mindyp@google.com> | 2011-09-23 10:50:47 -0700 |
---|---|---|
committer | Mindy Pereira <mindyp@google.com> | 2011-09-23 13:23:28 -0700 |
commit | a1d52e9203ea3cdfc0d1c69a8a4f99445fdd5ca1 (patch) | |
tree | b5001ff553ffd350c26fff7d3342039704bf78c6 /chips/tests | |
parent | 8a518e93aef58d5ced2d0223a5fd89b996930e26 (diff) | |
download | android_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.java | 81 |
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..."); |