diff --git a/briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java b/briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java
index ce6899901..af75f3bbf 100644
--- a/briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java
+++ b/briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java
@@ -4,16 +4,20 @@ import android.app.Activity;
import android.content.Intent;
import org.briarproject.bramble.api.account.AccountManager;
+import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.lifecycle.LifecycleManager;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
+import org.briarproject.bramble.api.settings.Settings;
+import org.briarproject.bramble.api.settings.SettingsManager;
import org.briarproject.briar.R;
-import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.test.espresso.intent.rule.IntentsTestRule;
import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static org.briarproject.briar.android.controller.BriarControllerImpl.DOZE_ASK_AGAIN;
+import static org.briarproject.briar.android.settings.SettingsFragment.SETTINGS_NAMESPACE;
@SuppressWarnings("WeakerAccess")
@@ -27,6 +31,8 @@ public abstract class UiTest {
protected AccountManager accountManager;
@Inject
protected LifecycleManager lifecycleManager;
+ @Inject
+ protected SettingsManager settingsManager;
public UiTest() {
BriarTestComponentApplication app = getApplicationContext();
@@ -39,22 +45,8 @@ public abstract class UiTest {
protected class CleanAccountTestRule
extends IntentsTestRule {
- @Nullable
- private final Runnable runnable;
-
public CleanAccountTestRule(Class activityClass) {
super(activityClass);
- this.runnable = null;
- }
-
- /**
- * Use this if you need to run code before launching the activity.
- * Note: You need to use {@link #launchActivity(Intent)} yourself
- * to start the activity.
- */
- public CleanAccountTestRule(Class activityClass, Runnable runnable) {
- super(activityClass, false, false);
- this.runnable = runnable;
}
@Override
@@ -62,16 +54,17 @@ public abstract class UiTest {
super.beforeActivityLaunched();
accountManager.deleteAccount();
accountManager.createAccount(USERNAME, PASSWORD);
- if (runnable != null) {
- Intent serviceIntent =
- new Intent(getApplicationContext(), BriarService.class);
- getApplicationContext().startService(serviceIntent);
- try {
- lifecycleManager.waitForStartup();
- } catch (InterruptedException e) {
- throw new AssertionError(e);
- }
- runnable.run();
+ Intent serviceIntent =
+ new Intent(getApplicationContext(), BriarService.class);
+ getApplicationContext().startService(serviceIntent);
+ try {
+ lifecycleManager.waitForStartup();
+ // do not show doze white-listing dialog
+ Settings settings = new Settings();
+ settings.putBoolean(DOZE_ASK_AGAIN, false);
+ settingsManager.mergeSettings(settings, SETTINGS_NAMESPACE);
+ } catch (InterruptedException | DbException e) {
+ throw new AssertionError(e);
}
}
}
diff --git a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/conversation/ConversationActivityNotSignedInTest.java b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/conversation/ConversationActivityNotSignedInTest.java
deleted file mode 100644
index be1ce09c4..000000000
--- a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/conversation/ConversationActivityNotSignedInTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.briarproject.briar.android.conversation;
-
-import android.content.Context;
-import android.content.Intent;
-
-import org.briarproject.briar.R;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.rule.ActivityTestRule;
-
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
-import static org.briarproject.briar.android.ViewActions.waitUntilMatches;
-import static org.briarproject.briar.android.conversation.ConversationActivity.CONTACT_ID;
-
-@RunWith(AndroidJUnit4.class)
-public class ConversationActivityNotSignedInTest {
-
- @Rule
- public ActivityTestRule testRule =
- new ActivityTestRule<>(ConversationActivity.class, false, false);
-
- @Test
- public void openWithoutSignedIn() {
- Context targetContext = getInstrumentation().getTargetContext();
- Intent intent = new Intent(targetContext, ConversationActivity.class);
- intent.putExtra(CONTACT_ID, 1);
- testRule.launchActivity(intent);
-
- onView(withText(R.string.sign_in_button))
- .perform(waitUntilMatches(isDisplayed()));
- }
-
-}
diff --git a/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java b/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java
index 2d11280ce..c99250ad8 100644
--- a/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java
+++ b/briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java
@@ -16,6 +16,7 @@ import androidx.test.espresso.contrib.DrawerActions;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.rule.ActivityTestRule;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
@@ -29,7 +30,9 @@ import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.briarproject.briar.android.ViewActions.waitUntilMatches;
+import static org.briarproject.briar.android.util.UiUtils.hasScreenLock;
import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assume.assumeTrue;
@RunWith(AndroidJUnit4.class)
public class SettingsActivityScreenshotTest extends ScreenshotTest {
@@ -76,6 +79,8 @@ public class SettingsActivityScreenshotTest extends ScreenshotTest {
@Test
public void appLock() {
+ assumeTrue("device has no screen lock",
+ hasScreenLock(getApplicationContext()));
// scroll down
onView(withClassName(is(RecyclerView.class.getName())))
.perform(scrollTo(hasDescendant(