diff --git a/.classpath b/.classpath
index b6af78b2d..2c1efbc34 100644
--- a/.classpath
+++ b/.classpath
@@ -1,17 +1,17 @@
-
-
+
+
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index 59f7a8531..9cf73a674 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -71,7 +71,6 @@ import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LinphoneCoreListener;
import org.linphone.core.LinphoneFriend;
import org.linphone.core.LinphoneInfoMessage;
-import org.linphone.core.LinphoneLogHandler;
import org.linphone.core.LinphoneProxyConfig;
import org.linphone.core.PayloadType;
import org.linphone.mediastream.Log;
@@ -1723,7 +1722,6 @@ public class LinphoneManager implements LinphoneCoreListener {
@Override
public void transferState(LinphoneCore lc, LinphoneCall call,
State new_call_state) {
- // TODO Auto-generated method stub
}
@Override
diff --git a/tests/.classpath b/tests/.classpath
index a64829987..8890c27cc 100644
--- a/tests/.classpath
+++ b/tests/.classpath
@@ -1,10 +1,15 @@
-
-
+
+
+
+
+
+
+
+
-
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 30c743114..a43330b26 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -4,16 +4,41 @@
android:versionCode="1"
android:versionName="1.0" >
- />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/ant.properties b/tests/ant.properties
new file mode 100644
index 000000000..836edf047
--- /dev/null
+++ b/tests/ant.properties
@@ -0,0 +1,18 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked into Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
+tested.project.dir=../
diff --git a/tests/res/drawable-hdpi/ic_launcher.png b/tests/res/drawable-hdpi/ic_launcher.png
deleted file mode 100644
index 96a442e5b..000000000
Binary files a/tests/res/drawable-hdpi/ic_launcher.png and /dev/null differ
diff --git a/tests/res/drawable-ldpi/ic_launcher.png b/tests/res/drawable-ldpi/ic_launcher.png
deleted file mode 100644
index 99238729d..000000000
Binary files a/tests/res/drawable-ldpi/ic_launcher.png and /dev/null differ
diff --git a/tests/res/drawable-mdpi/ic_launcher.png b/tests/res/drawable-mdpi/ic_launcher.png
deleted file mode 100644
index 359047dfa..000000000
Binary files a/tests/res/drawable-mdpi/ic_launcher.png and /dev/null differ
diff --git a/tests/res/drawable-xhdpi/ic_launcher.png b/tests/res/drawable-xhdpi/ic_launcher.png
deleted file mode 100644
index 71c6d760f..000000000
Binary files a/tests/res/drawable-xhdpi/ic_launcher.png and /dev/null differ
diff --git a/tests/res/values/config.xml b/tests/res/values/config.xml
new file mode 100644
index 000000000..52af84c9f
--- /dev/null
+++ b/tests/res/values/config.xml
@@ -0,0 +1,23 @@
+
+
+
+ wizard15
+ wizard15
+ sip.linphone.org
+
+ wizard15
+ wizard15
+ test.linphone.org
+
+ wizard42
+ wizard42
+ wizard42@linphone.org
+
+ viish
+ lucifer
+ sip.linphone.org
+
+ Ping!
+ Pong!
+
+
\ No newline at end of file
diff --git a/tests/src/org/linphone/test/AccountAssistant.java b/tests/src/org/linphone/test/AccountAssistant.java
new file mode 100644
index 000000000..72c665c9e
--- /dev/null
+++ b/tests/src/org/linphone/test/AccountAssistant.java
@@ -0,0 +1,171 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.LinphoneActivity;
+import org.linphone.LinphoneManager;
+import org.linphone.core.LinphoneCore.RegistrationState;
+import org.linphone.core.LinphoneProxyConfig;
+import org.linphone.mediastream.video.capture.hwconf.Hacks;
+import org.linphone.setup.SetupActivity;
+
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class AccountAssistant extends SampleTest {
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testAWizardDisplayedAfterInstall() {
+ solo.waitForActivity("SetupActivity", 3000);
+ solo.assertCurrentActivity("Expected Setup Activity", SetupActivity.class);
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testBLoginWithLinphoneAccount() {
+ solo.waitForActivity("SetupActivity", 1000);
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.setup_next));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_login_linphone));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_username), iContext.getString(R.string.account_linphone_login));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password), iContext.getString(R.string.account_linphone_pwd));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_apply));
+
+ if (!Hacks.hasBuiltInEchoCanceller())
+ solo.waitForActivity("LinphoneActivity", 8000);
+ else
+ solo.waitForActivity("LinphoneActivity", 2000);
+ Assert.assertTrue(solo.searchText(iContext.getString(R.string.account_linphone_login) + "@sip.linphone.org"));
+
+ solo.sleep(3000); //Wait for registration to be done
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 1);
+ LinphoneProxyConfig proxyConfig = proxyConfigs[0];
+ Assert.assertEquals(RegistrationState.RegistrationOk, proxyConfig.getState());
+
+ //Check the wizard added sip.linphone.org custom settings
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+ String stunServer = prefs.getString(aContext.getString(org.linphone.R.string.pref_stun_server_key), "");
+ Assert.assertEquals(stunServer, aContext.getString(org.linphone.R.string.default_stun));
+
+ String transport = prefs.getString(aContext.getString(org.linphone.R.string.pref_transport_key), aContext.getString(org.linphone.R.string.pref_transport_udp_key));
+ Assert.assertEquals(transport, aContext.getString(org.linphone.R.string.pref_transport_tls_key));
+
+ String proxy = prefs.getString(aContext.getString(org.linphone.R.string.pref_proxy_key), "");
+ Assert.assertEquals(proxy, aContext.getString(org.linphone.R.string.default_domain) + ":5223");
+ boolean outboundproxy = prefs.getBoolean(aContext.getString(org.linphone.R.string.pref_enable_outbound_proxy_key), false);
+ Assert.assertEquals(outboundproxy, true);
+
+ boolean ice = prefs.getBoolean(aContext.getString(org.linphone.R.string.pref_ice_enable_key), false);
+ Assert.assertEquals(ice, true);
+ }
+
+ @LargeTest
+ public void testCWizardDoesntShowWhenAccountIsConfigured() {
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ }
+
+ @MediumTest
+ @LargeTest
+ public void testDLoginWithGenericAccount() {
+ startWizard();
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.setup_next));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_login_generic));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_username), iContext.getString(R.string.account_generic_login));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password), iContext.getString(R.string.account_generic_pwd));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_domain), iContext.getString(R.string.account_generic_domain));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_apply));
+
+ if (!Hacks.hasBuiltInEchoCanceller())
+ solo.waitForActivity("LinphoneActivity", 8000);
+ else
+ solo.waitForActivity("LinphoneActivity", 2000);
+ Assert.assertTrue(solo.searchText(iContext.getString(R.string.account_generic_login) + "@" + iContext.getString(R.string.account_generic_domain)));
+
+ solo.sleep(3000); //Wait for registration to be done
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 2);
+ LinphoneProxyConfig proxyConfig = proxyConfigs[1];
+ Assert.assertEquals(RegistrationState.RegistrationOk, proxyConfig.getState());
+ }
+
+ @LargeTest
+ public void testECreateNewAccount() {
+ startWizard();
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.setup_next));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_create_account));
+
+ TextView error = (TextView) solo.getView(org.linphone.R.id.setup_error);
+ ImageView createAccount = (ImageView) solo.getView(org.linphone.R.id.setup_create);
+ int sleepingTime = 1500;
+
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_username), iContext.getString(R.string.account_create_login).substring(0,2));
+ solo.sleep(sleepingTime);
+ Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_username_incorrect));
+ Assert.assertFalse(createAccount.isEnabled());
+
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_username));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_username), iContext.getString(R.string.account_linphone_login));
+ solo.sleep(sleepingTime*2);
+ Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_username_unavailable));
+ Assert.assertFalse(createAccount.isEnabled());
+
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password), iContext.getString(R.string.account_create_pwd).substring(0,2));
+ solo.sleep(sleepingTime);
+ Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_passwords_unmatched));
+ Assert.assertFalse(createAccount.isEnabled());
+
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_password));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password), iContext.getString(R.string.account_create_pwd).substring(0,2));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password_confirm), iContext.getString(R.string.account_create_pwd).substring(0,2));
+ solo.sleep(sleepingTime);
+ Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_password_incorrect));
+ Assert.assertFalse(createAccount.isEnabled());
+
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_email), iContext.getString(R.string.account_create_email).substring(0, 12));
+ solo.sleep(sleepingTime);
+ Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_email_incorrect));
+ Assert.assertFalse(createAccount.isEnabled());
+
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_username));
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_password));
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_password_confirm));
+ solo.clearEditText((EditText) solo.getView(org.linphone.R.id.setup_email));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_username), iContext.getString(R.string.account_create_login));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password), iContext.getString(R.string.account_create_pwd));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_password_confirm), iContext.getString(R.string.account_create_pwd));
+ solo.enterText((EditText) solo.getView(org.linphone.R.id.setup_email), iContext.getString(R.string.account_create_email));
+ solo.sleep(sleepingTime);
+ Assert.assertEquals(error.getText(), "");
+ Assert.assertTrue(createAccount.isEnabled());
+ }
+
+ @LargeTest
+ public void testFCancelWizard() {
+ startWizard();
+ solo.clickOnView(solo.getView(org.linphone.R.id.setup_cancel));
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ }
+
+ private void startWizard() {
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.settings));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.setup_title).substring(0, STRING_LENGTH_MAX));
+ }
+}
diff --git a/tests/src/org/linphone/test/AccountManagement.java b/tests/src/org/linphone/test/AccountManagement.java
new file mode 100644
index 000000000..d4b633a5f
--- /dev/null
+++ b/tests/src/org/linphone/test/AccountManagement.java
@@ -0,0 +1,91 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.FragmentsAvailable;
+import org.linphone.LinphoneActivity;
+import org.linphone.LinphoneManager;
+import org.linphone.core.LinphoneCore.RegistrationState;
+import org.linphone.core.LinphoneProxyConfig;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.view.KeyEvent;
+
+public class AccountManagement extends SampleTest {
+
+ @MediumTest
+ @LargeTest
+ public void testAEditAccount() {
+ goToSettings();
+ solo.clickOnText(iContext.getString(R.string.account_generic_login) + "@" + iContext.getString(R.string.account_generic_domain));
+ solo.clickOnText(aContext.getString(org.linphone.R.string.pref_username));
+ solo.enterText(0, "new");
+ //Hack to validate the dialog
+ solo.sendKey(KeyEvent.KEYCODE_ENTER);
+ solo.sendKey(KeyEvent.KEYCODE_TAB);
+ solo.sendKey(KeyEvent.KEYCODE_ENTER);
+ //End of hack
+
+ solo.goBack();
+ solo.goBack();
+ solo.waitForFragmentByTag(FragmentsAvailable.DIALER.toString(), 2000);
+
+ solo.sleep(2000); //Wait for registration to be done
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 2);
+ LinphoneProxyConfig proxyConfig = proxyConfigs[1];
+ Assert.assertEquals(proxyConfig.getState(), RegistrationState.RegistrationOk);
+ Assert.assertTrue(proxyConfig.getIdentity(), proxyConfig.getIdentity().contains("new"));
+ }
+
+ @MediumTest
+ @LargeTest
+ public void testBDeleteAccount() {
+ goToSettings();
+ solo.clickOnText(iContext.getString(R.string.account_generic_login) + "new");
+ selectItemInListOnUIThread(7);
+ solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_delete_account));
+
+ solo.goBack();
+ solo.goBack();
+
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 1);
+ }
+
+ @LargeTest
+ public void testCDisableAccount() {
+ goToSettings();
+ solo.clickOnText(iContext.getString(R.string.account_linphone_login));
+ selectItemInListOnUIThread(5);
+ solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account));
+
+ solo.goBack();
+ solo.goBack();
+
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 0);
+ }
+
+ @LargeTest
+ public void testDEnableAccount() {
+ goToSettings();
+ solo.clickOnText(iContext.getString(R.string.account_linphone_login));
+ selectItemInListOnUIThread(5);
+ solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account));
+
+ solo.goBack();
+ solo.goBack();
+
+ LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
+ Assert.assertEquals(proxyConfigs.length, 1);
+ }
+
+ private void goToSettings() {
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.settings));
+ }
+}
diff --git a/tests/src/org/linphone/test/AccountsTest.java b/tests/src/org/linphone/test/AccountsTest.java
deleted file mode 100644
index c3fc473e1..000000000
--- a/tests/src/org/linphone/test/AccountsTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.LinphoneActivity;
-import org.linphone.R;
-import org.linphone.mediastream.video.capture.hwconf.Hacks;
-import org.linphone.setup.SetupActivity;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class AccountsTest extends
- ActivityInstrumentationTestCase2 {
-
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public AccountsTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- private void selectItemInListOnUIThread(final int item) {
- solo.sleep(500);
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- ListView list = (ListView) solo.getView(android.R.id.list);
- list.setSelection(item);
- }
- });
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- public void testAConfigureExistingLinphoneAccount() {
- Context context = getActivity();
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- int nbAccountsBefore = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
-
- solo.waitForActivity("SetupActivity", 2000);
- solo.assertCurrentActivity("Expected Setup Activity", SetupActivity.class);
- Log.testSuccess("Wizard launching at first startup");
-
- solo.clickOnView(solo.getView(R.id.setup_next));
- solo.clickOnText(context.getString(R.string.setup_login_linphone));
- solo.enterText((EditText) solo.getView(R.id.setup_username), "wizard15");
- solo.enterText((EditText) solo.getView(R.id.setup_password), "wizard15");
- solo.clickOnText(context.getString(R.string.setup_apply));
-
- if (!Hacks.hasBuiltInEchoCanceller())
- solo.waitForActivity("LinphoneActivity", 8000);
- else
- solo.waitForActivity("LinphoneActivity", 2000);
- Assert.assertTrue(solo.searchText("wizard15@sip.linphone.org"));
-
- int nbAccountsAfter = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
- Assert.assertEquals(nbAccountsBefore + 1, nbAccountsAfter);
- Log.testSuccess("Configure existing sip.linphone.org account");
-
- String stunServer = prefs.getString(context.getString(R.string.pref_stun_server_key), "");
- Assert.assertEquals(stunServer, context.getString(R.string.default_stun));
- Log.testSuccess("Default stun server is configured");
-
- String transport = prefs.getString(context.getString(R.string.pref_transport_key), context.getString(R.string.pref_transport_udp_key));
- Assert.assertEquals(transport, context.getString(R.string.pref_transport_tls_key));
- Log.testSuccess("TLS is set by default");
-
- String proxy = prefs.getString(context.getString(R.string.pref_proxy_key), "");
- Assert.assertEquals(proxy, context.getString(R.string.default_domain) + ":5223");
- boolean outboundproxy = prefs.getBoolean(context.getString(R.string.pref_enable_outbound_proxy_key), false);
- Assert.assertEquals(outboundproxy, true);
- Log.testSuccess("Outbound proxy is configured");
-
- boolean ice = prefs.getBoolean(context.getString(R.string.pref_ice_enable_key), false);
- Assert.assertEquals(ice, true);
- Log.testSuccess("ICE is enabled");
- }
-
- public void testBConfigureExternalSIPAccount() {
- Context context = getActivity();
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- int nbAccountsBefore = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- Log.testSuccess("Wizard not launching at startup if account is configured");
-
- solo.clickOnView(solo.getView(R.id.settings));
- solo.clickOnText(context.getString(R.string.setup_title));
-
- solo.assertCurrentActivity("Expected Setup Activity", SetupActivity.class);
- solo.clickOnView(solo.getView(R.id.setup_next));
- solo.clickOnText(context.getString(R.string.setup_login_generic));
- solo.enterText((EditText) solo.getView(R.id.setup_username), "junit");
- solo.enterText((EditText) solo.getView(R.id.setup_password), "junit");
- solo.enterText((EditText) solo.getView(R.id.setup_domain), "test.linphone.org");
- solo.clickOnText(context.getString(R.string.setup_apply));
-
- solo.waitForActivity("LinphoneActivity", 2000);
- Assert.assertTrue(solo.searchText("junit@test.linphone.org"));
-
- int nbAccountsAfter = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
- Assert.assertEquals(nbAccountsBefore + 1, nbAccountsAfter);
- Log.testSuccess("Configure existing generic account");
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
- Assert.assertTrue(solo.searchText("junit@test.linphone.org"));
-
- solo.clickOnText("junit@test.linphone.org");
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_default_account));
- solo.goBack();
- int defaultAccount = prefs.getInt(context.getString(R.string.pref_default_account_key), 0);
- solo.sleep(1000);
- Assert.assertEquals(1, defaultAccount);
- Log.testSuccess("Select another account as default");
- }
-
- public void testCDeleteConfiguredAccount() {
- Context context = getActivity();
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- int nbAccountsBefore = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
-
- solo.clickOnView(solo.getView(R.id.settings));
- Assert.assertTrue(solo.searchText("wizard15@sip.linphone.org"));
-
- solo.clickOnText("wizard15@sip.linphone.org");
- selectItemInListOnUIThread(7);
- solo.clickOnText(context.getString(R.string.pref_delete_account));
-
- solo.goBack();
-
- int nbAccountsAfter = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
- Assert.assertEquals(nbAccountsBefore - 1, nbAccountsAfter);
- Log.testSuccess("Deleting existing SIP account");
- }
-
- public void testDTryCreatingExistingAccount() {
- Context context = getActivity();
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
-
- solo.clickOnView(solo.getView(R.id.settings));
- solo.clickOnText(context.getString(R.string.setup_title));
-
- solo.assertCurrentActivity("Expected Setup Activity", SetupActivity.class);
-
- solo.clickOnView(solo.getView(R.id.setup_next));
- solo.clickOnText(context.getString(R.string.setup_create_account));
-
- TextView error = (TextView) solo.getView(R.id.setup_error);
- ImageView createAccount = (ImageView) solo.getView(R.id.setup_create);
- int sleepingTime = 1500;
-
- solo.enterText((EditText) solo.getView(R.id.setup_username), "wi");
- solo.sleep(sleepingTime);
- Assert.assertEquals(error.getText(), context.getString(R.string.wizard_username_incorrect));
- Assert.assertFalse(createAccount.isEnabled());
- Log.testSuccess("Username incorrect error message");
-
- solo.clearEditText((EditText) solo.getView(R.id.setup_username));
- solo.enterText((EditText) solo.getView(R.id.setup_username), "wizard15");
- solo.sleep(sleepingTime*2);
- Assert.assertEquals(error.getText(), context.getString(R.string.wizard_username_unavailable));
- Assert.assertFalse(createAccount.isEnabled());
- Log.testSuccess("Username already in use error message");
-
- solo.enterText((EditText) solo.getView(R.id.setup_password), "wi");
- solo.sleep(sleepingTime);
- Assert.assertEquals(error.getText(), context.getString(R.string.wizard_password_incorrect));
- Assert.assertFalse(createAccount.isEnabled());
- Log.testSuccess("Password incorrect error message");
-
- solo.clearEditText((EditText) solo.getView(R.id.setup_password));
- solo.enterText((EditText) solo.getView(R.id.setup_password), "wizard15");
- solo.enterText((EditText) solo.getView(R.id.setup_password_confirm), "wizard14");
- solo.sleep(sleepingTime);
- Assert.assertEquals(error.getText(), context.getString(R.string.wizard_passwords_unmatched));
- Assert.assertFalse(createAccount.isEnabled());
- Log.testSuccess("Passwords doesn't match error message");
-
- solo.enterText((EditText) solo.getView(R.id.setup_email), "wizard15@lin");
- solo.sleep(sleepingTime);
- Assert.assertEquals(error.getText(), context.getString(R.string.wizard_email_incorrect));
- Assert.assertFalse(createAccount.isEnabled());
- Log.testSuccess("Email incorrect error message");
-
- solo.clearEditText((EditText) solo.getView(R.id.setup_username));
- solo.clearEditText((EditText) solo.getView(R.id.setup_password));
- solo.clearEditText((EditText) solo.getView(R.id.setup_password_confirm));
- solo.clearEditText((EditText) solo.getView(R.id.setup_email));
- solo.enterText((EditText) solo.getView(R.id.setup_username), "wizard42");
- solo.enterText((EditText) solo.getView(R.id.setup_password), "wizard42");
- solo.enterText((EditText) solo.getView(R.id.setup_password_confirm), "wizard42");
- solo.enterText((EditText) solo.getView(R.id.setup_email), "wizard42@linphone.org");
- solo.sleep(sleepingTime);
- Assert.assertEquals(error.getText(), "");
- Assert.assertTrue(createAccount.isEnabled());
- Log.testSuccess("All wizard fields correctly filled");
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/AccountzFreephonieTest.java b/tests/src/org/linphone/test/AccountzFreephonieTest.java
deleted file mode 100644
index 4387f1b5a..000000000
--- a/tests/src/org/linphone/test/AccountzFreephonieTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.InCallActivity;
-import org.linphone.LinphoneActivity;
-import org.linphone.LinphoneManager;
-import org.linphone.R;
-import org.linphone.core.LinphoneCall;
-import org.linphone.setup.SetupActivity;
-
-import android.content.Context;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.EditText;
-import android.widget.ListView;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class AccountzFreephonieTest extends ActivityInstrumentationTestCase2 {
-
- private static final String numberToCallToTestPSTNGateway = "0482532176";
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public AccountzFreephonieTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- private void selectItemInListOnUIThread(final int item) {
- solo.sleep(500);
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- ListView list = (ListView) solo.getView(android.R.id.list);
- list.setSelection(item);
- }
- });
- }
-
- private void configureFreephonieAccount() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_network_title));
- solo.clickOnText(context.getString(R.string.pref_transport));
- solo.clickOnText(context.getString(R.string.pref_transport_udp));
- solo.goBack();
- selectItemInListOnUIThread(0);
-
- solo.clickOnText(context.getString(R.string.setup_title));
- solo.assertCurrentActivity("Expected Setup Activity", SetupActivity.class);
- solo.clickOnView(solo.getView(R.id.setup_next));
- solo.clickOnText(context.getString(R.string.setup_login_generic));
- solo.enterText((EditText) solo.getView(R.id.setup_username), "0953335419");
- solo.enterText((EditText) solo.getView(R.id.setup_password), "jodeeeeeer");
- solo.enterText((EditText) solo.getView(R.id.setup_domain), "freephonie.net");
- solo.clickOnText(context.getString(R.string.setup_apply));
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- solo.clickOnText("0953335419@freephonie.net");
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_default_account));
-
-// solo.clickOnText(context.getString(R.string.pref_proxy));
-// solo.enterText(0, "sip.linphone.org");
-// solo.clickOnText("OK");
-// solo.clickOnText(context.getString(R.string.pref_enable_outbound_proxy));
-
- solo.goBack();
- solo.goBack();
- }
-
- private void deleteFreephonieAccount() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(0);
- solo.clickOnText("junit@test.linphone.org");
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_default_account));
- solo.goBack();
-
- solo.clickOnText("0953335419@freephonie.net");
- selectItemInListOnUIThread(7);
- solo.clickOnText(context.getString(R.string.pref_delete_account));
-
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_network_title));
- solo.clickOnText(context.getString(R.string.pref_transport));
- solo.clickOnText(context.getString(R.string.pref_transport_tls));
- solo.goBack();
-
- solo.goBack();
- }
-
- private void goToDialerAndOutgoingCall() {
- solo.clickOnView(solo.getView(R.id.dialer));
- solo.clickOnView(solo.getView(R.id.Adress));
- solo.enterText((EditText) solo.getView(R.id.Adress), numberToCallToTestPSTNGateway);
- solo.clickOnView(solo.getView(R.id.Call));
-
- solo.waitForActivity("InCallActivity", 2000);
- solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
- solo.sleep(2000);
- try {
- LinphoneCall.State state = LinphoneManager.getLcIfManagerNotDestroyedOrNull().getCalls()[0].getState();
- Assert.assertTrue(state == LinphoneCall.State.OutgoingEarlyMedia || state == LinphoneCall.State.OutgoingRinging || state == LinphoneCall.State.StreamsRunning);
- } catch (AssertionError ae) {
- } finally {
- solo.clickOnView(solo.getView(R.id.hangUp));
- }
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- public void testAOutgoingCallUsingPSTNGatewayAndFreephonieNetwork() {
- configureFreephonieAccount();
- goToDialerAndOutgoingCall();
- deleteFreephonieAccount();
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/AudioAndVideoCodecsTest.java b/tests/src/org/linphone/test/AudioAndVideoCodecsTest.java
deleted file mode 100644
index 8fb836886..000000000
--- a/tests/src/org/linphone/test/AudioAndVideoCodecsTest.java
+++ /dev/null
@@ -1,385 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.InCallActivity;
-import org.linphone.LinphoneActivity;
-import org.linphone.R;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.test.ActivityInstrumentationTestCase2;
-import android.view.View;
-import android.widget.EditText;
-import android.widget.ListView;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class AudioAndVideoCodecsTest extends ActivityInstrumentationTestCase2 {
- private static final String sipAdressToCall = "macmini@sip.linphone.org";
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public AudioAndVideoCodecsTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- private void selectItemInListOnUIThread(final int item) {
- solo.sleep(500);
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- ListView list = (ListView) solo.getView(android.R.id.list);
- list.setSelection(item);
- }
- });
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- private boolean getBoolean(int key) {
- return getActivity().getResources().getBoolean(key);
- }
-
- private void goToAudioCodecsSettings() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(4);
- solo.clickOnText(context.getString(R.string.pref_audio));
- solo.sleep(500);
- }
-
- private void goToVideoCodecsSettings() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(6);
- if (solo.searchText(context.getString(R.string.pref_video), 2)) // Needed in case pref_video_enable_title contains pref_video
- solo.clickOnText(context.getString(R.string.pref_video), 2);
- else
- solo.clickOnText(context.getString(R.string.pref_video));
- solo.sleep(500);
- }
-
- private void disableAllEnabledAudioCodecs() {
- Context context = getActivity();
-
- goToAudioCodecsSettings();
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- if (prefs.getBoolean(context.getString(R.string.pref_codec_speex16_key), getBoolean(R.bool.pref_codec_speex16_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_speex16));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_speex8_key), getBoolean(R.bool.pref_codec_speex8_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_speex8));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_ilbc_key), getBoolean(R.bool.pref_codec_ilbc_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_ilbc));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_amr_key), getBoolean(R.bool.pref_codec_amr_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_amr));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_amrwb_key), getBoolean(R.bool.pref_codec_amrwb_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_amrwb));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_g729_key), getBoolean(R.bool.pref_codec_g729_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_g729));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_gsm_key), getBoolean(R.bool.pref_codec_gsm_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_gsm));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_g722_key), getBoolean(R.bool.pref_codec_g722_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_g722));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_silk24_key), getBoolean(R.bool.pref_codec_silk24_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_silk24));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_silk16_key), getBoolean(R.bool.pref_codec_silk16_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_silk16));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_pcmu_key), getBoolean(R.bool.pref_codec_pcmu_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_pcmu));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_codec_pcma_key), getBoolean(R.bool.pref_codec_pcma_default))) {
- solo.clickOnText(context.getString(R.string.pref_codec_pcma));
- solo.sleep(500);
- }
- }
-
- private void disableAllEnabledVideoCodecs() {
- Context context = getActivity();
-
- goToVideoCodecsSettings();
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- if (prefs.getBoolean(context.getString(R.string.pref_video_codec_vp8_key), getBoolean(R.bool.pref_video_codec_vp8_default))) {
- solo.clickOnText(context.getString(R.string.pref_video_codec_vp8_title));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_video_codec_h264_key), getBoolean(R.bool.pref_video_codec_h264_default))) {
- solo.clickOnText(context.getString(R.string.pref_video_codec_h264_title));
- solo.sleep(500);
- }
-
- if (prefs.getBoolean(context.getString(R.string.pref_video_codec_mpeg4_key), getBoolean(R.bool.pref_video_codec_mpeg4_default))) {
- solo.clickOnText(context.getString(R.string.pref_video_codec_mpeg4_title));
- solo.sleep(500);
- }
- }
-
- private void goToDialerAndOutgoingCall(String codecTextToAssert) {
- Context context = getActivity();
-
- solo.clickOnView(solo.getView(R.id.dialer));
- solo.clickOnView(solo.getView(R.id.Adress));
- solo.enterText((EditText) solo.getView(R.id.Adress), sipAdressToCall);
- solo.clickOnView(solo.getView(R.id.Call));
-
- boolean incompatibleMediaParams = solo.waitForText(context.getString(R.string.error_incompatible_media), 1, 1500);
- if (!incompatibleMediaParams) { // There is a possiblity the callee doesn't support the codec, in which case we don't have to wait for the incall view
- solo.waitForActivity("InCallActivity", 1000);
- solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
- solo.clickOnView(solo.getView(R.id.status));
- solo.waitForText(codecTextToAssert, 1, 6000);
- Assert.assertTrue(solo.searchText(codecTextToAssert, 1));
-
- View hangUp = solo.getView(R.id.hangUp);
- if (hangUp.getVisibility() == View.VISIBLE)
- solo.clickOnView(hangUp);
- else { // While on video, menu can hide. Click the first time to display it back, then click again to really hang up
- solo.clickOnView(hangUp);
- solo.sleep(1000);
- solo.clickOnView(hangUp);
- }
- } else {
- Log.testFailure("Incompatible media parameters for codec " + codecTextToAssert);
- }
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- }
-
- public void testADisableVideo() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(4);
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- if (prefs.getBoolean(context.getString(R.string.pref_video_enable_key), getBoolean(R.bool.pref_video_enable_default))) {
- solo.clickOnText(context.getString(R.string.pref_video_enable_title));
- solo.sleep(500);
- }
- }
-
- public void testBOutgoingAudioCallPCMA() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_pcma));
- solo.goBack();
-
- goToDialerAndOutgoingCall("PCMA");
- solo.sleep(1000);
- }
-
- public void testCOutgoingAudioCallPCMU() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_pcmu));
- solo.goBack();
-
- goToDialerAndOutgoingCall("PCMU");
- solo.sleep(1000);
- }
-
- public void testDOutgoingAudioCallSilk16() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_silk16));
- solo.goBack();
-
- goToDialerAndOutgoingCall("SILK");
- solo.sleep(1000);
- }
-
- public void testEOutgoingAudioCallSilk24() {
-// Silk24 no longer available
-// Context context = getActivity();
-// disableAllEnabledAudioCodecs();
-// solo.clickOnText(context.getString(R.string.pref_codec_silk24));
-// solo.goBack();
-//
-// goToDialerAndOutgoingCall("SILK");
-// solo.sleep(1000);
- }
-
- public void testFOutgoingAudioCallG722() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_g722));
- solo.goBack();
-
- goToDialerAndOutgoingCall("G722");
- solo.sleep(1000);
- }
-
- public void testGOutgoingAudioCallGSM() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_gsm));
- solo.goBack();
-
- goToDialerAndOutgoingCall("GSM");
- solo.sleep(1000);
- }
-
- public void testHOutgoingAudioCallAMR() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_amr));
- solo.goBack();
-
- goToDialerAndOutgoingCall("AMR");
- solo.sleep(1000);
- }
-
- public void testIOutgoingAudioCallAMRWB() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_amrwb));
- solo.goBack();
-
- goToDialerAndOutgoingCall("AMRWB");
- solo.sleep(1000);
- }
-
- public void testJOutgoingAudioCallG729() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_g729));
- solo.goBack();
-
- goToDialerAndOutgoingCall("G729");
- solo.sleep(1000);
- }
-
- public void testKOutgoingAudioCallILBC() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_ilbc));
- solo.goBack();
-
- goToDialerAndOutgoingCall("iLBC");
- solo.sleep(1000);
- }
-
- public void testLOutgoingAudioCallSpeex8() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_speex8));
- solo.goBack();
-
- goToDialerAndOutgoingCall("speex");
- solo.sleep(1000);
- }
-
- public void testMOutgoingAudioCallSpeex16() {
- Context context = getActivity();
- disableAllEnabledAudioCodecs();
- solo.clickOnText(context.getString(R.string.pref_codec_speex16));
- solo.goBack();
-
- goToDialerAndOutgoingCall("speex");
- solo.sleep(1000);
- }
-
- public void testNEnableVideo() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- solo.sleep(500);
- selectItemInListOnUIThread(4);
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
- if (!prefs.getBoolean(context.getString(R.string.pref_video_enable_key), getBoolean(R.bool.pref_video_enable_default))) {
- solo.clickOnText(context.getString(R.string.pref_video_enable_title));
- solo.sleep(500);
- }
- }
-
- public void testOOutgoingVideoCallVP8() {
- Context context = getActivity();
- disableAllEnabledVideoCodecs();
- solo.clickOnText(context.getString(R.string.pref_video_codec_vp8_title));
- solo.goBack();
-
- goToDialerAndOutgoingCall("VP8");
- solo.sleep(1000);
- }
-
- public void testPOutgoingVideoCallH264() {
- Context context = getActivity();
- disableAllEnabledVideoCodecs();
- solo.clickOnText(context.getString(R.string.pref_video_codec_h264_title));
- solo.goBack();
-
- goToDialerAndOutgoingCall("H264");
- solo.sleep(1000);
- }
-
- public void testQOutgoingVideoCallMPG4() {
- Context context = getActivity();
- disableAllEnabledVideoCodecs();
- solo.clickOnText(context.getString(R.string.pref_video_codec_mpeg4_title));
- solo.goBack();
-
- goToDialerAndOutgoingCall("MP4V-ES");
- solo.sleep(1000);
- }
-
- @Override
- public void tearDown() throws Exception {
- if (solo.getCurrentActivity().getClass() == InCallActivity.class) {
- solo.clickOnView(solo.getView(R.id.hangUp));
- }
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/Calls.java b/tests/src/org/linphone/test/Calls.java
new file mode 100644
index 000000000..b74b361f4
--- /dev/null
+++ b/tests/src/org/linphone/test/Calls.java
@@ -0,0 +1,50 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.InCallActivity;
+import org.linphone.LinphoneActivity;
+import org.linphone.core.LinphoneCall;
+import org.linphone.core.LinphoneCore.RegistrationState;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.SmallTest;
+
+public class Calls extends SampleTest {
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testAInitLinphoneCore() {
+ LinphoneTestManager.createAndStart(aContext, iContext);
+
+ solo.sleep(2000);
+ Assert.assertEquals(RegistrationState.RegistrationOk, LinphoneTestManager.getLc().getProxyConfigList()[0].getState());
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testBSimpleCall() {
+ solo.enterText(0, iContext.getString(R.string.account_test_calls_login) + "@" + iContext.getString(R.string.account_test_calls_domain));
+ solo.clickOnView(solo.getView(org.linphone.R.id.Call));
+
+ solo.waitForActivity("InCallActivity", 5000);
+ solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
+
+ solo.sleep(2000);
+ Assert.assertEquals(LinphoneCall.State.StreamsRunning, LinphoneTestManager.getLc().getCalls()[0].getState());
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
+ solo.waitForActivity("LinphoneActivity", 5000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testZShutDownLinphoneCore() {
+ LinphoneTestManager.destroy();
+ }
+}
diff --git a/tests/src/org/linphone/test/Chat.java b/tests/src/org/linphone/test/Chat.java
new file mode 100644
index 000000000..14997631f
--- /dev/null
+++ b/tests/src/org/linphone/test/Chat.java
@@ -0,0 +1,95 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.LinphoneActivity;
+import org.linphone.core.LinphoneChatMessage;
+import org.linphone.core.LinphoneChatMessage.State;
+import org.linphone.core.LinphoneChatRoom;
+import org.linphone.core.LinphoneCore.RegistrationState;
+import org.linphone.mediastream.Log;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.SmallTest;
+
+public class Chat extends SampleTest {
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testAInitLinphoneCore() {
+ LinphoneTestManager.createAndStart(aContext, iContext);
+
+ solo.sleep(2000);
+ Assert.assertEquals(RegistrationState.RegistrationOk, LinphoneTestManager.getLc().getProxyConfigList()[0].getState());
+ }
+
+ @LargeTest
+ public void testBEmptyChatHistory() {
+ goToChat();
+
+ Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testCSendTextMessage() {
+ goToChat();
+
+ solo.enterText(0, "sip:" + iContext.getString(R.string.account_test_calls_login) + "@" + iContext.getString(R.string.account_test_calls_domain));
+ solo.clickOnView(solo.getView(org.linphone.R.id.newDiscussion));
+
+ solo.enterText(0, iContext.getString(R.string.chat_test_text_sent));
+ solo.clickOnView(solo.getView(org.linphone.R.id.sendMessage));
+
+ solo.sleep(1000);
+ Assert.assertTrue(solo.searchText(iContext.getString(R.string.chat_test_text_sent)));
+ Assert.assertEquals(iContext.getString(R.string.chat_test_text_sent), LinphoneTestManager.getInstance().lastMessageReceived);
+ }
+
+ @LargeTest
+ public void testDNotEmptyChatHistory() {
+ goToChat();
+
+ Assert.assertFalse(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));
+ Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)));
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testEReceiveTextMessage() {
+ goToChat();
+ solo.clickOnText(iContext.getString(org.linphone.test.R.string.account_test_calls_login));
+
+ LinphoneChatRoom chatRoom = LinphoneTestManager.getLc().createChatRoom("sip:" + iContext.getString(R.string.account_linphone_login) + "@" + iContext.getString(R.string.account_linphone_domain));
+ LinphoneChatMessage msg = chatRoom.createLinphoneChatMessage(iContext.getString(R.string.chat_test_text_received));
+ chatRoom.sendMessage(msg, new LinphoneChatMessage.StateListener() {
+ @Override
+ public void onLinphoneChatMessageStateChanged(LinphoneChatMessage msg,
+ State state) {
+ Log.e("Chat message state = " + state.toString());
+ }
+ });
+
+ solo.sleep(1000);
+ Assert.assertTrue(solo.searchText(iContext.getString(R.string.chat_test_text_received)));
+ }
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testZShutDownLinphoneCore() {
+ LinphoneTestManager.destroy();
+ }
+
+ private void goToChat() {
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.chat));
+ }
+
+}
diff --git a/tests/src/org/linphone/test/ChatTest.java b/tests/src/org/linphone/test/ChatTest.java
deleted file mode 100644
index f48d0cc27..000000000
--- a/tests/src/org/linphone/test/ChatTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.LinphoneActivity;
-import org.linphone.R;
-
-import android.content.Context;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.EditText;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class ChatTest extends ActivityInstrumentationTestCase2 {
-
- private static final String testTextMessage = "Test";
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public ChatTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- public void testADisplayEmptyChatList() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.chat));
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.no_chat_history)));
- Log.testSuccess("Empty chat list displayed");
- }
-
- public void testBStartConversationAndSaveItAsDraft() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.chat));
-
- solo.enterText((EditText) solo.getView(R.id.newFastChat), "cotcot@sip.linphone.org");
- solo.clickOnText(context.getString(R.string.button_new_chat));
- solo.sleep(1000);
-
- solo.enterText((EditText) solo.getView(R.id.message), testTextMessage);
- solo.goBack();
- solo.sleep(1000);
- Assert.assertTrue(solo.searchText(context.getString(R.string.draft)));
- Log.testSuccess("Conversation created and message saved as draft");
- }
-
- public void testCUseSavedDraftMessageAndSentIt() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.chat));
-
- solo.clickOnText(context.getString(R.string.draft));
- Assert.assertTrue(solo.searchText(testTextMessage));
- Log.testSuccess("Draft successfully restored");
-
- solo.clickOnText(context.getString(R.string.button_send_message));
- solo.sleep(1000);
- Assert.assertTrue(solo.searchText(testTextMessage));
- Log.testSuccess("Chat message sent");
-
- solo.goBack();
- solo.sleep(1000);
- Assert.assertTrue(solo.searchText("cotcot"));
- Assert.assertFalse(solo.searchText(context.getString(R.string.draft), true));
- Log.testSuccess("Conversation created but no more saved as draft");
- }
-
- public void testDDeleteMessage() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.chat));
-
- solo.clickOnText("cotcot");
- Assert.assertTrue(solo.searchText(testTextMessage));
- solo.clickLongOnText(testTextMessage);
- solo.sleep(1000);
-
- solo.clickOnText(context.getString(R.string.delete));
- solo.sleep(1000);
- Assert.assertFalse(solo.searchText(testTextMessage));
- Log.testSuccess("Chat message successfully deleted");
- }
-
- public void testEIncomingMessageAndDeleteConversation() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.chat));
-
- solo.enterText((EditText) solo.getView(R.id.newFastChat), "junit");
- solo.clickOnText(context.getString(R.string.button_new_chat));
- solo.sleep(1000);
-
- solo.enterText((EditText) solo.getView(R.id.message), testTextMessage);
- solo.clickOnText(context.getString(R.string.button_send_message));
- solo.sleep(1000);
-
- Assert.assertTrue(solo.searchText(testTextMessage, 2));
- Log.testSuccess("Chat message successfully received");
-
- solo.goBack();
- Assert.assertTrue(solo.searchText("junit", 2));
- solo.clickOnView(solo.getView(R.id.clearFastChatField));
- EditText fastChat = (EditText) solo.getView(R.id.newFastChat);
- Assert.assertEquals(fastChat.getText().toString(), "");
- Log.testSuccess("Fast new chat cleaned");
-
- solo.clickOnText(context.getString(R.string.button_edit));
- solo.clickOnText("junit");
- solo.clickOnText(context.getString(R.string.button_ok));
- solo.sleep(1000);
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.no_chat_history)));
- Log.testSuccess("Conversation successfully deleted");
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/History.java b/tests/src/org/linphone/test/History.java
new file mode 100644
index 000000000..8d2243bef
--- /dev/null
+++ b/tests/src/org/linphone/test/History.java
@@ -0,0 +1,29 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.LinphoneActivity;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.SmallTest;
+
+public class History extends SampleTest {
+
+ @SmallTest
+ @MediumTest
+ @LargeTest
+ public void testACheckForTestCallInHistory() {
+ goToHistory();
+
+ Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.today)));
+ Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)));
+ }
+
+ private void goToHistory() {
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+
+ solo.clickOnView(solo.getView(org.linphone.R.id.history));
+ }
+}
diff --git a/tests/src/org/linphone/test/HistoryTest.java b/tests/src/org/linphone/test/HistoryTest.java
deleted file mode 100644
index ac102d9b8..000000000
--- a/tests/src/org/linphone/test/HistoryTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.InCallActivity;
-import org.linphone.LinphoneActivity;
-import org.linphone.LinphoneManager;
-import org.linphone.R;
-
-import android.content.Context;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.EditText;
-import android.widget.ListView;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class HistoryTest extends ActivityInstrumentationTestCase2 {
-
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public HistoryTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- private void selectItemInListOnUIThread(final int item) {
- solo.sleep(500);
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- ListView list = (ListView) solo.getView(android.R.id.list);
- list.setSelection(item);
- }
- });
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
-
- //Depending on previous tests, history may not be empty
- LinphoneManager.getLc().clearCallLogs();
- }
-
- public void testADisplayEmptyHistory() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.no_call_history)));
- Log.testSuccess("Empty History displayed");
- }
-
- public void testBCallToFillHistory() {
- Context context = getActivity();
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
-
- solo.clickOnView(solo.getView(R.id.settings));
- selectItemInListOnUIThread(4);
- solo.clickOnText(context.getString(R.string.pref_video_enable_title));
-
- solo.clickOnView(solo.getView(R.id.dialer));
- solo.clickOnView(solo.getView(R.id.Adress));
- solo.enterText((EditText) solo.getView(R.id.Adress), "cotcot@sip.linphone.org");
- solo.clickOnView(solo.getView(R.id.Call));
-
- solo.waitForActivity("InCallActivity", 2000);
- solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
- Log.testSuccess("Outgoing call to cotcot successfull");
-
- solo.clickOnView(solo.getView(R.id.hangUp));
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
-
- solo.clickOnView(solo.getView(R.id.history));
- Assert.assertTrue(solo.searchText("cotcot"));
- Log.testSuccess("Cotcot entry in history");
- }
-
- public void testCDisplayEmptyMissedCallHistory() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- solo.clickOnText(context.getString(R.string.button_missed_call));
- Assert.assertTrue(solo.searchText(context.getString(R.string.no_missed_call_history)));
- Log.testSuccess("Empty Missed Call History displayed");
- }
-
- public void testDCallBackFromHistoryEntry() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- solo.clickOnText(context.getString(R.string.button_all_call));
- solo.sleep(500);
- solo.clickOnText("cotcot");
- solo.waitForActivity("InCallActivity", 2000);
- solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
- Log.testSuccess("Outgoing call to cotcot from history successfull");
-
- solo.clickOnView(solo.getView(R.id.hangUp));
- solo.waitForActivity("LinphoneActivity", 2000);
- }
-
- public void testEDisplayHistoryDetails() {
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- solo.clickOnView(solo.getView(R.id.detail));
- Assert.assertTrue(solo.searchText("cotcot@sip.linphone.org"));
- Log.testSuccess("Displaying history entry details");
- }
-
- public void testFDeleteHistoryEntry() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- solo.clickOnText(context.getString(R.string.button_edit));
- solo.sleep(1000);
- solo.clickOnText("cotcot");
- solo.clickOnText(context.getString(R.string.button_ok));
-
- Assert.assertFalse(solo.searchText("cotcot", 2));
- Log.testSuccess("Clean history from one cotcot entries");
- }
-
- public void testGDeleteAllHistoryEntries() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.history));
-
- solo.clickOnText(context.getString(R.string.button_edit));
- solo.sleep(2000);
- solo.clickOnText(context.getString(R.string.button_delete_all));
- solo.clickOnText(context.getString(R.string.button_ok));
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.no_call_history)));
- Log.testSuccess("Clean history from all entries");
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/LinphoneTestManager.java b/tests/src/org/linphone/test/LinphoneTestManager.java
new file mode 100644
index 000000000..c4a9e4425
--- /dev/null
+++ b/tests/src/org/linphone/test/LinphoneTestManager.java
@@ -0,0 +1,528 @@
+package org.linphone.test;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.linphone.LinphoneException;
+import org.linphone.LinphoneManager;
+import org.linphone.LinphoneManager.LinphoneConfigException;
+import org.linphone.LinphoneService;
+import org.linphone.R;
+import org.linphone.core.LinphoneAddress;
+import org.linphone.core.LinphoneAuthInfo;
+import org.linphone.core.LinphoneCall;
+import org.linphone.core.LinphoneCall.State;
+import org.linphone.core.LinphoneCallStats;
+import org.linphone.core.LinphoneChatMessage;
+import org.linphone.core.LinphoneChatRoom;
+import org.linphone.core.LinphoneCore;
+import org.linphone.core.LinphoneCore.EcCalibratorStatus;
+import org.linphone.core.LinphoneCore.FirewallPolicy;
+import org.linphone.core.LinphoneCore.GlobalState;
+import org.linphone.core.LinphoneCore.MediaEncryption;
+import org.linphone.core.LinphoneCore.RegistrationState;
+import org.linphone.core.LinphoneCore.Transports;
+import org.linphone.core.LinphoneCoreException;
+import org.linphone.core.LinphoneCoreFactory;
+import org.linphone.core.LinphoneCoreListener;
+import org.linphone.core.LinphoneFriend;
+import org.linphone.core.LinphoneInfoMessage;
+import org.linphone.core.LinphoneProxyConfig;
+import org.linphone.core.PayloadType;
+import org.linphone.mediastream.Log;
+import org.linphone.mediastream.Version;
+import org.linphone.mediastream.video.capture.AndroidVideoApi5JniWrapper;
+import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
+import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.telephony.TelephonyManager;
+
+public class LinphoneTestManager implements LinphoneCoreListener {
+
+ private static LinphoneTestManager instance;
+ private Context mContext, mIContext;
+ private LinphoneCore mLc;
+ private static Transports initialTransports;
+
+ public String lastMessageReceived;
+
+ private Timer mTimer = new Timer("Linphone scheduler");
+
+ private LinphoneTestManager(Context ac, Context ic) {
+ mContext = ac;
+ mIContext = ic;
+ }
+
+ public static LinphoneTestManager createAndStart(Context ac, Context ic) {
+ if (instance != null)
+ throw new RuntimeException("Linphone Manager is already initialized");
+
+ instance = new LinphoneTestManager(ac, ic);
+ instance.startLibLinphone(ac);
+ TelephonyManager tm = (TelephonyManager) ac.getSystemService(Context.TELEPHONY_SERVICE);
+ boolean gsmIdle = tm.getCallState() == TelephonyManager.CALL_STATE_IDLE;
+ setGsmIdle(gsmIdle);
+
+ if (Version.isVideoCapable())
+ AndroidVideoApi5JniWrapper.setAndroidSdkVersion(Version.sdk());
+ return instance;
+ }
+
+ private synchronized void startLibLinphone(Context c) {
+ try {
+ LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester");
+
+ mLc = LinphoneCoreFactory.instance().createLinphoneCore(this);
+ mLc.getConfig().setInt("sip", "store_auth_info", 0);
+ mLc.setContext(c);
+ try {
+ String versionName = c.getPackageManager().getPackageInfo(c.getPackageName(), 0).versionName;
+ if (versionName == null) {
+ versionName = String.valueOf(c.getPackageManager().getPackageInfo(c.getPackageName(), 0).versionCode);
+ }
+ mLc.setUserAgent("LinphoneAndroid", versionName);
+ } catch (NameNotFoundException e) {
+ Log.e(e, "cannot get version name");
+ }
+
+ mLc.enableIpv6(false);
+ mLc.setRing(null);
+
+ int availableCores = Runtime.getRuntime().availableProcessors();
+ Log.w("MediaStreamer : " + availableCores + " cores detected and configured");
+ mLc.setCpuCount(availableCores);
+
+ try {
+ initFromConf();
+ } catch (LinphoneException e) {
+ Log.w("no config ready yet");
+ }
+
+ TimerTask lTask = new TimerTask() {
+ @Override
+ public void run() {
+ mLc.iterate();
+ }
+ };
+ mTimer.scheduleAtFixedRate(lTask, 0, 20);
+
+ IntentFilter lFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
+ lFilter.addAction(Intent.ACTION_SCREEN_OFF);
+
+ resetCameraFromPreferences();
+ }
+ catch (Exception e) {
+ Log.e(e, "Cannot start linphone");
+ }
+ }
+
+ private void resetCameraFromPreferences() {
+ boolean useFrontCam = true;
+ int camId = 0;
+ AndroidCamera[] cameras = AndroidCameraConfiguration.retrieveCameras();
+ for (AndroidCamera androidCamera : cameras) {
+ if (androidCamera.frontFacing == useFrontCam)
+ camId = androidCamera.id;
+ }
+ LinphoneManager.getLc().setVideoDevice(camId);
+ }
+
+ public void initFromConf() throws LinphoneConfigException {
+ LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester");
+
+ if (initialTransports == null)
+ initialTransports = mLc.getSignalingTransportPorts();
+
+ setSignalingTransportsFromConfiguration(initialTransports);
+ initMediaEncryption();
+
+ mLc.setVideoPolicy(true, true);
+
+ readAndSetAudioAndVideoPorts();
+
+ String defaultIncomingCallTimeout = mContext.getString(org.linphone.R.string.pref_incoming_call_timeout_default);
+ int incomingCallTimeout = tryToParseIntValue(defaultIncomingCallTimeout, defaultIncomingCallTimeout);
+ mLc.setIncomingTimeout(incomingCallTimeout);
+
+ try {
+ // Configure audio codecs
+// enableDisableAudioCodec("speex", 32000, 1, R.string.pref_codec_speex32_key);
+ enableDisableAudioCodec("speex", 32000, 1, false);
+ enableDisableAudioCodec("speex", 16000, 1, R.string.pref_codec_speex16_key);
+ enableDisableAudioCodec("speex", 8000, 1, R.string.pref_codec_speex8_key);
+ enableDisableAudioCodec("iLBC", 8000, 1, R.string.pref_codec_ilbc_key);
+ enableDisableAudioCodec("GSM", 8000, 1, R.string.pref_codec_gsm_key);
+ enableDisableAudioCodec("G722", 8000, 1, R.string.pref_codec_g722_key);
+ enableDisableAudioCodec("G729", 8000, 1, R.string.pref_codec_g729_key);
+ enableDisableAudioCodec("PCMU", 8000, 1, R.string.pref_codec_pcmu_key);
+ enableDisableAudioCodec("PCMA", 8000, 1, R.string.pref_codec_pcma_key);
+ enableDisableAudioCodec("AMR", 8000, 1, R.string.pref_codec_amr_key);
+ enableDisableAudioCodec("AMR-WB", 16000, 1, R.string.pref_codec_amrwb_key);
+ //enableDisableAudioCodec("SILK", 24000, 1, R.string.pref_codec_silk24_key);
+ enableDisableAudioCodec("SILK", 24000, 1, false);
+ enableDisableAudioCodec("SILK", 16000, 1, R.string.pref_codec_silk16_key);
+ //enableDisableAudioCodec("SILK", 12000, 1, R.string.pref_codec_silk12_key);
+ enableDisableAudioCodec("SILK", 12000, 1, false);
+ enableDisableAudioCodec("SILK", 8000, 1, R.string.pref_codec_silk8_key);
+
+ // Configure video codecs
+ for (PayloadType videoCodec : mLc.getVideoCodecs()) {
+ enableDisableVideoCodecs(videoCodec);
+ }
+ } catch (LinphoneCoreException e) {
+ throw new LinphoneConfigException(mContext.getString(R.string.wrong_settings),e);
+ }
+ boolean isVideoEnabled = true;
+ mLc.enableVideo(isVideoEnabled, isVideoEnabled);
+
+ //stun server
+ String lStun = mContext.getString(R.string.default_stun);
+ mLc.setStunServer(lStun);
+ if (lStun!=null && lStun.length()>0) {
+ mLc.setFirewallPolicy(FirewallPolicy.UseIce);
+ } else {
+ mLc.setFirewallPolicy(FirewallPolicy.NoFirewall);
+ }
+
+ //accounts
+ try {
+ initAccounts();
+
+ //init network state
+ mLc.setNetworkReachable(true);
+ } catch (LinphoneCoreException e) {
+ throw new LinphoneConfigException(mContext.getString(R.string.wrong_settings),e);
+ }
+ }
+
+ public boolean detectVideoCodec(String mime) {
+ for (PayloadType videoCodec : mLc.getVideoCodecs()) {
+ if (mime.equals(videoCodec.getMime())) return true;
+ }
+ return false;
+ }
+
+ public boolean detectAudioCodec(String mime){
+ for (PayloadType audioCodec : mLc.getAudioCodecs()) {
+ if (mime.equals(audioCodec.getMime())) return true;
+ }
+ return false;
+ }
+
+ void initMediaEncryption(){
+ MediaEncryption me=MediaEncryption.None;
+ mLc.setMediaEncryption(me);
+ }
+
+ public void initAccounts() throws LinphoneCoreException {
+ mLc.clearAuthInfos();
+ mLc.clearProxyConfigs();
+
+ String username = mIContext.getString(org.linphone.test.R.string.account_test_calls_login);
+ String password = mIContext.getString(org.linphone.test.R.string.account_test_calls_pwd);
+ String domain = mIContext.getString(org.linphone.test.R.string.account_test_calls_domain);
+ LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null);
+ mLc.addAuthInfo(lAuthInfo);
+ String identity = "sip:" + username +"@" + domain;
+ String proxy = "sip:" + domain;
+ LinphoneProxyConfig proxycon = LinphoneCoreFactory.instance().createProxyConfig(identity, proxy, null, true);
+ mLc.addProxyConfig(proxycon);
+ mLc.setDefaultProxyConfig(proxycon);
+
+ LinphoneProxyConfig lDefaultProxyConfig = mLc.getDefaultProxyConfig();
+ if (lDefaultProxyConfig != null) {
+ //escape +
+ lDefaultProxyConfig.setDialEscapePlus(false);
+ } else if (LinphoneService.isReady()) {
+ LinphoneService.instance().onRegistrationStateChanged(RegistrationState.RegistrationNone, null);
+ }
+ }
+
+ private void readAndSetAudioAndVideoPorts() throws NumberFormatException {
+ int aPortStart, aPortEnd, vPortStart, vPortEnd;
+ int defaultAudioPort, defaultVideoPort;
+ defaultAudioPort = Integer.parseInt(mContext.getString(R.string.default_audio_port));
+ defaultVideoPort = Integer.parseInt(mContext.getString(R.string.default_video_port));
+ aPortStart = aPortEnd = defaultAudioPort;
+ vPortStart = vPortEnd = defaultVideoPort;
+
+ String audioPort = String.valueOf(aPortStart);
+ String videoPort = String.valueOf(vPortStart);
+
+ if (audioPort.contains("-")) {
+ // Port range
+ aPortStart = Integer.parseInt(audioPort.split("-")[0]);
+ aPortEnd = Integer.parseInt(audioPort.split("-")[1]);
+ } else {
+ try {
+ aPortStart = aPortEnd = Integer.parseInt(audioPort);
+ } catch (NumberFormatException nfe) {
+ aPortStart = aPortEnd = defaultAudioPort;
+ }
+ }
+
+ if (videoPort.contains("-")) {
+ // Port range
+ vPortStart = Integer.parseInt(videoPort.split("-")[0]);
+ vPortEnd = Integer.parseInt(videoPort.split("-")[1]);
+ } else {
+ try {
+ vPortStart = vPortEnd = Integer.parseInt(videoPort);
+ } catch (NumberFormatException nfe) {
+ vPortStart = vPortEnd = defaultVideoPort;
+ }
+ }
+
+ if (aPortStart >= aPortEnd) {
+ mLc.setAudioPort(aPortStart);
+ } else {
+ mLc.setAudioPortRange(aPortStart, aPortEnd);
+ }
+
+ if (vPortStart >= vPortEnd) {
+ mLc.setVideoPort(vPortStart);
+ } else {
+ mLc.setVideoPortRange(vPortStart, vPortEnd);
+ }
+ }
+
+ private int tryToParseIntValue(String valueToParse, String defaultValue) {
+ return tryToParseIntValue(valueToParse, Integer.parseInt(defaultValue));
+ }
+
+ private int tryToParseIntValue(String valueToParse, int defaultValue) {
+ try {
+ int returned = Integer.parseInt(valueToParse);
+ return returned;
+ } catch (NumberFormatException nfe) {
+
+ }
+ return defaultValue;
+ }
+
+ public static synchronized final LinphoneTestManager getInstance() {
+ return instance;
+ }
+
+ private void setSignalingTransportsFromConfiguration(Transports t) {
+ Transports ports = new Transports(t);
+ boolean useRandomPort = true;
+ int lPreviousPort = 5060;
+ if (lPreviousPort>0xFFFF || useRandomPort) {
+ lPreviousPort=(int)(Math.random() * (0xFFFF - 1024)) + 1024;
+ Log.w("Using random port " + lPreviousPort);
+ }
+
+ ports.udp = 0;
+ ports.tls = 0;
+ ports.tcp = lPreviousPort;
+
+ mLc.setSignalingTransportPorts(ports);
+ }
+
+ public static synchronized final LinphoneCore getLc() {
+ return getInstance().mLc;
+ }
+
+ private void enableDisableAudioCodec(String codec, int rate, int channels, int key) throws LinphoneCoreException {
+ PayloadType pt = mLc.findPayloadType(codec, rate, channels);
+ if (pt !=null) {
+ boolean enable = true;
+ mLc.enablePayloadType(pt, enable);
+ }
+ }
+ private void enableDisableAudioCodec(String codec, int rate, int channels, boolean enable) throws LinphoneCoreException {
+ PayloadType pt = mLc.findPayloadType(codec, rate, channels);
+ if (pt !=null) {
+ mLc.enablePayloadType(pt, enable);
+ }
+ }
+
+ private void enableDisableVideoCodecs(PayloadType videoCodec) throws LinphoneCoreException {
+ boolean enable = true;
+ mLc.enablePayloadType(videoCodec, enable);
+ }
+
+ private int savedMaxCallWhileGsmIncall;
+ private synchronized void preventSIPCalls() {
+ if (savedMaxCallWhileGsmIncall != 0) {
+ Log.w("SIP calls are already blocked due to GSM call running");
+ return;
+ }
+ savedMaxCallWhileGsmIncall = mLc.getMaxCalls();
+ mLc.setMaxCalls(0);
+ }
+ private synchronized void allowSIPCalls() {
+ if (savedMaxCallWhileGsmIncall == 0) {
+ Log.w("SIP calls are already allowed as no GSM call knowned to be running");
+ return;
+ }
+ mLc.setMaxCalls(savedMaxCallWhileGsmIncall);
+ savedMaxCallWhileGsmIncall = 0;
+ }
+ public static void setGsmIdle(boolean gsmIdle) {
+ LinphoneTestManager mThis = instance;
+ if (mThis == null) return;
+ if (gsmIdle) {
+ mThis.allowSIPCalls();
+ } else {
+ mThis.preventSIPCalls();
+ }
+ }
+
+ private void doDestroy() {
+ try {
+ mTimer.cancel();
+ mLc.destroy();
+ }
+ catch (RuntimeException e) {
+ e.printStackTrace();
+ }
+ finally {
+ mLc = null;
+ instance = null;
+ }
+ }
+
+ public static synchronized void destroy() {
+ if (instance == null) return;
+ instance.doDestroy();
+ }
+
+ @Override
+ public void authInfoRequested(LinphoneCore lc, String realm, String username) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void globalState(LinphoneCore lc, GlobalState state, String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void callState(LinphoneCore lc, LinphoneCall call, State cstate,
+ String message) {
+ // TODO Auto-generated method stub
+ Log.e("Call state = " + cstate.toString());
+ if (cstate == LinphoneCall.State.IncomingReceived) {
+ try {
+ mLc.acceptCall(call);
+ } catch (LinphoneCoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void callStatsUpdated(LinphoneCore lc, LinphoneCall call,
+ LinphoneCallStats stats) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void callEncryptionChanged(LinphoneCore lc, LinphoneCall call,
+ boolean encrypted, String authenticationToken) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg,
+ RegistrationState cstate, String smessage) {
+ // TODO Auto-generated method stub
+ Log.e("Registration state = " + cstate.toString());
+ }
+
+ @Override
+ public void newSubscriptionRequest(LinphoneCore lc, LinphoneFriend lf,
+ String url) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void notifyPresenceReceived(LinphoneCore lc, LinphoneFriend lf) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void textReceived(LinphoneCore lc, LinphoneChatRoom cr,
+ LinphoneAddress from, String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void messageReceived(LinphoneCore lc, LinphoneChatRoom cr,
+ LinphoneChatMessage message) {
+ // TODO Auto-generated method stub
+ Log.e("Message received = " + message.getText());
+ lastMessageReceived = message.getText();
+ }
+
+ @Override
+ public void dtmfReceived(LinphoneCore lc, LinphoneCall call, int dtmf) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void ecCalibrationStatus(LinphoneCore lc, EcCalibratorStatus status,
+ int delay_ms, Object data) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void notifyReceived(LinphoneCore lc, LinphoneCall call,
+ LinphoneAddress from, byte[] event) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void show(LinphoneCore lc) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void displayStatus(LinphoneCore lc, String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void displayMessage(LinphoneCore lc, String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void displayWarning(LinphoneCore lc, String message) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void transferState(LinphoneCore lc, LinphoneCall call,
+ State new_call_state) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void infoReceived(LinphoneCore lc, LinphoneCall call,
+ LinphoneInfoMessage info) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/tests/src/org/linphone/test/Log.java b/tests/src/org/linphone/test/Log.java
deleted file mode 100644
index 63e3df1f7..000000000
--- a/tests/src/org/linphone/test/Log.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.linphone.test;
-
-public class Log {
- public static void testSuccess(String testName) {
- android.util.Log.wtf("TEST SUCCESS", testName);
- }
-
- public static void testFailure(String testName) {
- android.util.Log.wtf("TEST FAILURE", testName);
- }
-}
diff --git a/tests/src/org/linphone/test/PushNotificationTest.java b/tests/src/org/linphone/test/PushNotificationTest.java
deleted file mode 100644
index aa725d1bd..000000000
--- a/tests/src/org/linphone/test/PushNotificationTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package org.linphone.test;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.apache.http.HttpVersion;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.client.BasicResponseHandler;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.protocol.HTTP;
-import org.linphone.LinphoneActivity;
-import org.linphone.R;
-import org.linphone.mediastream.Log;
-
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-import android.test.ActivityInstrumentationTestCase2;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class PushNotificationTest extends
- ActivityInstrumentationTestCase2 {
-
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public PushNotificationTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- private HttpClient createHttpClient()
- {
- HttpParams params = new BasicHttpParams();
- HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
- HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
- HttpProtocolParams.setUseExpectContinue(params, true);
-
- SchemeRegistry schReg = new SchemeRegistry();
- schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
- schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
- ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
-
- return new DefaultHttpClient(conMgr, params);
- }
-
- public void testIncomingPushNotification() {
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
-
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- String regId = prefs.getString(getActivity().getString(R.string.push_reg_id_key), null);
-
- // Send a push notification
- // To do the same from a terminal use: curl --header "Authorization: key=AIzaSyBJAhCVeeqIErwTfYwy-t83_EwvZlCFo9I" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"DEVICE_REG_ID\"]}"
- HttpClient httpClient = createHttpClient();
- HttpPost httpPost = new HttpPost("https://android.googleapis.com/gcm/send");
- httpPost.setHeader("Content-type", "application/x-www-form-urlencoded;charset=UTF-8");
- httpPost.setHeader("Authorization", "key=AIzaSyBJAhCVeeqIErwTfYwy-t83_EwvZlCFo9I"); // Test API
-// httpPost.setHeader("Authorization", "key=AIzaSyDbCO1_KgFhkig_aaTutxx0jEHIib0i8C0");
-
- List nameValuePairs = new ArrayList(2);
- nameValuePairs.add(new BasicNameValuePair("data.test", "TEST"));
- nameValuePairs.add(new BasicNameValuePair("registration_id", regId));
- try {
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
- String result = httpClient.execute(httpPost, new BasicResponseHandler());
- Log.d("TEST Http POST result: " + result);
- } catch (Exception e) {
- e.printStackTrace();
- new junit.framework.TestFailure(this, e.getCause());
- }
-
- // Can be true if a previous notification worked and log hasn't been cleared since...
- Assert.assertTrue(solo.waitForLogMessage("Push notification received", 3000));
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}
diff --git a/tests/src/org/linphone/test/SampleTest.java b/tests/src/org/linphone/test/SampleTest.java
new file mode 100644
index 000000000..b3c23692b
--- /dev/null
+++ b/tests/src/org/linphone/test/SampleTest.java
@@ -0,0 +1,45 @@
+package org.linphone.test;
+
+import org.linphone.LinphoneLauncherActivity;
+
+import android.content.Context;
+import android.test.ActivityInstrumentationTestCase2;
+import android.widget.ListView;
+
+import com.jayway.android.robotium.solo.Solo;
+
+
+
+public abstract class SampleTest extends ActivityInstrumentationTestCase2{
+
+ protected final int STRING_LENGTH_MAX = 20;
+
+ protected Solo solo;
+ protected Context aContext, iContext;
+
+ public SampleTest() {
+ super(LinphoneLauncherActivity.class);
+ }
+
+ @Override
+ public void setUp() throws Exception {
+ solo = new Solo(getInstrumentation());
+ aContext = getActivity();
+ iContext = getInstrumentation().getContext();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ solo.finishOpenedActivities();
+ }
+
+ protected void selectItemInListOnUIThread(final int item) {
+ solo.sleep(500);
+ getActivity().runOnUiThread(new Runnable() {
+ public void run() {
+ ListView list = (ListView) solo.getView(android.R.id.list);
+ list.setSelection(item);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/tests/src/org/linphone/test/SignalingTest.java b/tests/src/org/linphone/test/SignalingTest.java
deleted file mode 100644
index 143811b9a..000000000
--- a/tests/src/org/linphone/test/SignalingTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.linphone.test;
-
-import junit.framework.Assert;
-
-import org.linphone.InCallActivity;
-import org.linphone.LinphoneActivity;
-import org.linphone.R;
-
-import android.content.Context;
-import android.test.ActivityInstrumentationTestCase2;
-import android.widget.EditText;
-import android.widget.ListView;
-
-import com.jayway.android.robotium.solo.Solo;
-
-public class SignalingTest extends ActivityInstrumentationTestCase2 {
- private static final String sipAdressToCall = "macmini@sip.linphone.org";
- private Solo solo;
-
- @SuppressWarnings("deprecation")
- public SignalingTest() {
- super("org.linphone", LinphoneActivity.class);
- }
-
- private void selectItemInListOnUIThread(final int item) {
- solo.sleep(500);
- getActivity().runOnUiThread(new Runnable() {
- public void run() {
- ListView list = (ListView) solo.getView(android.R.id.list);
- list.setSelection(item);
- }
- });
- }
-
- private void goToNetworkSettings() {
- Context context = getActivity();
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- solo.clickOnView(solo.getView(R.id.settings));
-
- selectItemInListOnUIThread(6);
- solo.clickOnText(context.getString(R.string.pref_network_title));
- solo.sleep(500);
- }
-
- private void goToDialerAndOutgoingCall() {
- solo.clickOnView(solo.getView(R.id.dialer));
- solo.clickOnView(solo.getView(R.id.Adress));
- solo.enterText((EditText) solo.getView(R.id.Adress), sipAdressToCall);
- solo.clickOnView(solo.getView(R.id.Call));
-
- solo.waitForActivity("InCallActivity", 2000);
- solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
- solo.waitForText("03", 1, 5000);
- solo.clickOnView(solo.getView(R.id.hangUp));
-
- solo.waitForActivity("LinphoneActivity", 2000);
- solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- public void testARegistrationUDP() {
- Context context = getActivity();
- goToNetworkSettings();
-
- solo.clickOnText(context.getString(R.string.pref_transport));
- solo.clickOnText(context.getString(R.string.pref_transport_udp));
- solo.goBack();
- solo.goBack();
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.status_connected, 2000)));
- }
-
- public void testBOutgoingCallUDP() {
- goToDialerAndOutgoingCall();
- }
-
- public void testCRegistrationTCP() {
- Context context = getActivity();
- goToNetworkSettings();
-
- solo.clickOnText(context.getString(R.string.pref_transport));
- solo.clickOnText(context.getString(R.string.pref_transport_tcp));
- solo.goBack();
- solo.goBack();
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.status_connected, 2000)));
- }
-
- public void testDOutgoingCallTCP() {
- goToDialerAndOutgoingCall();
- }
-
- public void testERegistrationTLS() {
- Context context = getActivity();
- goToNetworkSettings();
-
- solo.clickOnText(context.getString(R.string.pref_transport));
- solo.clickOnText(context.getString(R.string.pref_transport_tls));
- solo.goBack();
- solo.goBack();
-
- Assert.assertTrue(solo.searchText(context.getString(R.string.status_connected, 2000)));
- }
-
- public void testFOutgoingCallTLS() {
- goToDialerAndOutgoingCall();
- }
-
- @Override
- public void tearDown() throws Exception {
- solo.finishOpenedActivities();
- }
-}