From 174d1591564d92c3d08e390a0f425ede483b09b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20D=C3=A9camps?= Date: Fri, 26 Sep 2014 15:42:43 +0200 Subject: Unit test for Utils Adding a unit test for the bug fixed in Change I42ff06aab20c2a9800abe7daed8cf408eb3c2038 commit 1b7d532f160dca7a3850f50d431cc5bb5b92d85d Change-Id: I29ab714a100cd0b5356de3f4cdca82765afbefd9 --- tests/src/com/android/mail/utils/UtilsTest.java | 77 +++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 tests/src/com/android/mail/utils/UtilsTest.java (limited to 'tests') 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()); + } +} -- cgit v1.2.3