diff --git a/tests/src/org/linphone/test/ConferenceAndMultiCall.java b/tests/src/org/linphone/test/ConferenceAndMultiCall.java index 0e25c6b8d..152f12e5d 100644 --- a/tests/src/org/linphone/test/ConferenceAndMultiCall.java +++ b/tests/src/org/linphone/test/ConferenceAndMultiCall.java @@ -3,14 +3,18 @@ package org.linphone.test; import junit.framework.Assert; import org.linphone.InCallActivity; +import org.linphone.IncomingCallActivity; import org.linphone.LinphoneActivity; import org.linphone.LinphoneManager; import org.linphone.core.LinphoneCall; +import org.linphone.core.LinphoneCoreException; import org.linphone.core.LinphoneCore.RegistrationState; import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.MediumTest; import android.test.suitebuilder.annotation.SmallTest; +import android.util.DisplayMetrics; +import android.view.View; public class ConferenceAndMultiCall extends SampleTest { @@ -64,17 +68,16 @@ public class ConferenceAndMultiCall extends SampleTest { solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); } - @SmallTest - @MediumTest + @SmallTest //TODO REMOVE @LargeTest - public void testCChangePausedCall() { - startConference(); + public void testDChangePausedCall() { + startTwoCalls(); 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.Paused, call1.getState()); + Assert.assertEquals(LinphoneCall.State.PausedByRemote, call1.getState()); solo.clickOnView(solo.getView(org.linphone.R.id.callStatus)); solo.sleep(2000); @@ -87,6 +90,118 @@ public class ConferenceAndMultiCall extends SampleTest { solo.waitForActivity("LinphoneActivity", 5000); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); } + + @LargeTest + public void testEPauseAllCalls() { + startTwoCalls(); + //TODO + } + + @SmallTest //TODO REMOVE + @LargeTest + public void testFAddNewCallAndCancelIt() { + 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); + LinphoneTestManager.getInstance().autoAnswer = false; + + 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)); + + solo.sleep(2000); + solo.clickOnView(solo.getView(org.linphone.R.id.hangUp)); + + solo.sleep(1000); + solo.clickOnView(solo.getView(org.linphone.R.id.hangUp)); + solo.waitForActivity("LinphoneActivity", 5000); + solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); + + LinphoneTestManager.getInstance().autoAnswer = true; + } + + @SmallTest //TODO REMOVE + @LargeTest + public void testGIncomingCallWhileInCallAndDecline() { + LinphoneTestManager.getInstance().autoAnswer = true; //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)); + + assertCallIsCorrectlyRunning(1); + LinphoneTestManager.getInstance().autoAnswer = false; + + solo.sleep(2000); + try { + LinphoneTestManager.getLc(2).invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); + } catch (LinphoneCoreException e) { + e.printStackTrace(); + } + + solo.waitForActivity("IncomingCallActivity", 5000); + solo.assertCurrentActivity("Expected Incoming Call Activity", IncomingCallActivity.class); + + solo.sleep(1000); + View topLayout = solo.getView(org.linphone.R.id.topLayout); + int topLayoutHeigh = topLayout.getMeasuredHeight(); + DisplayMetrics dm = new DisplayMetrics(); + getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); + int topOffset = dm.heightPixels - topLayoutHeigh; + int slidersTop = topLayoutHeigh - 80 - topOffset; // 80 is the bottom margin set in incoming.xml + solo.drag(topLayout.getMeasuredWidth() - 10, 10, slidersTop, slidersTop, 10); + + assertCallIsCorrectlyRunning(1); + + solo.sleep(2000); + solo.clickOnView(solo.getView(org.linphone.R.id.hangUp)); + solo.waitForActivity("LinphoneActivity", 5000); + solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); + } + + @SmallTest //TODO REMOVE + @LargeTest + public void testHIncomingCallWhileInCallAndAccept() { + 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.sleep(2000); + try { + LinphoneTestManager.getLc(2).invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); + } catch (LinphoneCoreException e) { + e.printStackTrace(); + } + + solo.waitForActivity("IncomingCallActivity", 5000); + solo.assertCurrentActivity("Expected Incoming Call Activity", IncomingCallActivity.class); + + solo.sleep(1000); + View topLayout = solo.getView(org.linphone.R.id.topLayout); + int topLayoutHeigh = topLayout.getMeasuredHeight(); + DisplayMetrics dm = new DisplayMetrics(); + getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); + int topOffset = dm.heightPixels - topLayoutHeigh; + int slidersTop = topLayoutHeigh - 80 - topOffset; // 80 is the bottom margin set in incoming.xml + solo.drag(10, topLayout.getMeasuredWidth() - 10, slidersTop, slidersTop, 10); + + assertCallIsCorrectlyRunning(1); + assertCallIsCorrectlyRunning(2); + + solo.clickOnView(solo.getView(org.linphone.R.id.hangUp)); + solo.sleep(1000); + solo.clickOnView(solo.getView(org.linphone.R.id.hangUp)); + solo.waitForActivity("LinphoneActivity", 5000); + solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); + } + + @LargeTest + public void testIAddNewCallDeclined() { + //TODO + } private void goToSettings() { solo.waitForActivity("LinphoneActivity", 2000); @@ -95,7 +210,7 @@ public class ConferenceAndMultiCall extends SampleTest { solo.clickOnView(solo.getView(org.linphone.R.id.settings)); } - private void startConference() { + 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)); @@ -107,6 +222,10 @@ public class ConferenceAndMultiCall extends SampleTest { solo.clickOnView(solo.getView(org.linphone.R.id.Call)); assertCallIsCorrectlyRunning(2); + } + + private void startConference() { + startTwoCalls(); solo.clickOnView(solo.getView(org.linphone.R.id.conference)); solo.sleep(1000);