Improve tests

This commit is contained in:
Margaux Clerc 2015-06-05 11:48:12 +02:00
parent cb76489f63
commit cd62369fd5
9 changed files with 88 additions and 74 deletions

View file

@ -5,7 +5,6 @@ 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;
@ -53,8 +52,8 @@ public class AccountAssistant extends SampleTest {
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
Assert.assertEquals(1, proxyConfigs.length);
LinphoneProxyConfig proxyConfig = proxyConfigs[0];
Assert.assertEquals(RegistrationState.RegistrationOk, proxyConfig.getState());
waitForRegistration(proxyConfig);
//Check the wizard added sip.linphone.org custom settings
LinphonePreferences prefs = LinphonePreferences.instance();
String stunServer = prefs.getStunServer();
@ -98,7 +97,7 @@ public class AccountAssistant extends SampleTest {
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
Assert.assertEquals(proxyConfigs.length, 2);
LinphoneProxyConfig proxyConfig = proxyConfigs[1];
Assert.assertEquals(RegistrationState.RegistrationOk, proxyConfig.getState());
waitForRegistration(proxyConfig);
}
@LargeTest

View file

@ -6,7 +6,6 @@ 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;
import android.test.suitebuilder.annotation.LargeTest;
@ -33,7 +32,7 @@ public class AccountManagement extends SampleTest {
waitForRegistration(proxyConfig);
Assert.assertEquals(proxyConfigs.length, 2);
proxyConfig = proxyConfigs[1];
Assert.assertEquals(RegistrationState.RegistrationOk, proxyConfig.getState());
waitForRegistration(proxyConfig);
Assert.assertTrue(proxyConfig.getIdentity(), proxyConfig.getIdentity().contains("new"));
}

View file

@ -2,8 +2,6 @@ package org.linphone.test;
import junit.framework.Assert;
import org.linphone.core.LinphoneCore.RegistrationState;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;
@ -21,6 +19,6 @@ public class AinitTestEnv extends SampleTest {
solo.sleep(5000);
Assert.assertEquals(1, LinphoneTestManager.getLc().getProxyConfigList().length);
Assert.assertEquals(RegistrationState.RegistrationOk, LinphoneTestManager.getLc().getProxyConfigList()[0].getState());
waitForRegistration(LinphoneTestManager.getLc().getProxyConfigList()[0]);
}
}

View file

