summaryrefslogtreecommitdiffstats
path: root/chips/tests
diff options
context:
space:
mode:
authorMindy Pereira <mindyp@google.com>2011-09-20 12:21:55 -0700
committerMindy Pereira <mindyp@google.com>2011-09-20 15:38:42 -0700
commit4031c89f46edea42c64e183e46d49484f1f203c0 (patch)
tree8c1a144576b71a36ebc9354949dc318cb1da6360 /chips/tests
parentc7afc9841ee6dd3bc5e19ee7269fecd466a8c6e9 (diff)
downloadandroid_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.mk18
-rw-r--r--chips/tests/src/com/android/ex/chips/ChipsTest.java105
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);
}
}