diff options
author | Mindy Pereira <mindyp@google.com> | 2011-09-20 12:21:55 -0700 |
---|---|---|
committer | Mindy Pereira <mindyp@google.com> | 2011-09-20 15:38:42 -0700 |
commit | 4031c89f46edea42c64e183e46d49484f1f203c0 (patch) | |
tree | 8c1a144576b71a36ebc9354949dc318cb1da6360 /chips/tests | |
parent | c7afc9841ee6dd3bc5e19ee7269fecd466a8c6e9 (diff) | |
download | android_frameworks_ex-4031c89f46edea42c64e183e46d49484f1f203c0.tar.gz android_frameworks_ex-4031c89f46edea42c64e183e46d49484f1f203c0.tar.bz2 android_frameworks_ex-4031c89f46edea42c64e183e46d49484f1f203c0.zip |
Add test cases for creating display tex and sanitzing spans.
Also, fixed a case we didn't catch where if the span start
was -1, we would crash.
Change-Id: Ia7d70dee117632ef2064c1f592fdc09694014846
Diffstat (limited to 'chips/tests')
-rw-r--r-- | chips/tests/Android.mk | 18 | ||||
-rw-r--r-- | chips/tests/src/com/android/ex/chips/ChipsTest.java | 105 |
2 files changed, 113 insertions, 10 deletions
diff --git a/chips/tests/Android.mk b/chips/tests/Android.mk index 25bba07..42bb6a3 100644 --- a/chips/tests/Android.mk +++ b/chips/tests/Android.mk @@ -11,18 +11,18 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) -LOCAL_PATH := $(call my-dir) +LOCAL_SRC_FILES := $(call all-java-files-under, src) -include $(CLEAR_VARS) -LOCAL_CERTIFICATE := vendor/unbundled_google/libraries/certs/app -LOCAL_JAVA_LIBRARIES := android.test.runner -LOCAL_MODULE_TAGS := tests LOCAL_PACKAGE_NAME := ChipsTests +LOCAL_MODULE_TAGS := tests LOCAL_SDK_VERSION := current -LOCAL_SRC_FILES := $(call all-java-files-under, src) -LOCAL_STATIC_JAVA_LIBRARIES := android-common-chips - -LOCAL_PROGUARD_ENABLED := disabled +LOCAL_CERTIFICATE := platform +LOCAL_JAVA_LIBRARIES := android.test.runner +LOCAL_STATIC_JAVA_LIBRARIES += android-common-chips +LOCAL_RESOURCE_DIR := frameworks/ex/chips/res/ include $(BUILD_PACKAGE) + diff --git a/chips/tests/src/com/android/ex/chips/ChipsTest.java b/chips/tests/src/com/android/ex/chips/ChipsTest.java index bafd812..0e0be93 100644 --- a/chips/tests/src/com/android/ex/chips/ChipsTest.java +++ b/chips/tests/src/com/android/ex/chips/ChipsTest.java @@ -16,11 +16,114 @@ package com.android.ex.chips; +import android.content.Context; import android.test.AndroidTestCase; +import android.text.Editable; +import android.text.SpannableStringBuilder; +import android.text.util.Rfc822Tokenizer; + +import com.android.ex.chips.RecipientEditTextView; +import com.android.ex.chips.RecipientEntry; + public class ChipsTest extends AndroidTestCase { + private RecipientChip[] mMockRecips = new RecipientChip[5]; + + private RecipientEntry[] mMockEntries = new RecipientEntry[5]; + + private Rfc822Tokenizer mTokenizer; + + private Editable mEditable; + + class MockRecipientEditTextView extends RecipientEditTextView { + + public MockRecipientEditTextView(Context context) { + super(context, null); + mTokenizer = new Rfc822Tokenizer(); + setTokenizer(mTokenizer); + for (int i = 0; i < mMockRecips.length; i++) { + mMockEntries[i] = RecipientEntry.constructGeneratedEntry("user", + "user@username.com"); + } + for (int i = 0; i < mMockRecips.length; i++) { + mMockRecips[i] = new RecipientChip(null, mMockEntries[i], i); + } + } + + @Override + public RecipientChip[] getSortedRecipients() { + return mMockRecips; + } + + @Override + public Editable getText() { + return mEditable; + } + + @Override + public Editable getSpannable() { + return mEditable; + } + } + + private MockRecipientEditTextView createViewForTesting() { + mEditable = new SpannableStringBuilder(); + MockRecipientEditTextView view = new MockRecipientEditTextView(getContext()); + return view; + } + + public void testCreateDisplayText() { + RecipientEditTextView view = createViewForTesting(); + RecipientEntry entry = RecipientEntry.constructGeneratedEntry("User Name, Jr", + "user@username.com"); + String test = view.createDisplayText(entry); + assertEquals("Expected a properly formatted RFC email address", + "\"User Name, Jr\" <user@username.com>, ", test); + + RecipientEntry alreadyFormatted = RecipientEntry.constructFakeEntry("user@username.com, "); + test = view.createDisplayText(alreadyFormatted); + assertEquals("Expected a properly formatted RFC email address", "<user@username.com>, ", + test); + + RecipientEntry alreadyFormattedNoSpace = RecipientEntry + .constructFakeEntry("user@username.com,"); + test = view.createDisplayText(alreadyFormattedNoSpace); + assertEquals("Expected a properly formatted RFC email address", "<user@username.com>, ", + test); + + RecipientEntry alreadyNamed = RecipientEntry.constructGeneratedEntry("User Name", + "\"User Name, Jr\" <user@username.com>"); + test = view.createDisplayText(alreadyNamed); + assertEquals( + "Expected address that used the name not the excess address name", + "User Name <user@username.com>, ", test); + } - public void testSomething() { + public void testSanitizeBetween() { + MockRecipientEditTextView view = createViewForTesting(); + String first = (String) mTokenizer.terminateToken("FIRST"); + String second = (String) mTokenizer.terminateToken("SECOND"); + String extra = "EXTRA"; + mEditable.append(first + extra + second); + int firstStart = mEditable.toString().indexOf(first); + int firstEnd = firstStart + first.length(); + int secondStart = mEditable.toString().indexOf(second); + 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(); + String editableString = mEditable.toString(); + assertEquals(editableString.indexOf(extra), -1); + assertEquals(editableString.indexOf(first), firstStart); + assertEquals(editableString.indexOf(second), secondStart - extra.length()); + assertEquals(editableString, (first + second)); + mEditable = new SpannableStringBuilder(); + mEditable.append(first); + firstStart = mEditable.toString().indexOf(first); + firstEnd = firstStart + first.length(); + mEditable.setSpan(mMockRecips[mMockRecips.length - 1], firstStart, firstEnd, 0); + view.sanitizeBetween(); + assertEquals(mEditable.toString(), first); } } |