summaryrefslogtreecommitdiff
path: root/app/src/androidTest/legacy/TestProviderListActivity.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2018-01-29 16:12:02 +0100
committercyBerta <cyberta@riseup.net>2018-01-29 16:12:02 +0100
commit5c158ea0b57c116744b33392fcd5ebcac21f8fe0 (patch)
tree9fa11d892e5b419b5381e6f555c0c879e3c36cf6 /app/src/androidTest/legacy/TestProviderListActivity.java
parenta22a22d8fffb312b0d6dfdf545ff6fe6f05dbcee (diff)
#8818 keep legacy ui tests in seperate foler until tests are reimplemented
Diffstat (limited to 'app/src/androidTest/legacy/TestProviderListActivity.java')
-rw-r--r--app/src/androidTest/legacy/TestProviderListActivity.java114
1 files changed, 114 insertions, 0 deletions
diff --git a/app/src/androidTest/legacy/TestProviderListActivity.java b/app/src/androidTest/legacy/TestProviderListActivity.java
new file mode 100644
index 00000000..4ab705e7
--- /dev/null
+++ b/app/src/androidTest/legacy/TestProviderListActivity.java
@@ -0,0 +1,114 @@
+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.ProviderListActivity;
+import se.leap.bitmaskclient.R;
+
+public class TestProviderListActivity extends ActivityInstrumentationTestCase2<ProviderListActivity> {
+
+ private Solo solo;
+
+ public TestProviderListActivity() {
+ super(ProviderListActivity.class);
+ }
+
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ solo = new Solo(getInstrumentation(), getActivity());
+ Screenshot.initialize(solo);
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ solo.finishOpenedActivities();
+ super.tearDown();
+ }
+
+ /**
+ * Tests should run independently from each other. We need a better approach to test the amount of providers added
+ */
+ /*public void testListProviders() {
+ assertEquals(solo.getCurrentViews(ListView.class).size(), 1);
+
+ 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() {
+ Screenshot.take("Initial CW");
+ selectProvider("demo.bitmask.net");
+ }
+
+ private void selectProvider(String provider) {
+ solo.clickOnText(provider);
+ Screenshot.setTimeToSleep(1);
+ Screenshot.take("Configuring provider");
+ waitForProviderDetails();
+ }
+
+ private void waitForProviderDetails() {
+ String text = solo.getString(R.string.provider_details_title);
+ assertTrue("Provider details dialog did not appear", solo.waitForText(text, 1, 60*1000));
+ Screenshot.take("Provider details");
+ }
+
+ public void testAddNewProvider() {
+ //addProvider("calyx.net");
+ addProvider("riseup.net", true);
+ }
+
+ public void testAddFalseProviderReturning404() {
+ //addProvider("calyx.net");
+ addProvider("startpage.com", false);
+ }
+
+ public void testAddFalseProviderReturning200() {
+ //addProvider("calyx.net");
+ addProvider("test.com", false);
+ }
+
+ private void addProvider(String url, boolean expectSuccess) {
+
+ solo.clickOnActionBarItem(R.id.new_provider);
+ solo.enterText(0, url);
+ if ( BuildConfig.FLAVOR.equals("insecure")) {
+ solo.clickOnCheckBox(0);
+ }
+ solo.clickOnText(solo.getString(R.string.save));
+ if (expectSuccess) {
+ waitForProviderDetails();
+ } else {
+ waitForNoValidProviderError();
+ }
+ solo.goBack();
+ }
+
+ private void waitForNoValidProviderError() {
+ String text = solo.getString(R.string.malformed_url);
+ assertTrue("Provider details dialog did not appear", solo.waitForText(text, 1, 60*1000));
+ }
+
+}