mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 03:09:04 +01:00
Add a way to detect if code runs as instrumentation test
and disable some dialogs to make tests easier to write
This commit is contained in:
@@ -19,4 +19,9 @@ public class BriarTestComponentApplication extends BriarApplicationImpl {
|
||||
return component;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInstrumentationTest() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,4 +19,6 @@ public interface BriarApplication extends BrambleApplication {
|
||||
SharedPreferences getDefaultSharedPreferences();
|
||||
|
||||
boolean isRunningInBackground();
|
||||
|
||||
boolean isInstrumentationTest();
|
||||
}
|
||||
|
||||
@@ -151,4 +151,9 @@ public class BriarApplicationImpl extends Application
|
||||
ActivityManager.getMyMemoryState(info);
|
||||
return (info.importance != IMPORTANCE_FOREGROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInstrumentationTest() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,7 +301,9 @@ public class BriarService extends Service {
|
||||
LOG.info("Interrupted while waiting for shutdown");
|
||||
}
|
||||
LOG.info("Exiting");
|
||||
System.exit(0);
|
||||
if (!app.isInstrumentationTest()) {
|
||||
System.exit(0);
|
||||
}
|
||||
}, "BackgroundShutdown");
|
||||
}, "BackgroundShutdown");
|
||||
}
|
||||
|
||||
@@ -44,7 +44,6 @@ import static androidx.lifecycle.Lifecycle.State.STARTED;
|
||||
import static java.util.Collections.emptyList;
|
||||
import static java.util.logging.Level.INFO;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.briar.BuildConfig.FLAVOR;
|
||||
import static org.briarproject.briar.android.TestingConstants.PREVENT_SCREENSHOTS;
|
||||
import static org.briarproject.briar.android.util.UiUtils.hideSoftKeyboard;
|
||||
|
||||
@@ -194,7 +193,9 @@ public abstract class BaseActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
private boolean showScreenFilterWarning() {
|
||||
if (FLAVOR == "screenshot") return false;
|
||||
if (((BriarApplication) getApplication()).isInstrumentationTest()) {
|
||||
return false;
|
||||
}
|
||||
// If the dialog is already visible, filter the tap
|
||||
ScreenFilterDialogFragment f = findDialogFragment();
|
||||
if (f != null && f.isVisible()) return false;
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.bramble.api.system.AndroidWakeLockManager;
|
||||
import org.briarproject.bramble.api.system.Wakeful;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.BriarApplication;
|
||||
import org.briarproject.briar.android.account.UnlockActivity;
|
||||
import org.briarproject.briar.android.controller.BriarController;
|
||||
import org.briarproject.briar.android.controller.DbController;
|
||||
@@ -236,7 +237,8 @@ public abstract class BriarActivity extends BaseActivity {
|
||||
if (SDK_INT >= 21) finishAndRemoveTask();
|
||||
else supportFinishAfterTransition();
|
||||
LOG.info("Exiting");
|
||||
System.exit(0);
|
||||
BriarApplication app = (BriarApplication) getApplication();
|
||||
if (!app.isInstrumentationTest()) System.exit(0);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.settings.Settings;
|
||||
import org.briarproject.bramble.api.settings.SettingsManager;
|
||||
import org.briarproject.bramble.api.system.AndroidWakeLockManager;
|
||||
import org.briarproject.briar.android.BriarApplication;
|
||||
import org.briarproject.briar.android.BriarService;
|
||||
import org.briarproject.briar.android.BriarService.BriarServiceConnection;
|
||||
import org.briarproject.briar.android.controller.handler.ResultHandler;
|
||||
@@ -104,7 +105,8 @@ public class BriarControllerImpl implements BriarController {
|
||||
|
||||
@Override
|
||||
public void hasDozed(ResultHandler<Boolean> handler) {
|
||||
if (!dozeWatchdog.getAndResetDozeFlag()
|
||||
BriarApplication app = (BriarApplication) activity.getApplication();
|
||||
if (app.isInstrumentationTest() || !dozeWatchdog.getAndResetDozeFlag()
|
||||
|| !needsDozeWhitelisting(activity)) {
|
||||
handler.onResult(false);
|
||||
return;
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.briarproject.bramble.api.plugin.Plugin.State;
|
||||
import org.briarproject.bramble.api.plugin.TorConstants;
|
||||
import org.briarproject.bramble.api.plugin.TransportId;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.BriarApplication;
|
||||
import org.briarproject.briar.android.activity.ActivityComponent;
|
||||
import org.briarproject.briar.android.activity.BriarActivity;
|
||||
import org.briarproject.briar.android.blog.FeedFragment;
|
||||
@@ -71,7 +72,6 @@ import static org.briarproject.bramble.api.lifecycle.LifecycleManager.LifecycleS
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.ENABLING;
|
||||
import static org.briarproject.bramble.api.plugin.Plugin.State.STARTING_STOPPING;
|
||||
import static org.briarproject.briar.BuildConfig.FLAVOR;
|
||||
import static org.briarproject.briar.android.BriarService.EXTRA_STARTUP_FAILED;
|
||||
import static org.briarproject.briar.android.TestingConstants.IS_DEBUG_BUILD;
|
||||
import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD;
|
||||
@@ -135,7 +135,8 @@ public class NavDrawerActivity extends BriarActivity implements
|
||||
navDrawerViewModel = provider.get(NavDrawerViewModel.class);
|
||||
pluginViewModel = provider.get(PluginViewModel.class);
|
||||
|
||||
if (IS_DEBUG_BUILD && (FLAVOR != "screenshot")) {
|
||||
BriarApplication app = (BriarApplication) getApplication();
|
||||
if (IS_DEBUG_BUILD && !app.isInstrumentationTest()) {
|
||||
navDrawerViewModel.showExpiryWarning()
|
||||
.observe(this, this::showExpiryWarning);
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.bramble.api.settings.Settings;
|
||||
import org.briarproject.bramble.api.settings.SettingsManager;
|
||||
import org.briarproject.bramble.api.system.AndroidExecutor;
|
||||
import org.briarproject.briar.android.BriarApplication;
|
||||
import org.briarproject.briar.android.viewmodel.DbViewModel;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
@@ -120,7 +121,9 @@ public class NavDrawerViewModel extends DbViewModel {
|
||||
@UiThread
|
||||
void checkDozeWhitelisting() {
|
||||
// check this first, to hit the DbThread only when really necessary
|
||||
if (!needsDozeWhitelisting(getApplication())) {
|
||||
BriarApplication app = (BriarApplication) getApplication();
|
||||
if (app.isInstrumentationTest() ||
|
||||
!needsDozeWhitelisting(getApplication())) {
|
||||
shouldAskForDozeWhitelisting.setValue(false);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user