summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-11-22 14:45:02 +0100
committercyBerta <cyberta@riseup.net>2023-11-23 09:51:29 +0100
commitfdcc7ac00be21c22e1bd94df06c304f6a7a765be (patch)
tree8be94eae1748a841734abf8f48546b51bfcc17b1
parent60dc24c8f42f505ede765759f2442af6604772a7 (diff)
ensure ProviderSetupTest doesn't fail with fastlane which runs the same test class multuple times with different locales
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java b/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
index b9da0dff..dedb40d7 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/ProviderSetupTest.java
@@ -8,10 +8,14 @@ import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static org.junit.Assert.assertNotNull;
+import static se.leap.bitmaskclient.base.models.Constants.SHARED_ENCRYPTED_PREFERENCES;
import static utils.CustomInteractions.tryResolve;
+import android.app.Activity;
import android.app.Instrumentation;
import android.content.Context;
+import android.content.Intent;
import androidx.test.espresso.ViewInteraction;
import androidx.test.ext.junit.rules.ActivityScenarioRule;
@@ -28,6 +32,11 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
+import se.leap.bitmaskclient.base.MainActivity;
+import se.leap.bitmaskclient.base.StartActivity;
+import se.leap.bitmaskclient.base.models.Provider;
+import se.leap.bitmaskclient.base.models.ProviderObservable;
+import se.leap.bitmaskclient.base.utils.PreferenceHelper;
import se.leap.bitmaskclient.providersetup.activities.SetupActivity;
import tools.fastlane.screengrab.Screengrab;
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
@@ -42,9 +51,9 @@ public class ProviderSetupTest {
@ClassRule
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
- @Rule
- public ActivityScenarioRule<SetupActivity> mActivityScenarioRule =
- new ActivityScenarioRule<>(SetupActivity.class);
+ // @Rule
+ // public ActivityScenarioRule<SetupActivity> mActivityScenarioRule =
+ // new ActivityScenarioRule<>(SetupActivity.class);
UiDevice device;
@@ -54,15 +63,19 @@ public class ProviderSetupTest {
//PreferenceHelper.clear();
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
device = UiDevice.getInstance(instrumentation);
+ instrumentation.getTargetContext().deleteSharedPreferences(SHARED_ENCRYPTED_PREFERENCES);
+ ProviderObservable.getInstance().updateProvider(new Provider());
}
@Test
public void test01_setupProviderDefault() {
+ startSetupActivity();
ProviderSetupUtils.runProviderSetup(device, true, false, InstrumentationRegistry.getInstrumentation().getTargetContext());
}
@Test
public void test02_setupProviderCircumvention() {
+ startSetupActivity();
ProviderSetupUtils.runProviderSetup(device, true, true, InstrumentationRegistry.getInstrumentation().getTargetContext());
}
@@ -72,11 +85,13 @@ public class ProviderSetupTest {
System.out.println("skipping custom provider url test");
return;
}
+ startSetupActivity();
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
ViewInteraction radioButtonSelection = tryResolve(onView(withText(R.string.add_provider)), matches(isDisplayed()));
radioButtonSelection.perform(click());
onView(withId(R.id.edit_customProvider)).perform(replaceText("https://leapvpn.myserver.org"));
+ tryResolve(onView(withId(R.id.edit_customProvider)), matches(withText("https://leapvpn.myserver.org")));
Screengrab.screenshot("setup_custom_provider");
onView(withId(R.id.setup_next_button)).perform(click());
@@ -89,4 +104,15 @@ public class ProviderSetupTest {
20);
Screengrab.screenshot("setup_provider_error_dialog");
}
+
+ private void startSetupActivity() {
+ Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+ Instrumentation.ActivityMonitor setupActivityMonitor = new Instrumentation.ActivityMonitor(SetupActivity.class.getName(), null, false);
+ instrumentation.addMonitor(setupActivityMonitor);
+ Intent intent = new Intent(instrumentation.getTargetContext(), StartActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ instrumentation.startActivitySync(intent);
+ Activity setupActivity = instrumentation.waitForMonitorWithTimeout(setupActivityMonitor, 1000L);
+ assertNotNull(setupActivity);
+ }
}