Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c49581e authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Migrate to Android Testing Support Lib (part 1/N)

This CL converts tests under com.android.inputmethod.latin.utils to
Android Testing Support Library.

Bug: 110805255
Test: verified as follows. No new test failures.
        tapas adb LatinIME LatinIMETests arm64 userdebug && \
        DISABLE_PROGUARD=true make -j LatinIME && \
        adb install -r $OUT/system/app/LatinIME/LatinIME.apk && \
        atest LatinIMETests:com.android.inputmethod.latin.utils
Change-Id: I5cc2ddbc4116003ab6407432ab521b6b560052ae
parent 28022504
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -22,19 +22,28 @@ import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.
import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import android.content.Context;
import android.os.Build;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import android.view.inputmethod.InputMethodSubtype;

import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;

import java.util.Locale;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

@SmallTest
public class AdditionalSubtypeUtilsTests extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public class AdditionalSubtypeUtilsTests {

    /**
     * Predictable subtype ID for en_US dvorak layout. This is actually a hash code calculated as
@@ -98,10 +107,9 @@ public class AdditionalSubtypeUtilsTests extends AndroidTestCase {
            ",EmojiCapable" +
            ",isAdditionalSubtype";

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        final Context context = getContext();
    @Before
    public void setUp() throws Exception {
        final Context context = InstrumentationRegistry.getTargetContext();
        SubtypeLocaleUtils.init(context);
    }

@@ -149,6 +157,7 @@ public class AdditionalSubtypeUtilsTests extends AndroidTestCase {
        assertEquals(SUBTYPE_ID_ZZ_AZERTY, subtype.hashCode());
    }

    @Test
    public void testRestorable() {
        final InputMethodSubtype EN_US_DVORAK =
                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+13 −3
Original line number Diff line number Diff line
@@ -16,12 +16,18 @@

package com.android.inputmethod.latin.utils;

import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import static org.junit.Assert.assertEquals;

import android.support.test.filters.MediumTest;
import android.support.test.runner.AndroidJUnit4;
import android.util.Log;

import org.junit.Test;
import org.junit.runner.RunWith;

@MediumTest
public class AsyncResultHolderTests extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public class AsyncResultHolderTests {
    static final String TAG = AsyncResultHolderTests.class.getSimpleName();

    private static final int TIMEOUT_IN_MILLISECONDS = 500;
@@ -44,12 +50,14 @@ public class AsyncResultHolderTests extends AndroidTestCase {
        }).start();
    }

    @Test
    public void testGetWithoutSet() {
        final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
        final int resultValue = holder.get(DEFAULT_VALUE, TIMEOUT_IN_MILLISECONDS);
        assertEquals(DEFAULT_VALUE, resultValue);
    }

    @Test
    public void testGetBeforeSet() {
        final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
        setAfterGivenTime(holder, SET_VALUE, TIMEOUT_IN_MILLISECONDS + MARGIN_IN_MILLISECONDS);
@@ -57,6 +65,7 @@ public class AsyncResultHolderTests extends AndroidTestCase {
        assertEquals(DEFAULT_VALUE, resultValue);
    }

    @Test
    public void testGetAfterSet() {
        final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
        holder.set(SET_VALUE);
@@ -64,6 +73,7 @@ public class AsyncResultHolderTests extends AndroidTestCase {
        assertEquals(SET_VALUE, resultValue);
    }

    @Test
    public void testGetBeforeTimeout() {
        final AsyncResultHolder<Integer> holder = new AsyncResultHolder<>("Test");
        setAfterGivenTime(holder, SET_VALUE, TIMEOUT_IN_MILLISECONDS - MARGIN_IN_MILLISECONDS);
+13 −4
Original line number Diff line number Diff line
@@ -16,18 +16,26 @@

package com.android.inputmethod.latin.utils;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import android.content.res.Resources;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import android.text.TextUtils;

import com.android.inputmethod.latin.common.LocaleUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;

import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.Locale;

@SmallTest
public class CapsModeUtilsTests extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public class CapsModeUtilsTests {
    private static void onePathForCaps(final CharSequence cs, final int expectedResult,
            final int mask, final SpacingAndPunctuations sp, final boolean hasSpaceBefore) {
        final int oneTimeResult = expectedResult & mask;
@@ -49,6 +57,7 @@ public class CapsModeUtilsTests extends AndroidTestCase {
        onePathForCaps(cs, expectedResult, s, sp, hasSpaceBefore);
    }

    @Test
    public void testGetCapsMode() {
        final int c = TextUtils.CAP_MODE_CHARACTERS;
        final int w = TextUtils.CAP_MODE_WORDS;
@@ -59,7 +68,7 @@ public class CapsModeUtilsTests extends AndroidTestCase {
                return new SpacingAndPunctuations(res);
            }
        };
        final Resources res = getContext().getResources();
        final Resources res = InstrumentationRegistry.getTargetContext().getResources();
        SpacingAndPunctuations sp = job.runInLocale(res, Locale.ENGLISH);
        allPathsForCaps("", c | w | s, sp, false);
        allPathsForCaps("Word", c, sp, false);
+15 −3
Original line number Diff line number Diff line
@@ -16,11 +16,16 @@

package com.android.inputmethod.latin.utils;

import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import com.android.inputmethod.latin.common.CollectionUtils;

import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -28,15 +33,20 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.junit.Test;
import org.junit.runner.RunWith;

/**
 * Tests for {@link CollectionUtils}.
 */
@SmallTest
public class CollectionUtilsTests extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public class CollectionUtilsTests {
    /**
     * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} fails as expected
     * with some invalid inputs.
     */
    @Test
    public void testArrayAsListFailure() {
        final String[] array = { "0", "1" };
        // Negative start
@@ -66,6 +76,7 @@ public class CollectionUtilsTests extends AndroidTestCase {
     * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} gives the expected
     * results for a few valid inputs.
     */
    @Test
    public void testArrayAsList() {
        final ArrayList<String> empty = new ArrayList<>();
        assertEquals(empty, CollectionUtils.arrayAsList(new String[] {}, 0, 0));
@@ -81,6 +92,7 @@ public class CollectionUtilsTests extends AndroidTestCase {
     * Tests that {@link CollectionUtils#isNullOrEmpty(java.util.Collection)} gives the expected
     * results for a few cases.
     */
    @Test
    public void testIsNullOrEmpty() {
        assertTrue(CollectionUtils.isNullOrEmpty((List<String>) null));
        assertTrue(CollectionUtils.isNullOrEmpty((Map<String, String>) null));
+15 −4
Original line number Diff line number Diff line
@@ -16,17 +16,27 @@

package com.android.inputmethod.latin.utils;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import android.content.res.Resources;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;

import com.android.inputmethod.latin.common.LocaleUtils;
import com.android.inputmethod.latin.settings.SpacingAndPunctuations;

import java.util.Locale;

import org.junit.Test;
import org.junit.runner.RunWith;

@SmallTest
public class DictionaryInfoUtilsTests extends AndroidTestCase {
@RunWith(AndroidJUnit4.class)
public class DictionaryInfoUtilsTests {
    @Test
    public void testLooksValidForDictionaryInsertion() {
        final RunInLocale<SpacingAndPunctuations> job = new RunInLocale<SpacingAndPunctuations>() {
            @Override
@@ -34,7 +44,7 @@ public class DictionaryInfoUtilsTests extends AndroidTestCase {
                return new SpacingAndPunctuations(res);
            }
        };
        final Resources res = getContext().getResources();
        final Resources res = InstrumentationRegistry.getTargetContext().getResources();
        final SpacingAndPunctuations sp = job.runInLocale(res, Locale.ENGLISH);
        assertTrue(DictionaryInfoUtils.looksValidForDictionaryInsertion("aochaueo", sp));
        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("", sp));
@@ -46,6 +56,7 @@ public class DictionaryInfoUtilsTests extends AndroidTestCase {
        assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp));
    }

    @Test
    public void testGetMainDictId() {
        assertEquals("main:en",
                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en")));
Loading