diff --git a/submodules/linphone b/submodules/linphone
index 68a23b44b..dbba820b5 160000
--- a/submodules/linphone
+++ b/submodules/linphone
@@ -1 +1 @@
-Subproject commit 68a23b44b0ad8d2cf57ff1b93b6abfd510f14779
+Subproject commit dbba820b5a0b0bf587ed614f6cecd9259f6bae2d
diff --git a/tests/Makefile b/tests/Makefile
index 791b1af86..cdc238939 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -7,7 +7,7 @@ run-basic-tests:
$(SDK_PATH)/android update test-project --path . -m ../
ant debug
ant installd
- ant test
+ adb shell am instrument -w -e size small org.linphone.test/android.test.InstrumentationTestRunner
run-all-tests:
$(SDK_PLATFORM_TOOLS_PATH)/adb uninstall org.linphone.test
diff --git a/tests/res/values/config.xml b/tests/res/values/config.xml
index 6942f8fc5..5e90f0d2a 100644
--- a/tests/res/values/config.xml
+++ b/tests/res/values/config.xml
@@ -13,19 +13,19 @@
wizard42
wizard42@linphone.org
- viish
- lucifer
+ wizard13
+ wizard13
sip.linphone.org
- Cot
+ Wizard
+33952636505
- viish@sip.linphone.org
+ wizard@sip.linphone.org
Ping!
Pong!
- elviish
- lucifer
+ wizard16
+ wizard16
sip.linphone.org
\ No newline at end of file
diff --git a/tests/src/org/linphone/test/AccountAssistant.java b/tests/src/org/linphone/test/AccountAssistant.java
index 0e7b809ef..dc0126743 100644
--- a/tests/src/org/linphone/test/AccountAssistant.java
+++ b/tests/src/org/linphone/test/AccountAssistant.java
@@ -4,13 +4,12 @@ import junit.framework.Assert;
import org.linphone.LinphoneActivity;
import org.linphone.LinphoneManager;
+import org.linphone.LinphonePreferences;
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;
@@ -51,24 +50,23 @@ public class AccountAssistant extends SampleTest {
solo.sleep(3000); //Wait for registration to be done
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
- Assert.assertEquals(proxyConfigs.length, 1);
+ Assert.assertEquals(1, proxyConfigs.length);
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));
+ LinphonePreferences prefs = LinphonePreferences.instance();
+ String stunServer = prefs.getStunServer();
+ Assert.assertEquals(aContext.getString(org.linphone.R.string.default_stun), stunServer);
- 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 transport = prefs.getTransportKey();
+ Assert.assertEquals(aContext.getString(org.linphone.R.string.pref_transport_tls_key), transport);
- 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);
+ String proxy = prefs.getAccountProxy(0);
+ Assert.assertEquals(aContext.getString(org.linphone.R.string.default_domain) + ":5223", proxy);
+ Assert.assertEquals(true, prefs.isAccountOutboundProxySet(0));
- boolean ice = prefs.getBoolean(aContext.getString(org.linphone.R.string.pref_ice_enable_key), false);
+ boolean ice = prefs.isIceEnabled();
Assert.assertEquals(ice, true);
}
diff --git a/tests/src/org/linphone/test/AccountManagement.java b/tests/src/org/linphone/test/AccountManagement.java
index 839eef18c..84fc0a1b0 100644
--- a/tests/src/org/linphone/test/AccountManagement.java
+++ b/tests/src/org/linphone/test/AccountManagement.java
@@ -5,6 +5,7 @@ import junit.framework.Assert;
import org.linphone.FragmentsAvailable;
import org.linphone.LinphoneActivity;
import org.linphone.LinphoneManager;
+import org.linphone.LinphonePreferences;
import org.linphone.core.LinphoneCore.RegistrationState;
import org.linphone.core.LinphoneProxyConfig;
@@ -51,7 +52,7 @@ public class AccountManagement extends SampleTest {
solo.goBack();
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
- Assert.assertEquals(proxyConfigs.length, 1);
+ Assert.assertEquals(1, proxyConfigs.length);
}
@LargeTest
@@ -64,8 +65,7 @@ public class AccountManagement extends SampleTest {
solo.goBack();
solo.goBack();
- LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
- Assert.assertEquals(proxyConfigs.length, 0);
+ Assert.assertFalse(LinphonePreferences.instance().isAccountEnabled(0));
}
@LargeTest
@@ -78,8 +78,7 @@ public class AccountManagement extends SampleTest {
solo.goBack();
solo.goBack();
- LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
- Assert.assertEquals(proxyConfigs.length, 1);
+ Assert.assertTrue(LinphonePreferences.instance().isAccountEnabled(0));
}
private void goToSettings() {
diff --git a/tests/src/org/linphone/test/AinitTestEnv.java b/tests/src/org/linphone/test/AinitTestEnv.java
index 90f88595f..f17d90a2f 100644
--- a/tests/src/org/linphone/test/AinitTestEnv.java
+++ b/tests/src/org/linphone/test/AinitTestEnv.java
@@ -20,7 +20,7 @@ public class AinitTestEnv extends SampleTest {
LinphoneTestManager.createAndStart(aContext, iContext, 1);
solo.sleep(2000);
+ Assert.assertEquals(1, LinphoneTestManager.getLc().getProxyConfigList().length);
Assert.assertEquals(RegistrationState.RegistrationOk, LinphoneTestManager.getLc().getProxyConfigList()[0].getState());
}
-
}
diff --git a/tests/src/org/linphone/test/CallsAudio.java b/tests/src/org/linphone/test/CallsAudio.java
index 3febfdb05..bd8994d2b 100644
--- a/tests/src/org/linphone/test/CallsAudio.java
+++ b/tests/src/org/linphone/test/CallsAudio.java
@@ -10,6 +10,7 @@ import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCoreException;
import org.linphone.core.PayloadType;
+import org.linphone.mediastream.Log;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
@@ -42,6 +43,8 @@ public class CallsAudio extends SampleTest {
@MediumTest
@LargeTest
public void testBOutgoingCallWithDefaultConfig() {
+ LinphoneTestManager.getInstance().declineCall = false; // Just in case
+
solo.enterText(0, iContext.getString(org.linphone.test.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.test.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.Call));
@@ -56,7 +59,7 @@ public class CallsAudio extends SampleTest {
@LargeTest
public void testCDTMFRFC2833InPCMUCall() {
disableAllEnabledAudioCodecs();
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_pcmu));
+ solo.clickOnText("PCMU");
goBackToDialerAfterCodecChanges();
solo.sleep(1000);
@@ -360,8 +363,11 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000);
LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
- if (call.getState() == LinphoneCall.State.OutgoingProgress) {
- solo.sleep(3000);
+ int retry = 0;
+ while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) {
+ solo.sleep(1000);
+ retry++;
+ Log.w("Call in progress but not running, retry = " + retry);
}
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call.getState());
@@ -395,72 +401,72 @@ public class CallsAudio extends SampleTest {
goToAudioCodecsSettings();
if (isAudioCodecEnabled("opus", 48000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_opus));
+ solo.clickOnText("opus");
solo.sleep(500);
}
if (isAudioCodecEnabled("speex", 16000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_speex16));
+ solo.clickOnText("speex");
solo.sleep(500);
}
if (isAudioCodecEnabled("speex", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_speex8));
+ solo.clickOnText("speex", 1);
solo.sleep(500);
}
- if (isAudioCodecEnabled("ilbc", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_ilbc));
+ if (isAudioCodecEnabled("iLBC", 8000)) {
+ solo.clickOnText("iLBC");
solo.sleep(500);
}
if (isAudioCodecEnabled("AMR", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_amr));
+ solo.clickOnText("AMR");
solo.sleep(500);
}
if (isAudioCodecEnabled("AMRWB", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_amrwb));
+ solo.clickOnText("AMRWB");
solo.sleep(500);
}
if (isAudioCodecEnabled("G729", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_g729));
+ solo.clickOnText("G729");
solo.sleep(500);
}
if (isAudioCodecEnabled("GSM", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_gsm));
+ solo.clickOnText("GSM");
solo.sleep(500);
}
if (isAudioCodecEnabled("G722", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_g722));
+ solo.clickOnText("G722");
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 24000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk24));
+ solo.clickOnText("SILK");
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 16000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk16));
+ solo.clickOnText("SILK", 1);
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk8));
+ solo.clickOnText("SILK", 2);
solo.sleep(500);
}
if (isAudioCodecEnabled("PCMU", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_pcmu));
+ solo.clickOnText("PCMU");
solo.sleep(500);
}
if (isAudioCodecEnabled("PCMA", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_pcma));
+ solo.clickOnText("PCMA");
solo.sleep(500);
}
}
diff --git a/tests/src/org/linphone/test/CallsVideo.java b/tests/src/org/linphone/test/CallsVideo.java
index ce3af5672..b84d266cd 100644
--- a/tests/src/org/linphone/test/CallsVideo.java
+++ b/tests/src/org/linphone/test/CallsVideo.java
@@ -10,6 +10,7 @@ import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCoreException;
import org.linphone.core.PayloadType;
+import org.linphone.mediastream.Log;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
@@ -26,6 +27,8 @@ public class CallsVideo extends SampleTest {
@MediumTest
@LargeTest
public void testAInit() {
+ LinphoneTestManager.getLc().enableVideo(true, true); // Just in case
+
//Disable video
goToSettings();
@@ -42,6 +45,8 @@ public class CallsVideo extends SampleTest {
@MediumTest
@LargeTest
public void testBOutgoingCallWithDefaultConfig() {
+ LinphoneTestManager.getInstance().declineCall = false; // Just in case
+
solo.enterText(0, iContext.getString(org.linphone.test.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.test.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.Call));
@@ -205,6 +210,7 @@ public class CallsVideo extends SampleTest {
assertCallIsCorrectlyRunning();
}
+ @SmallTest
@MediumTest
@LargeTest
public void testJIncomingVideoCall() {
@@ -306,11 +312,15 @@ public class CallsVideo extends SampleTest {
solo.sleep(2000);
LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
- if (call.getState() == LinphoneCall.State.OutgoingProgress) {
- solo.sleep(3000);
+ int retry = 0;
+ while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) {
+ solo.sleep(1000);
+ retry++;
+ Log.w("Call in progress but not running, retry = " + retry);
}
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call.getState());
+ Assert.assertTrue(call.getCurrentParamsCopy().getVideoEnabled());
}
private void goToSettings() {
@@ -352,75 +362,75 @@ public class CallsVideo extends SampleTest {
goToAudioCodecsSettings();
if (isAudioCodecEnabled("opus", 48000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_opus));
+ solo.clickOnText("opus");
solo.sleep(500);
}
if (isAudioCodecEnabled("speex", 16000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_speex16));
+ solo.clickOnText("speex");
solo.sleep(500);
}
if (isAudioCodecEnabled("speex", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_speex8));
+ solo.clickOnText("speex", 1);
solo.sleep(500);
}
- if (isAudioCodecEnabled("ilbc", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_ilbc));
+ if (isAudioCodecEnabled("iLBC", 8000)) {
+ solo.clickOnText("iLBC");
solo.sleep(500);
}
if (isAudioCodecEnabled("AMR", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_amr));
+ solo.clickOnText("AMR");
solo.sleep(500);
}
if (isAudioCodecEnabled("AMRWB", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_amrwb));
+ solo.clickOnText("AMRWB");
solo.sleep(500);
}
if (isAudioCodecEnabled("G729", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_g729));
+ solo.clickOnText("G729");
solo.sleep(500);
}
if (isAudioCodecEnabled("GSM", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_gsm));
+ solo.clickOnText("GSM");
solo.sleep(500);
}
if (isAudioCodecEnabled("G722", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_g722));
+ solo.clickOnText("G722");
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 24000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk24));
+ solo.clickOnText("SILK");
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 16000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk16));
+ solo.clickOnText("SILK", 1);
solo.sleep(500);
}
if (isAudioCodecEnabled("SILK", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_silk8));
+ solo.clickOnText("SILK", 2);
solo.sleep(500);
}
if (isAudioCodecEnabled("PCMU", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_pcmu));
+ solo.clickOnText("PCMU");
solo.sleep(500);
}
if (isAudioCodecEnabled("PCMA", 8000)) {
- solo.clickOnText(aContext.getString(org.linphone.R.string.pref_codec_pcma));
+ solo.clickOnText("PCMA");
solo.sleep(500);
}
- }
+ }
private boolean isVideoCodecEnabled(String mime) {
LinphoneCore lc = LinphoneTestManager.getLc();
diff --git a/tests/src/org/linphone/test/Chat.java b/tests/src/org/linphone/test/Chat.java
index 8d4301e59..923990eb7 100644
--- a/tests/src/org/linphone/test/Chat.java
+++ b/tests/src/org/linphone/test/Chat.java
@@ -2,6 +2,7 @@ package org.linphone.test;
import junit.framework.Assert;
+import org.linphone.ChatStorage;
import org.linphone.LinphoneActivity;
import org.linphone.core.LinphoneChatMessage;
import org.linphone.core.LinphoneChatMessage.State;
@@ -17,8 +18,22 @@ import android.test.suitebuilder.annotation.SmallTest;
*/
public class Chat extends SampleTest {
+ @SmallTest
+ @MediumTest
@LargeTest
- public void testBEmptyChatHistory() {
+ public void testAEmptyChatHistory() {
+ goToChat();
+
+ ChatStorage chatStorage = ChatStorage.getInstance();
+ for (String conversation : chatStorage.getChatList()) {
+ chatStorage.removeDiscussion(conversation);
+ }
+
+ Assert.assertEquals(0, chatStorage.getUnreadMessageCount());
+ }
+
+ @LargeTest
+ public void testBDisplayEmptyChatHistory() {
goToChat();
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));
@@ -42,7 +57,7 @@ public class Chat extends SampleTest {
}
@LargeTest
- public void testDNotEmptyChatHistory() {
+ public void testDIsNotEmptyChatHistory() {
goToChat();
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)));
diff --git a/tests/src/org/linphone/test/ConferenceAndMultiCall.java b/tests/src/org/linphone/test/ConferenceAndMultiCall.java
index cb26cd0f4..b1ee29c22 100644
--- a/tests/src/org/linphone/test/ConferenceAndMultiCall.java
+++ b/tests/src/org/linphone/test/ConferenceAndMultiCall.java
@@ -11,6 +11,7 @@ import org.linphone.LinphoneManager;
import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCore.RegistrationState;
import org.linphone.core.LinphoneCoreException;
+import org.linphone.mediastream.Log;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
@@ -45,6 +46,7 @@ public class ConferenceAndMultiCall extends SampleTest {
@MediumTest
@LargeTest
public void testBSimpleConference() {
+ LinphoneTestManager.getInstance().declineCall = false; // Just in case
startConference();
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@@ -255,14 +257,13 @@ public class ConferenceAndMultiCall extends SampleTest {
private void startTwoCalls() {
solo.enterText(0, iContext.getString(org.linphone.test.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.test.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.Call));
-
assertCallIsCorrectlyRunning(1);
+
solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.addCall));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.test.R.string.conference_account_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.Call));
-
assertCallIsCorrectlyRunning(2);
}
@@ -280,12 +281,16 @@ public class ConferenceAndMultiCall extends SampleTest {
private void assertCallIsCorrectlyRunning(int lcId) {
solo.waitForActivity("InCallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
-
+
solo.sleep(2000);
+ Assert.assertEquals(1, LinphoneTestManager.getLc(lcId).getCallsNb());
LinphoneCall call = LinphoneTestManager.getLc(lcId).getCalls()[0];
- if (call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) {
- solo.sleep(3000);
+ int retry = 0;
+ while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) {
+ solo.sleep(1000);
+ retry++;
+ Log.w("Call in progress but not running, retry = " + retry);
}
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call.getState());
diff --git a/tests/src/org/linphone/test/LinphoneTestManager.java b/tests/src/org/linphone/test/LinphoneTestManager.java
index 15120cbf8..df839ef10 100644
--- a/tests/src/org/linphone/test/LinphoneTestManager.java
+++ b/tests/src/org/linphone/test/LinphoneTestManager.java
@@ -20,6 +20,7 @@ import org.linphone.core.LinphoneCore.EcCalibratorStatus;
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;
@@ -37,15 +38,13 @@ 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 mIContext;
+ private Context mAContext, mIContext;
private LinphoneCore mLc1, mLc2;
public String lastMessageReceived;
@@ -53,10 +52,12 @@ public class LinphoneTestManager implements LinphoneCoreListener {
public boolean autoAnswer = true;
public boolean declineCall = false;
- private Timer mTimer = new Timer("Linphone scheduler");
+ private Timer mTimer1 = new Timer("Linphone scheduler 1");
+ private Timer mTimer2 = new Timer("Linphone scheduler 2");
private LinphoneTestManager(Context ac, Context ic) {
mIContext = ic;
+ mAContext = ac;
}
public static LinphoneTestManager createAndStart(Context ac, Context ic, int id) {
@@ -77,7 +78,8 @@ public class LinphoneTestManager implements LinphoneCoreListener {
try {
LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester");
- final LinphoneCore mLc = LinphoneCoreFactory.instance().createLinphoneCore(this);
+ String basePath = mAContext.getFilesDir().getAbsolutePath();
+ final LinphoneCore mLc = LinphoneCoreFactory.instance().createLinphoneCore(this, basePath + "/.linphonerc" + id, null, null);
if (id == 2) {
mLc2 = mLc;
} else {
@@ -114,11 +116,13 @@ public class LinphoneTestManager implements LinphoneCoreListener {
mLc.iterate();
}
};
- mTimer.scheduleAtFixedRate(lTask, 0, 20);
-
- IntentFilter lFilter = new IntentFilter(Intent.ACTION_SCREEN_ON);
- lFilter.addAction(Intent.ACTION_SCREEN_OFF);
+ if (id == 2) {
+ mTimer2.scheduleAtFixedRate(lTask, 0, 20);
+ } else {
+ mTimer1.scheduleAtFixedRate(lTask, 0, 20);
+ }
+
resetCameraFromPreferences();
}
catch (Exception e) {
@@ -137,9 +141,18 @@ public class LinphoneTestManager implements LinphoneCoreListener {
LinphoneManager.getLc().setVideoDevice(camId);
}
- public void initFromConf(LinphoneCore mLc) throws LinphoneConfigException {
+ public void initFromConf(LinphoneCore mLc) throws LinphoneConfigException, LinphoneCoreException {
LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester");
+ // Use TCP with Random port
+ Transports transports = getLc().getSignalingTransportPorts();
+ transports.tcp = -1;
+ transports.udp = 0;
+ transports.tls = 0;
+ mLc.setSignalingTransportPorts(transports);
+
+ initAccounts(mLc);
+
mLc.setVideoPolicy(true, true);
boolean isVideoEnabled = true;
mLc.enableVideo(isVideoEnabled, isVideoEnabled);
@@ -169,7 +182,7 @@ public class LinphoneTestManager implements LinphoneCoreListener {
mLc.setMediaEncryption(me);
}
- public void initAccounts(LinphoneCore mLc) throws LinphoneCoreException {
+ private void initAccounts(LinphoneCore mLc) throws LinphoneCoreException {
mLc.clearAuthInfos();
mLc.clearProxyConfigs();
@@ -183,7 +196,7 @@ public class LinphoneTestManager implements LinphoneCoreListener {
password = mIContext.getString(org.linphone.test.R.string.conference_account_password);
domain = mIContext.getString(org.linphone.test.R.string.conference_account_domain);
}
- LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null);
+ LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain);
mLc.addAuthInfo(lAuthInfo);
String identity = "sip:" + username +"@" + domain;
String proxy = "sip:" + domain;
@@ -243,7 +256,8 @@ public class LinphoneTestManager implements LinphoneCoreListener {
private void doDestroy() {
try {
- mTimer.cancel();
+ mTimer1.cancel();
+ mTimer2.cancel();
mLc1.destroy();
mLc2.destroy();
}
diff --git a/tests/src/org/linphone/test/SampleTest.java b/tests/src/org/linphone/test/SampleTest.java
index 40269f94b..68a0c9e0d 100644
--- a/tests/src/org/linphone/test/SampleTest.java
+++ b/tests/src/org/linphone/test/SampleTest.java
@@ -2,6 +2,7 @@ package org.linphone.test;
import org.linphone.LinphoneLauncherActivity;
import org.linphone.LinphoneManager;
+import org.linphone.core.LinphoneCore;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
@@ -32,7 +33,10 @@ public abstract class SampleTest extends ActivityInstrumentationTestCase2