summaryrefslogtreecommitdiff
path: root/app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java')
-rw-r--r--app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java106
1 files changed, 74 insertions, 32 deletions
diff --git a/app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java b/app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java
index 229c3452..755f83a7 100644
--- a/app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java
+++ b/app/src/androidTest/java/se/leap/bitmaskclient/test/testConfigurationWizard.java
@@ -1,14 +1,10 @@
package se.leap.bitmaskclient.test;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.ListView;
-import com.robotium.solo.Solo;
-import java.io.IOException;
-import se.leap.bitmaskclient.AboutActivity;
-import se.leap.bitmaskclient.ConfigurationWizard;
-import se.leap.bitmaskclient.ProviderDetailFragment;
-import se.leap.bitmaskclient.R;
-import se.leap.bitmaskclient.test.ConnectionManager;
+import android.test.*;
+import android.widget.*;
+import com.robotium.solo.*;
+import java.io.*;
+import se.leap.bitmaskclient.*;
public class testConfigurationWizard extends ActivityInstrumentationTestCase2<ConfigurationWizard> {
@@ -19,10 +15,15 @@ public class testConfigurationWizard extends ActivityInstrumentationTestCase2<Co
super(ConfigurationWizard.class);
}
+ public testConfigurationWizard(Solo solo) {
+ super(ConfigurationWizard.class);
+ this.solo = solo;
+ }
+
@Override
protected void setUp() throws Exception {
super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
+ solo = new Solo(getInstrumentation(), getActivity());
ConnectionManager.setMobileDataEnabled(true, solo.getCurrentActivity().getApplicationContext());
}
@@ -31,35 +32,76 @@ public class testConfigurationWizard extends ActivityInstrumentationTestCase2<Co
solo.finishOpenedActivities();
}
- public void testListProviders() throws IOException {
+ public void testListProviders() {
assertEquals(solo.getCurrentViews(ListView.class).size(), 1);
-
- int number_of_available_providers = solo.getCurrentViews(ListView.class).get(0).getCount();
-
- assertEquals("Number of available providers differ", solo.getCurrentActivity().getAssets().list("urls").length + added_providers, number_of_available_providers);
+
+ assertEquals("Number of available providers differ", predefinedProviders() + added_providers, shownProviders());
}
+
+ private int shownProviders() {
+ return solo.getCurrentViews(ListView.class).get(0).getCount();
+ }
+
+ private int predefinedProviders() {
+ int predefined_providers = 0;
+ try {
+ predefined_providers = solo.getCurrentActivity().getAssets().list("urls").length;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return predefined_providers;
+ }
+
+ return predefined_providers;
+ }
public void testSelectProvider() {
- solo.clickOnText("bitmask");
- assertTrue("Provider details dialog did not appear", solo.waitForFragmentByTag(ProviderDetailFragment.TAG, 60*1000));
+ selectProvider("demo.bitmask.net");
}
-
- public void testAddNewProvider() {
- solo.clickOnActionBarItem(R.id.new_provider);
- solo.enterText(0, "calyx.net");
- solo.clickOnCheckBox(0);
- solo.clickOnText(solo.getString(R.string.save));
- added_providers = added_providers+1;
- assertTrue("Provider details dialog did not appear", solo.waitForFragmentByTag(ProviderDetailFragment.TAG, 60*1000));
- solo.goBack();
+
+ private void selectProvider(String provider) {
+ solo.clickOnText(provider);
+ waitForProviderDetails();
+ }
+
+ private void waitForProviderDetails() {
+ String text = solo.getString(R.string.provider_details_fragment_title);
+ assertTrue("Provider details dialog did not appear", solo.waitForText(text));
+ }
+
+ public void testAddNewProvider() {
+ addProvider("calyx.net");
}
+
+ private void addProvider(String url) {
+ boolean is_new_provider = !solo.searchText(url);
+ if(is_new_provider)
+ added_providers = added_providers+1;
+ solo.clickOnActionBarItem(R.id.new_provider);
+ solo.enterText(0, url);
+ solo.clickOnCheckBox(0);
+ solo.clickOnText(solo.getString(R.string.save));
+ waitForProviderDetails();
+ solo.goBack();
+ }
public void testShowAbout() {
- solo.clickOnMenuItem(solo.getString(R.string.about));
- assertTrue("Provider details dialog did not appear", solo.waitForActivity(AboutActivity.class));
- }
-
- public void testShowSettings() {
- //TODO We still don't have the settings button
+ showAbout();
}
+
+ private void showAbout() {
+ String text = solo.getString(R.string.about);
+ solo.clickOnMenuItem(text);
+ assertTrue("Provider details dialog did not appear", solo.waitForActivity(AboutActivity.class));
+ }
+
+ protected void toDashboard(String provider) {
+ selectProvider(provider);
+ useAnonymously();
+ }
+
+ private void useAnonymously() {
+ String text = solo.getString(R.string.use_anonymously_button);
+ solo.clickOnText(text);
+ solo.waitForText(solo.getString(R.string.title_activity_dashboard));
+ }
}