summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-01-29 16:29:11 +0100
committerParménides GV <parmegv@sdf.org>2014-01-29 16:29:11 +0100
commit8d1b47a498df5d0f4e4e619f8373aaa1ad4dcd90 (patch)
tree2d1cb95c3dfa9ff2033cdb51aee3ba4c6bc5d633
parent0e6ae1dc4f01a48856755a45e22d4a64991fe8b6 (diff)
testSwitchProvider updated.
It shouldn't expect the previous provider to be back again pressing the back button after hitting "Switch provider".
-rw-r--r--tests/src/se/leap/bitmaskclient/test/testDashboard.java60
1 files changed, 28 insertions, 32 deletions
diff --git a/tests/src/se/leap/bitmaskclient/test/testDashboard.java b/tests/src/se/leap/bitmaskclient/test/testDashboard.java
index 31039797..a6b25c0a 100644
--- a/tests/src/se/leap/bitmaskclient/test/testDashboard.java
+++ b/tests/src/se/leap/bitmaskclient/test/testDashboard.java
@@ -1,18 +1,22 @@
package se.leap.bitmaskclient.test;
-import se.leap.bitmaskclient.ConfigurationWizard;
-import se.leap.bitmaskclient.Dashboard;
-import se.leap.bitmaskclient.R;
-import se.leap.openvpn.MainActivity;
+
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.net.ConnectivityManager;
import android.provider.Settings;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
-
import com.jayway.android.robotium.solo.Solo;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import se.leap.bitmaskclient.ConfigurationWizard;
+import se.leap.bitmaskclient.Dashboard;
+import se.leap.bitmaskclient.R;
+import se.leap.openvpn.MainActivity;
public class testDashboard extends ActivityInstrumentationTestCase2<Dashboard> {
@@ -97,10 +101,6 @@ public class testDashboard extends ActivityInstrumentationTestCase2<Dashboard> {
solo.clickOnMenuItem("Switch provider");
solo.waitForActivity(ConfigurationWizard.class);
solo.goBack();
-
- solo.clickOnMenuItem("Switch provider");
- solo.waitForActivity(ConfigurationWizard.class);
- solo.goBack();
}
public void testIcsOpenVpnInterface() {
@@ -113,28 +113,24 @@ public class testDashboard extends ActivityInstrumentationTestCase2<Dashboard> {
solo.waitForActivity(MainActivity.class);
}
- private void setAirplaneMode(boolean airplane_mode) {
- Context context = solo.getCurrentActivity().getApplicationContext();
- boolean isEnabled = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1;
- Log.d("AirplaneMode", "Service state: " + isEnabled);
- Settings.System.putInt(context.getContentResolver(),Settings.System.AIRPLANE_MODE_ON, airplane_mode ? 1 : 0);
-
- // Post an intent to reload
- Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
- intent.putExtra("state", airplane_mode);
- Log.d("AirplaneMode", "New Service state: " + !isEnabled);
- solo.getCurrentActivity().sendBroadcast(intent);
-
- IntentFilter intentFilter = new IntentFilter("android.intent.action.SERVICE_STATE");
-
- BroadcastReceiver receiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- boolean isEnabled = Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1;
- Log.d("AirplaneMode", "Service state changed: " + isEnabled);
- }
- };
-
- context.registerReceiver(receiver, intentFilter);
+ private void setAirplaneMode(boolean airplane_mode) {
+ Context context = solo.getCurrentActivity().getApplicationContext();
+ final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ try {
+ final Class conmanClass = Class.forName(conman.getClass().getName());
+ final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
+ iConnectivityManagerField.setAccessible(true);
+ final Object iConnectivityManager = iConnectivityManagerField.get(conman);
+ final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
+ final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
+ setMobileDataEnabledMethod.setAccessible(true);
+
+ setMobileDataEnabledMethod.invoke(iConnectivityManager, !airplane_mode);
+ } catch (ClassNotFoundException e) {
+ } catch (NoSuchMethodException e) {
+ } catch (IllegalAccessException e) {
+ } catch (NoSuchFieldException e) {
+ } catch (InvocationTargetException e) {
}
+ }
}