@ -18,6 +18,10 @@ import android.test.suitebuilder.annotation.SmallTest;
import android.util.DisplayMetrics;
import android.view.View;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
/**
* @author Sylvain Berfini
*/
@ -154,7 +158,7 @@ public class CallsAudio extends SampleTest {
solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
solo.sleep(2000);
Assert.assertEquals(LinphoneCall.State.OutgoingRinging, LinphoneManager.getLc().getCalls()[0].getState());
waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging);
LinphoneTestManager.getInstance().autoAnswer = true;
@ -246,14 +250,13 @@ public class CallsAudio extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000);
LinphoneCall.State state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Paused == state || LinphoneCall.State.Pausing == state);
waitForCallPaused(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000);
state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Resuming == state || LinphoneCall.State.StreamsRunning == state);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
solo.waitForActivity("LinphoneActivity", 5000);
@ -270,13 +273,13 @@ public class CallsAudio extends SampleTest {
LinphoneTestManager.getLc().pauseAllCalls();
solo.sleep(1000);
Assert.assertEquals(LinphoneCall.State.PausedByRemote, LinphoneManager.getLc().getCalls()[0].getState());
waitForCallState(LinphoneManager.getLc().getCalls()[0], LinphoneCall.State.PausedByRemote);
LinphoneTestManager.getLc().resumeCall(LinphoneTestManager.getLc().getCalls()[0]);
solo.sleep(1000);
LinphoneCall.State state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Resuming == state || LinphoneCall.State.StreamsRunning == state);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickLongOnScreen(200, 200); //To ensure controls are shown
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -362,15 +365,8 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000);
LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
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());
waitForCallState(call, LinphoneCall.State.StreamsRunning);
}
private void goToSettings() {

View file

@ -11,7 +11,6 @@ import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphonePlayer;
import org.linphone.core.PayloadType;
import org.linphone.core.LinphoneCore.RegistrationState;
import org.linphone.mediastream.Log;
import android.test.suitebuilder.annotation.LargeTest;
@ -169,7 +168,7 @@ public class CallsVideo extends SampleTest {
solo.assertCurrentActivity("Expected InCall Activity", InCallActivity.class);
solo.sleep(2000);
Assert.assertEquals(LinphoneCall.State.OutgoingRinging, LinphoneManager.getLc().getCalls()[0].getState());
waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging);
LinphoneTestManager.getInstance().autoAnswer = true;
@ -273,15 +272,12 @@ public class CallsVideo extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000);
LinphoneCall.State state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Paused == state || LinphoneCall.State.Pausing == state);
waitForCallPaused(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000);
state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Resuming == state || LinphoneCall.State.StreamsRunning == state);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
solo.waitForActivity("LinphoneActivity", 5000);
@ -298,13 +294,12 @@ public class CallsVideo extends SampleTest {
LinphoneTestManager.getLc().pauseAllCalls();
solo.sleep(1000);
Assert.assertEquals(LinphoneCall.State.PausedByRemote, LinphoneManager.getLc().getCalls()[0].getState());
waitForCallState(LinphoneManager.getLc().getCalls()[0], LinphoneCall.State.PausedByRemote);
LinphoneTestManager.getLc().resumeCall(LinphoneTestManager.getLc().getCalls()[0]);
solo.sleep(1000);
LinphoneCall.State state = LinphoneManager.getLc().getCalls()[0].getState();
Assert.assertTrue(LinphoneCall.State.Resuming == state || LinphoneCall.State.StreamsRunning == state);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickLongOnScreen(200, 200); //To ensure controls are shown
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -342,15 +337,8 @@ public class CallsVideo extends SampleTest {
solo.sleep(2000);
LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
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());
waitForCallState(call, LinphoneCall.State.StreamsRunning);
}
private void goToSettings() {

View file

@ -28,7 +28,7 @@ public class ConferenceAndMultiCall extends SampleTest {
LinphoneTestManager.createAndStart(aContext, iContext, 2);
solo.sleep(2000);
Assert.assertEquals(RegistrationState.RegistrationOk, LinphoneTestManager.getLc(2).getProxyConfigList()[0].getState());
waitForRegistration(LinphoneTestManager.getLc(2).getProxyConfigList()[0]);
//Disable video
goToSettings();
@ -79,13 +79,13 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(2000);
LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0];
LinphoneCall call2 = LinphoneTestManager.getLc(2).getCalls()[0];
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call2.getState());
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call1.getState());
waitForCallState(call2,LinphoneCall.State.StreamsRunning);
waitForCallState(call1,LinphoneCall.State.PausedByRemote);
solo.clickOnView(solo.getView(org.linphone.R.id.callStatus));
solo.sleep(2000);
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call1.getState());
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call2.getState());
waitForCallState(call1,LinphoneCall.State.StreamsRunning);
waitForCallState(call2,LinphoneCall.State.PausedByRemote);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
solo.sleep(1000);
@ -101,14 +101,14 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(2000);
LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0];
LinphoneCall call2 = LinphoneTestManager.getLc(2).getCalls()[0];
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call2.getState());
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call1.getState());
waitForCallState(call2,LinphoneCall.State.StreamsRunning);
waitForCallState(call1,LinphoneCall.State.PausedByRemote);
ArrayList<View> views = solo.getViews(solo.getView(2));
solo.clickOnView(views.get(2)); // Second call pause button
solo.sleep(2000);
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call1.getState());
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call2.getState());
waitForCallState(call2,LinphoneCall.State.PausedByRemote);
waitForCallState(call1,LinphoneCall.State.PausedByRemote);
// All calls are paused, one click on hangUp terminates them all
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -132,11 +132,11 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(2000);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
Assert.assertEquals(LinphoneCall.State.PausedByRemote, LinphoneTestManager.getLc(1).getCalls()[0].getState());
waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.PausedByRemote);
solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000);
Assert.assertEquals(LinphoneCall.State.StreamsRunning, LinphoneTestManager.getLc(1).getCalls()[0].getState());
waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.StreamsRunning);
solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -163,7 +163,7 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.Call));
solo.sleep(2000);
Assert.assertEquals(LinphoneCall.State.PausedByRemote, LinphoneTestManager.getLc(1).getCalls()[0].getState());
waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.PausedByRemote);
solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -237,7 +237,7 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(1000);
LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0];
Assert.assertEquals(LinphoneCall.State.PausedByRemote, call1.getState());
waitForCallState(call1,LinphoneCall.State.PausedByRemote);
assertCallIsCorrectlyRunning(2);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
@ -292,7 +292,7 @@ public class ConferenceAndMultiCall extends SampleTest {
retry++;
Log.w("Call in progress but not running, retry = " + retry);
}
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call.getState());
waitForCallState(call, LinphoneCall.State.StreamsRunning);
}
}

