I am currently working on android testing with Robotium , When i execute following testcase in Android 2.3 emulator i'm getting an error " java.lang.SecurityException:WifiService: Neither user 10038 nor current process has android.permission.CHANGE_WIFI_STATE.".
Test code :
public void testScheduledPayments()
{
solo.clickOnButton(0);
solo.enterText(0, "demo");
solo.enterText(1,"password");
solo.clickOnButton("Log In");
WifiManager wifiMan = (WifiManager) solo.getCurrentActivity().getSystemService(Context.WIFI_SERVICE);
wifiMan.setWifiEnabled(false);
solo.clickOnText("Payments");
solo.clickInList(2);
solo.waitForText("Loading paymnets");
solo.clickInList(0);
solo.clickOnMenuItem("Logout");
solo.clickOnButton("Logout");
solo.finishOpenedActivities();
}
At My Manifest file :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tesaptra"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.info.native" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
</manifest>
And Here's My log cat file
java.lang.SecurityException: WifiService: Neither user 10038 nor current process has android.permission.CHANGE_WIFI_STATE.
at android.os.Parcel.readException(Parcel.java:1322)
at android.os.Parcel.readException(Parcel.java:1276)
at android.net.wifi.IWifiManager$Stub$Proxy.setWifiEnabled(IWifiManager.java:614)
at android.net.wifi.WifiManager.setWifiEnabled(WifiManager.java:713)
at com.testaptra.Payments.testScheduledPaymnets(Payments.java:113)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
I have added all the permissions to manifest.xml but no luck.Could you please help me if you are familiar with below issue?
Thanks in advance
Permission must be set in target application. Permissions in test application are totally ignored. It means that instrumnetation apk has never more privileges than target application.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With