From ddce34d05820a01a3505c13779923160a6a268dd Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Mon, 7 Sep 2015 12:46:35 -0700 Subject: Change all database accessors to use singleton --- app/src/androidTest/java/org/connectbot/StartupTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/src/androidTest/java/org') diff --git a/app/src/androidTest/java/org/connectbot/StartupTest.java b/app/src/androidTest/java/org/connectbot/StartupTest.java index a60d00e..2dc75dd 100644 --- a/app/src/androidTest/java/org/connectbot/StartupTest.java +++ b/app/src/androidTest/java/org/connectbot/StartupTest.java @@ -58,7 +58,7 @@ public class StartupTest { @Before public void makeDatabasePristine() { - HostDatabase db = new HostDatabase(InstrumentationRegistry.getTargetContext()); + HostDatabase db = HostDatabase.get(InstrumentationRegistry.getTargetContext()); db.resetDatabase(); mActivityRule.launchActivity(new Intent()); -- cgit v1.2.3 From 40d14f414255c5b06b6e31fc8894cbda79ca5fd6 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Mon, 7 Sep 2015 12:58:41 -0700 Subject: Use in-memory database for instrumentation testing --- app/src/androidTest/java/org/connectbot/StartupTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/src/androidTest/java/org') diff --git a/app/src/androidTest/java/org/connectbot/StartupTest.java b/app/src/androidTest/java/org/connectbot/StartupTest.java index 2dc75dd..6bde448 100644 --- a/app/src/androidTest/java/org/connectbot/StartupTest.java +++ b/app/src/androidTest/java/org/connectbot/StartupTest.java @@ -58,8 +58,7 @@ public class StartupTest { @Before public void makeDatabasePristine() { - HostDatabase db = HostDatabase.get(InstrumentationRegistry.getTargetContext()); - db.resetDatabase(); + HostDatabase.resetInMemoryInstance(InstrumentationRegistry.getTargetContext()); mActivityRule.launchActivity(new Intent()); } -- cgit v1.2.3 From 0efa05c1d24ef32808dae66f0aeec405eb723507 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Mon, 7 Sep 2015 22:22:18 -0700 Subject: Optimize imports in StartupTest --- app/src/androidTest/java/org/connectbot/StartupTest.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'app/src/androidTest/java/org') diff --git a/app/src/androidTest/java/org/connectbot/StartupTest.java b/app/src/androidTest/java/org/connectbot/StartupTest.java index 6bde448..9b725ef 100644 --- a/app/src/androidTest/java/org/connectbot/StartupTest.java +++ b/app/src/androidTest/java/org/connectbot/StartupTest.java @@ -1,29 +1,20 @@ package org.connectbot; -import org.connectbot.bean.HostBean; import org.connectbot.util.HostDatabase; -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import android.content.Context; import android.content.Intent; import android.content.res.Resources; -import android.support.annotation.ColorInt; import android.support.annotation.ColorRes; -import android.support.annotation.NonNull; import android.support.annotation.StringRes; import android.support.test.InstrumentationRegistry; import android.support.test.espresso.intent.Intents; -import android.support.test.espresso.matcher.BoundedMatcher; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; @@ -34,7 +25,6 @@ import static android.support.test.espresso.action.ViewActions.pressBack; import static android.support.test.espresso.action.ViewActions.pressImeActionButton; import static android.support.test.espresso.action.ViewActions.pressMenuKey; import static android.support.test.espresso.action.ViewActions.typeText; -import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.intent.Intents.intended; import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent; @@ -58,7 +48,8 @@ public class StartupTest { @Before public void makeDatabasePristine() { - HostDatabase.resetInMemoryInstance(InstrumentationRegistry.getTargetContext()); + Context testContext = InstrumentationRegistry.getTargetContext(); + HostDatabase.resetInMemoryInstance(testContext); mActivityRule.launchActivity(new Intent()); } -- cgit v1.2.3 From 02773d548ff5eaac9ac0e40c62345ea31419be61 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Fri, 11 Sep 2015 15:19:18 -0700 Subject: Try to add workaround for Espresso test race The keyboard was not dismissing before the next espresso action ran, so it would send the input event to the wrong window and cause a security exception. --- .../java/org/connectbot/StartupTest.java | 42 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) (limited to 'app/src/androidTest/java/org') diff --git a/app/src/androidTest/java/org/connectbot/StartupTest.java b/app/src/androidTest/java/org/connectbot/StartupTest.java index 9b725ef..05b7ba0 100644 --- a/app/src/androidTest/java/org/connectbot/StartupTest.java +++ b/app/src/androidTest/java/org/connectbot/StartupTest.java @@ -1,6 +1,7 @@ package org.connectbot; import org.connectbot.util.HostDatabase; +import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -12,14 +13,17 @@ import android.content.res.Resources; import android.support.annotation.ColorRes; import android.support.annotation.StringRes; import android.support.test.InstrumentationRegistry; +import android.support.test.espresso.UiController; +import android.support.test.espresso.ViewAction; +import android.support.test.espresso.action.CloseKeyboardAction; import android.support.test.espresso.intent.Intents; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; +import android.view.View; import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard; import static android.support.test.espresso.action.ViewActions.longClick; import static android.support.test.espresso.action.ViewActions.pressBack; import static android.support.test.espresso.action.ViewActions.pressImeActionButton; @@ -153,4 +157,40 @@ public class StartupTest { onView(withId(R.id.console_flip)).check(matches( hasDescendant(allOf(isDisplayed(), withId(R.id.terminal_view))))); } + + /* + * This is to work around a race condition where the software keyboard does not dismiss in time + * and you get a Security Exception. + * + * From: https://code.google.com/p/android-test-kit/issues/detail?id=79#c7 + */ + public static ViewAction closeSoftKeyboard() { + return new ViewAction() { + /** + * The delay time to allow the soft keyboard to dismiss. + */ + private static final long KEYBOARD_DISMISSAL_DELAY_MILLIS = 1000L; + + /** + * The real {@link CloseKeyboardAction} instance. + */ + private final ViewAction mCloseSoftKeyboard = new CloseKeyboardAction(); + + @Override + public Matcher getConstraints() { + return mCloseSoftKeyboard.getConstraints(); + } + + @Override + public String getDescription() { + return mCloseSoftKeyboard.getDescription(); + } + + @Override + public void perform(final UiController uiController, final View view) { + mCloseSoftKeyboard.perform(uiController, view); + uiController.loopMainThreadForAtLeast(KEYBOARD_DISMISSAL_DELAY_MILLIS); + } + }; + } } -- cgit v1.2.3 From 43fb4e2ff64c777389e9d90393f8711ee7f9f063 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Fri, 11 Sep 2015 15:20:38 -0700 Subject: Rename the "red" host test entry to be more unique --- app/src/androidTest/java/org/connectbot/StartupTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'app/src/androidTest/java/org') diff --git a/app/src/androidTest/java/org/connectbot/StartupTest.java b/app/src/androidTest/java/org/connectbot/StartupTest.java index 05b7ba0..14eabff 100644 --- a/app/src/androidTest/java/org/connectbot/StartupTest.java +++ b/app/src/androidTest/java/org/connectbot/StartupTest.java @@ -101,9 +101,9 @@ public class StartupTest { } @Test - public void localConnectionCanChangeToRed() throws Exception { - startNewLocalConnectionAndGoBack("Local1"); - changeColor("Local1", R.color.red, R.string.color_red); + public void localConnectionCanChangeToRed() { + startNewLocalConnectionAndGoBack("RedLocal"); + changeColor("RedLocal", R.color.red, R.string.color_red); } /** -- cgit v1.2.3