View file

@ -44,7 +44,7 @@ public class History extends SampleTest {
solo.sleep(2000);
Assert.assertEquals(1, LinphoneTestManager.getLc().getCallsNb());
Assert.assertEquals(LinphoneCall.State.StreamsRunning, LinphoneTestManager.getLc().getCalls()[0].getState());
waitForCallState(LinphoneTestManager.getLc().getCalls()[0],LinphoneCall.State.StreamsRunning);
solo.clickOnView(solo.getView(org.linphone.R.id.hangUp));
solo.waitForActivity("LinphoneActivity", 5000);

View file

@ -2,6 +2,8 @@ package org.linphone.test;
import org.linphone.LinphoneLauncherActivity;
import org.linphone.LinphoneManager;
import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCall.State;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneProxyConfig;
import org.linphone.core.LinphoneCore.RegistrationState;
@ -9,6 +11,7 @@ import org.linphone.core.LinphoneCore.RegistrationState;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.ListView;
import java.util.List;
import com.robotium.solo.Condition;
import com.robotium.solo.Solo;
@ -54,11 +57,42 @@ public abstract class SampleTest extends ActivityInstrumentationTestCase2<Linpho
}
protected void waitForRegistration(final LinphoneProxyConfig lpc) {
if(lpc == null) return;
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return RegistrationState.RegistrationOk == lpc.getState();
}
},30000);
@Override
public boolean isSatisfied() {
return RegistrationState.RegistrationOk == lpc.getState();
}
}, 30000);
}
protected void waitForCallPaused(final LinphoneCall call) {
if(call == null) return;
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return call.getState().equals(State.Paused) || call.getState().equals(State.Pausing);
}
}, 30000);
}
protected void waitForCallResumed(final LinphoneCall call) {
if(call == null) return;
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return call.getState().equals(State.Resuming) || call.getState().equals(State.StreamsRunning);
}
}, 30000);
}
protected void waitForCallState(final LinphoneCall call, final State state) {
if(call == null) return;
solo.waitForCondition(new Condition() {
@Override
public boolean isSatisfied() {
return state.equals(call.getState());
}
}, 30000);
}
}

View file

@ -53,6 +53,6 @@ public class Transfer extends SampleTest {
Log.w("Call in progress but not running, retry = " + retry);
}
Assert.assertEquals(LinphoneCall.State.StreamsRunning, call.getState());
waitForCallState(call,LinphoneCall.State.StreamsRunning);
}
}