summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/src/com/android/mail/utils/UtilsTest.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/src/com/android/mail/utils/UtilsTest.java b/tests/src/com/android/mail/utils/UtilsTest.java
new file mode 100644
index 000000000..36fe6e5a8
--- /dev/null
+++ b/tests/src/com/android/mail/utils/UtilsTest.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) 2014, Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * 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.
+ */
+package com.android.mail.utils;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.style.TextAppearanceSpan;
+
+/**
+ * Tests for {@link Utils}.
+ */
+@SmallTest
+public class UtilsTest extends AndroidTestCase {
+
+ public void testInsertStringWithStyle() {
+ final String entire = "Hello World!";
+ final String sub = "World";
+ final int appearance = android.R.style.TextAppearance_Holo_Small;
+ final Spanned actual = Utils.insertStringWithStyle(
+ getContext(), entire, sub, appearance);
+ final SpannableString expected = new SpannableString(entire);
+ expected.setSpan(new TextAppearanceSpan(getContext(), appearance), 6, 11, 0);
+
+ assertSpannedEquals(expected, actual);
+ }
+
+ public void testInsertStringWithStyle_substringNotInEntire() {
+ final String entire = "Hello World!";
+ final String sub = "foo";
+ final int appearance = android.R.style.TextAppearance_Holo_Small;
+ final Spanned actual = Utils.insertStringWithStyle(
+ getContext(), entire, sub, appearance);
+ final SpannableString expected = new SpannableString(entire);
+
+ assertSpannedEquals(expected, actual);
+ }
+
+ public static void assertSpannedEquals(Spanned expected, Spanned actual) {
+ assertEquals(expected.length(), actual.length());
+ assertEquals(expected.toString(), actual.toString());
+ if (expected.length() > 0) {
+ TextAppearanceSpan[] expectedSpans =
+ expected.getSpans(0, expected.length(), TextAppearanceSpan.class);
+ TextAppearanceSpan[] actualSpans =
+ actual.getSpans(0, actual.length(), TextAppearanceSpan.class);
+ assertEquals(expectedSpans.length, actualSpans.length);
+ for (int i = 0 ; i < expectedSpans.length ; i++) {
+ assertTextAppearanceSpanEquals(expectedSpans[i], actualSpans[i]);
+ }
+ }
+ }
+
+ public static void assertTextAppearanceSpanEquals(
+ TextAppearanceSpan expected, TextAppearanceSpan actual) {
+ assertEquals(expected.describeContents(), actual.describeContents());
+ assertEquals(expected.getTextStyle(), actual.getTextStyle());
+ assertEquals(expected.getTextColor(), actual.getTextColor());
+ assertEquals(expected.getLinkTextColor(), actual.getLinkTextColor());
+ assertEquals(expected.getFamily(), actual.getFamily());
+ assertEquals(expected.getTextSize(), actual.getTextSize());
+ }
+}