Change Android test

This commit is contained in:
Erwan Croze 2017-04-03 12:23:45 +02:00
parent 074a676d80
commit baa4cfda50
41 changed files with 478 additions and 959 deletions

View file

@ -28,7 +28,8 @@ buildscript {
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
dependencies { dependencies {
compile fileTree(dir: 'libs', include: '*.jar') compile fileTree(include: '*.jar', dir: 'libs')
androidTestCompile fileTree(include: '*.jar', dir: 'libs-test')
if (firebaseEnable()) { if (firebaseEnable()) {
compile 'com.google.firebase:firebase-messaging:9.0.0' compile 'com.google.firebase:firebase-messaging:9.0.0'
} else { } else {
@ -82,138 +83,98 @@ android {
println '[Push Notification] Firebase enabled' println '[Push Notification] Firebase enabled'
} }
manifest.srcFile 'AndroidManifest.xml' manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] java.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
resources.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] 'submodules/linphone/java/j2se',
aidl.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] 'submodules/linphone/java/common',
renderscript.srcDirs = ['submodules/linphone/mediastreamer2/java/src','submodules/linphone/java/j2se','submodules/linphone/java/common','submodules/linphone/java/impl','submodules/externals/axmlrpc/src/main/java','submodules/linphone/coreapi/help/java','src'] 'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src/com',
'src/org']
resources.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src/com',
'src/org']
aidl.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src/com',
'src/org']
renderscript.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src/com',
'src/org']
res.srcDirs = ['res'] res.srcDirs = ['res']
assets.srcDirs = ['assets'] assets.srcDirs = ['assets']
jniLibs.srcDir 'libs' jniLibs.srcDirs = ['libs']
java.exclude '**/mediastream/MediastreamerActivity.java' java.excludes = ['**/mediastream/MediastreamerActivity.java', firebase]
java.exclude firebase
// Exclude some useless files
packagingOptions {
exclude '**/gdb.*'
}
} }
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug') debug.setRoot('build-types/debug')
release.setRoot('build-types/release') release.setRoot('build-types/release')
} }
buildToolsVersion '25.0.2'
}
///////////// Task ///////////// sourceSets {
// TODO androidTest {
def getSdkDir() { String firebase = ''
Properties local = new Properties() // Exclude firebase file if not enable
if (new File("${rootDir}/local.properties").exists()) { if (!firebaseEnable()) {
local.load(new FileInputStream("${rootDir}/local.properties")) firebase = '**/Firebase*'
println '[Push Notification] Firebase disabled'
} else {
println '[Push Notification] Firebase enabled'
}
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src']
resources.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src']
aidl.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src']
renderscript.srcDirs = ['submodules/linphone/mediastreamer2/java/src',
'submodules/linphone/java/j2se',
'submodules/linphone/java/common',
'submodules/linphone/java/impl',
'submodules/linphone/coreapi/help/java',
'src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
java.excludes = ['**/mediastream/MediastreamerActivity.java', firebase]
// Exclude some useless files
packagingOptions {
exclude '**/gdb.*'
}
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
} }
return local.getProperty('sdk.dir') }
}
def getTarget() {
Properties local = new Properties()
if (new File("${rootDir}/project.properties").exists()) {
local.load(new FileInputStream("${rootDir}/project.properties"))
}
return local.getProperty('target')
}
def getVersionName() {
Properties local = new Properties()
if (new File("${rootDir}/default.properties").exists()) {
local.load(new FileInputStream("${rootDir}/default.properties"))
}
return local.getProperty('version.name')
}
ext.toolsDir = getSdkDir()
ext.versionName = getVersionName()
//task myJavadocs(type: Javadoc) {
//source = sourceSets.main.allJava
//classpath = ${toolsDir}/platforms/${target}/android.jar:libs/android-support-v4.jar:libs/gcm.jar
//}
task createLibJar(type: Jar) {
doLast {
baseName = "liblinphone"
String classDir = compileReleaseJavaWithJavac.destinationDir
from ('submodules/linphone/java')
include "common/org/linphone/core/*.java j2se/org/linphone/core/*.java"
from (classDir)
include "org/linphone/mediastream/**/*.class org/linphone/core/**/*.class org/linphone/tools/**/*.class"
}
}
task createAndroidJar(type: Jar) {
doLast {
baseName = "linphone"
String classDir = compileReleaseJavaWithJavac.destinationDir
from (['submodules/linphone/java',classDir])
include ("common/org/linphone/core/*.java", "j2se/org/linphone/core/*.java", "org/linphone/mediastream/**/*.class", "org/linphone/core/**/*.class", "org/linphone/**/*.class, org/linphone/tools/**/*.class")
}
}
task liblinphoneAndroidSdk(type: Zip) {
doLast {
createLibJar()
archiveName = 'liblinphone-android-sdk-${versionName}.zip'
from ('libs') {
into 'libs'
}
include "**/*.so"
from ('.') {
into 'libs'
}
include "liblinphone.jar"
from ('libs-debug') {
into 'libs-debug'
}
include "**/*.so"
from ('.') {
into 'libs-debug'
}
include "liblinphone.jar"
}
}
task linphoneAndroidSdk(type: Zip) {
doLast {
createAndroidJar()
archiveName = 'linphone-android-sdk-${versionName}.zip'
from ('libs') {
into 'libs'
}
include "**/*.so"
from ('.') {
into 'libs'
}
include "linphone.jar"
from ('libs-debug') {
into 'libs-debug'
}
include "**/*.so"
from ('.') {
into 'libs-debug'
}
include "linphone.jar"
}
}

Binary file not shown.

View file

@ -1,6 +1,6 @@
#Wed Mar 22 15:25:45 CET 2017 #Wed Mar 29 17:34:30 CEST 2017
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-3.4-bin.zip

BIN
libs-test/junit-4.12.jar Normal file

Binary file not shown.

Binary file not shown.

View file

@ -332,7 +332,7 @@ release: java-clean build copy-libs
generate-sdk: liblinphone-android-sdk generate-sdk: liblinphone-android-sdk
liblinphone-android-sdk: generate-apk liblinphone-android-sdk: generate-apk
\tant liblinphone-android-sdk \ttant liblinphone-android-sdk
linphone-android-sdk: generate-apk linphone-android-sdk: generate-apk
\tant linphone-android-sdk \tant linphone-android-sdk
@ -351,11 +351,8 @@ run-liblinphone-tests:
\t@cd liblinphone_tester && \\ \t@cd liblinphone_tester && \\
\tmake run-all-tests \tmake run-all-tests
run-basic-tests: clean
\t$(MAKE) -C tests run-basic-tests ANT_SILENT=$(ANT_SILENT)
run-all-tests: clean run-all-tests: clean
\t$(MAKE) -C tests run-all-tests ANT_SILENT=$(ANT_SILENT) \t./gradlew connectedAndroidTest
pull-transifex: pull-transifex:
\ttx pull -af \ttx pull -af

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.LinphoneActivity; import org.linphone.LinphoneActivity;
@ -40,8 +38,8 @@ public class AccountAssistant extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.login_linphone)); solo.clickOnView(solo.getView(org.linphone.R.id.login_linphone));
solo.clickOnView(solo.getView(org.linphone.R.id.use_username)); solo.clickOnView(solo.getView(org.linphone.R.id.use_username));
solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_username), iContext.getString(R.string.account_linphone_login)); solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_username), iContext.getString(org.linphone.R.string.account_linphone_login));
solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_password), iContext.getString(R.string.account_linphone_pwd)); solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_password), iContext.getString(org.linphone.R.string.account_linphone_pwd));
solo.clickOnView(solo.getView(org.linphone.R.id.assistant_apply)); solo.clickOnView(solo.getView(org.linphone.R.id.assistant_apply));
solo.clickOnView(solo.getView(org.linphone.R.id.assistant_skip)); solo.clickOnView(solo.getView(org.linphone.R.id.assistant_skip));
@ -53,7 +51,7 @@ public class AccountAssistant extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.answerNo)); solo.clickOnView(solo.getView(org.linphone.R.id.answerNo));
solo.waitForActivity("LinphoneActivity", 8000); solo.waitForActivity("LinphoneActivity", 8000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.account_linphone_login) + "@sip.linphone.org")); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_linphone_login) + "@sip.linphone.org"));
solo.sleep(3000); //Wait for registration to be done solo.sleep(3000); //Wait for registration to be done
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList(); LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
@ -65,16 +63,16 @@ public class AccountAssistant extends SampleTest {
LinphonePreferences prefs = LinphonePreferences.instance(); LinphonePreferences prefs = LinphonePreferences.instance();
String stunServer = prefs.getStunServer(); String stunServer = prefs.getStunServer();
Assert.assertEquals(aContext.getString(org.linphone.R.string.default_stun), stunServer); Assert.assertEquals(aContext.getString(org.linphone.R.string.default_stun), stunServer);
String transport = prefs.getAccountTransportKey(0); String transport = prefs.getAccountTransportKey(0);
Assert.assertEquals(aContext.getString(org.linphone.R.string.pref_transport_tls_key), transport); Assert.assertEquals(aContext.getString(org.linphone.R.string.pref_transport_tls_key), transport);
String proxy = prefs.getAccountProxy(0); String proxy = prefs.getAccountProxy(0);
Assert.assertEquals("<sip:" + aContext.getString(org.linphone.R.string.default_domain) + ";transport=tls>", proxy); Assert.assertEquals("<sip:" + aContext.getString(org.linphone.R.string.default_domain) + ";transport=tls>", proxy);
String username = prefs.getAccountUsername(0); String username = prefs.getAccountUsername(0);
Assert.assertEquals(iContext.getString(R.string.account_linphone_login), username); Assert.assertEquals(iContext.getString(org.linphone.R.string.account_linphone_login), username);
boolean ice = prefs.isIceEnabled(); boolean ice = prefs.isIceEnabled();
Assert.assertEquals(ice, true); Assert.assertEquals(ice, true);
} }
@ -90,17 +88,17 @@ public class AccountAssistant extends SampleTest {
startAssistant(); startAssistant();
solo.clickOnView(solo.getView(org.linphone.R.id.login_generic)); solo.clickOnView(solo.getView(org.linphone.R.id.login_generic));
solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_username), iContext.getString(R.string.account_generic_login)); solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_username), iContext.getString(org.linphone.R.string.account_generic_login));
solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_password), iContext.getString(R.string.account_generic_pwd)); solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_password), iContext.getString(org.linphone.R.string.account_generic_pwd));
solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_domain), iContext.getString(R.string.account_generic_domain)); solo.enterText((EditText) solo.getView(org.linphone.R.id.assistant_domain), iContext.getString(org.linphone.R.string.account_generic_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.assistant_apply)); solo.clickOnView(solo.getView(org.linphone.R.id.assistant_apply));
if (!Hacks.hasBuiltInEchoCanceller()) if (!Hacks.hasBuiltInEchoCanceller())
solo.waitForActivity("LinphoneActivity", 8000); solo.waitForActivity("LinphoneActivity", 8000);
else else
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.account_generic_login) + "@" + iContext.getString(R.string.account_generic_domain))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_generic_login) + "@" + iContext.getString(org.linphone.R.string.account_generic_domain)));
solo.sleep(3000); //Wait for registration to be done solo.sleep(3000); //Wait for registration to be done
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList(); LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
Assert.assertEquals(proxyConfigs.length, 2); Assert.assertEquals(proxyConfigs.length, 2);
@ -114,7 +112,7 @@ public class AccountAssistant extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.create_account)); solo.clickOnView(solo.getView(org.linphone.R.id.create_account));
solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(R.string.account_create_login).substring(0, 2)); solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(org.linphone.R.string.account_create_login).substring(0, 2));
solo.sleep(200); solo.sleep(200);
TextView error = (TextView) solo.getView(org.linphone.R.id.username_error); TextView error = (TextView) solo.getView(org.linphone.R.id.username_error);
int sleepingTime = 1500; int sleepingTime = 1500;
@ -124,39 +122,39 @@ public class AccountAssistant extends SampleTest {
Assert.assertFalse(createAccount.isEnabled()); Assert.assertFalse(createAccount.isEnabled());
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.username)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.username));
solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(R.string.account_linphone_login)); solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(org.linphone.R.string.account_linphone_login));
solo.sleep(sleepingTime * 2); solo.sleep(sleepingTime * 2);
Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_username_unavailable)); Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_username_unavailable));
Assert.assertFalse(createAccount.isEnabled()); Assert.assertFalse(createAccount.isEnabled());
solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(R.string.account_create_pwd).substring(0, 2)); solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(org.linphone.R.string.account_create_pwd).substring(0, 2));
solo.sleep(sleepingTime); solo.sleep(sleepingTime);
error = (TextView) solo.getView(org.linphone.R.id.confirm_password_error); error = (TextView) solo.getView(org.linphone.R.id.confirm_password_error);
Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_passwords_unmatched)); Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_passwords_unmatched));
Assert.assertFalse(createAccount.isEnabled()); Assert.assertFalse(createAccount.isEnabled());
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.password)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.password));
solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(R.string.account_create_pwd).substring(0, 2)); solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(org.linphone.R.string.account_create_pwd).substring(0, 2));
solo.enterText((EditText) solo.getView(org.linphone.R.id.confirm_password), iContext.getString(R.string.account_create_pwd).substring(0,2)); solo.enterText((EditText) solo.getView(org.linphone.R.id.confirm_password), iContext.getString(org.linphone.R.string.account_create_pwd).substring(0,2));
solo.sleep(sleepingTime); solo.sleep(sleepingTime);
error = (TextView) solo.getView(org.linphone.R.id.password_error); error = (TextView) solo.getView(org.linphone.R.id.password_error);
Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_password_incorrect)); Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_password_incorrect));
Assert.assertFalse(createAccount.isEnabled()); Assert.assertFalse(createAccount.isEnabled());
solo.enterText((EditText) solo.getView(org.linphone.R.id.email), iContext.getString(R.string.account_create_email).substring(0, 12)); solo.enterText((EditText) solo.getView(org.linphone.R.id.email), iContext.getString(org.linphone.R.string.account_create_email).substring(0, 12));
solo.sleep(sleepingTime); solo.sleep(sleepingTime);
error = (TextView) solo.getView(org.linphone.R.id.email_error); error = (TextView) solo.getView(org.linphone.R.id.email_error);
Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_email_incorrect)); Assert.assertEquals(error.getText(), aContext.getString(org.linphone.R.string.wizard_email_incorrect));
Assert.assertFalse(createAccount.isEnabled()); Assert.assertFalse(createAccount.isEnabled());
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.username)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.username));
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.password)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.password));
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.confirm_password)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.confirm_password));
solo.clearEditText((EditText) solo.getView(org.linphone.R.id.email)); solo.clearEditText((EditText) solo.getView(org.linphone.R.id.email));
solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(R.string.account_create_login)); solo.enterText((EditText) solo.getView(org.linphone.R.id.username), iContext.getString(org.linphone.R.string.account_create_login));
solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(R.string.account_create_pwd)); solo.enterText((EditText) solo.getView(org.linphone.R.id.password), iContext.getString(org.linphone.R.string.account_create_pwd));
solo.enterText((EditText) solo.getView(org.linphone.R.id.confirm_password), iContext.getString(R.string.account_create_pwd)); solo.enterText((EditText) solo.getView(org.linphone.R.id.confirm_password), iContext.getString(org.linphone.R.string.account_create_pwd));
solo.enterText((EditText) solo.getView(org.linphone.R.id.email), iContext.getString(R.string.account_create_email)); solo.enterText((EditText) solo.getView(org.linphone.R.id.email), iContext.getString(org.linphone.R.string.account_create_email));
solo.sleep(sleepingTime); solo.sleep(sleepingTime);
Assert.assertEquals(error.getText(), ""); Assert.assertEquals(error.getText(), "");
Assert.assertTrue(createAccount.isEnabled()); Assert.assertTrue(createAccount.isEnabled());
@ -166,11 +164,11 @@ public class AccountAssistant extends SampleTest {
public void testFCancelWizard() { public void testFCancelWizard() {
startAssistant(); startAssistant();
solo.clickOnView(solo.getView(org.linphone.R.id.assistant_cancel)); solo.clickOnView(solo.getView(org.linphone.R.id.assistant_cancel));
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
private void startAssistant() { private void startAssistant() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.FragmentsAvailable; import org.linphone.FragmentsAvailable;
@ -17,16 +15,16 @@ public class AccountManagement extends SampleTest {
@LargeTest @LargeTest
public void testAEditAccount() { public void testAEditAccount() {
goToSettings(); goToSettings();
solo.clickOnText(iContext.getString(R.string.account_generic_login) + "@" + iContext.getString(R.string.account_generic_domain)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_generic_login) + "@" + iContext.getString(org.linphone.R.string.account_generic_domain));
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_username)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_username));
solo.enterText(0, "new"); solo.enterText(0, "new");
solo.clickOnView(solo.getView(android.R.id.button1)); solo.clickOnView(solo.getView(android.R.id.button1));
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
solo.waitForFragmentByTag(FragmentsAvailable.DIALER.toString(), 2000); solo.waitForFragmentByTag(FragmentsAvailable.DIALER.toString(), 2000);
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList(); LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
LinphoneProxyConfig proxyConfig = proxyConfigs[0]; LinphoneProxyConfig proxyConfig = proxyConfigs[0];
waitForRegistration(proxyConfig); waitForRegistration(proxyConfig);
@ -39,13 +37,13 @@ public class AccountManagement extends SampleTest {
@LargeTest @LargeTest
public void testBDeleteAccount() { public void testBDeleteAccount() {
goToSettings(); goToSettings();
solo.clickOnText(iContext.getString(R.string.account_generic_login) + "new"); solo.clickOnText(iContext.getString(org.linphone.R.string.account_generic_login) + "new");
selectItemInListOnUIThread(16); selectItemInListOnUIThread(16);
solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_delete_account)); solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_delete_account));
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList(); LinphoneProxyConfig[] proxyConfigs = LinphoneManager.getLc().getProxyConfigList();
Assert.assertEquals(1, proxyConfigs.length); Assert.assertEquals(1, proxyConfigs.length);
} }
@ -53,29 +51,29 @@ public class AccountManagement extends SampleTest {
@LargeTest @LargeTest
public void testCDisableAccount() { public void testCDisableAccount() {
goToSettings(); goToSettings();
solo.clickOnText(iContext.getString(R.string.account_linphone_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_linphone_login));
selectItemInListOnUIThread(14); selectItemInListOnUIThread(14);
solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account)); solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account));
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
Assert.assertFalse(LinphonePreferences.instance().isAccountEnabled(0)); Assert.assertFalse(LinphonePreferences.instance().isAccountEnabled(0));
} }
@LargeTest @LargeTest
public void testDEnableAccount() { public void testDEnableAccount() {
goToSettings(); goToSettings();
solo.clickOnText(iContext.getString(R.string.account_linphone_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_linphone_login));
selectItemInListOnUIThread(14); selectItemInListOnUIThread(14);
solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account)); solo.clickLongOnText(aContext.getString(org.linphone.R.string.pref_disable_account));
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
Assert.assertTrue(LinphonePreferences.instance().isAccountEnabled(0)); Assert.assertTrue(LinphonePreferences.instance().isAccountEnabled(0));
} }
private void goToSettings() { private void goToSettings() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.LargeTest;
@ -14,9 +12,9 @@ public class AinitTestEnv extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testAInitLinphoneCore() { public void testAInitLinphoneCore() {
LinphoneTestManager.createAndStart(aContext, iContext, 1); LinphoneTestManager.createAndStart(aContext, iContext, 1);
solo.sleep(5000); solo.sleep(5000);
Assert.assertEquals(1, LinphoneTestManager.getLc().getProxyConfigList().length); Assert.assertEquals(1, LinphoneTestManager.getLc().getProxyConfigList().length);
waitForRegistration(LinphoneTestManager.getLc().getProxyConfigList()[0]); waitForRegistration(LinphoneTestManager.getLc().getProxyConfigList()[0]);

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.CallActivity; import org.linphone.CallActivity;
@ -22,7 +20,7 @@ import android.view.View;
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class CallsAudio extends SampleTest { public class CallsAudio extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
@ -34,24 +32,24 @@ public class CallsAudio extends SampleTest {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_title));
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_enable_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_enable_title));
solo.sleep(500); solo.sleep(500);
solo.goBack(); solo.goBack();
solo.sleep(1000); solo.sleep(1000);
Assert.assertFalse(LinphoneManager.getLc().isVideoEnabled()); Assert.assertFalse(LinphoneManager.getLc().isVideoEnabled());
} }
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testBOutgoingCallWithDefaultConfig() { public void testBOutgoingCallWithDefaultConfig() {
LinphoneTestManager.getInstance().declineCall = false; // Just in case 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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertOutgoingCallIsCorrectlyRunning(); assertOutgoingCallIsCorrectlyRunning();
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -64,26 +62,26 @@ public class CallsAudio extends SampleTest {
solo.clickOnText("PCMU"); solo.clickOnText("PCMU");
goBackToDialerAfterCodecChanges(); goBackToDialerAfterCodecChanges();
solo.sleep(1000); solo.sleep(1000);
LinphoneManager.getLc().setUseRfc2833ForDtmfs(true); LinphoneManager.getLc().setUseRfc2833ForDtmfs(true);
LinphoneManager.getLc().setUseSipInfoForDtmfs(false); LinphoneManager.getLc().setUseSipInfoForDtmfs(false);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.clickOnView(solo.getView(org.linphone.R.id.Digit3)); solo.clickOnView(solo.getView(org.linphone.R.id.Digit3));
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
//To enable when issue http://git.linphone.org/mantis/view.php?id=750 will be fixed //To enable when issue http://git.linphone.org/mantis/view.php?id=750 will be fixed
//Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived); //Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived);
LinphoneTestManager.getInstance().isDTMFReceived = false; LinphoneTestManager.getInstance().isDTMFReceived = false;
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@ -93,23 +91,23 @@ public class CallsAudio extends SampleTest {
public void testDDTMFSIPINFO() { public void testDDTMFSIPINFO() {
LinphoneManager.getLc().setUseRfc2833ForDtmfs(false); LinphoneManager.getLc().setUseRfc2833ForDtmfs(false);
LinphoneManager.getLc().setUseSipInfoForDtmfs(true); LinphoneManager.getLc().setUseSipInfoForDtmfs(true);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.clickOnView(solo.getView(org.linphone.R.id.Digit3)); solo.clickOnView(solo.getView(org.linphone.R.id.Digit3));
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
//To enable when issue http://git.linphone.org/mantis/view.php?id=751 will be fixed //To enable when issue http://git.linphone.org/mantis/view.php?id=751 will be fixed
//Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived); //Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived);
LinphoneTestManager.getInstance().isDTMFReceived = false; LinphoneTestManager.getInstance().isDTMFReceived = false;
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@ -118,12 +116,12 @@ public class CallsAudio extends SampleTest {
@LargeTest @LargeTest
public void testEOutgoingCallToAudioClient() { public void testEOutgoingCallToAudioClient() {
LinphoneTestManager.getLc().enableVideo(false, false); LinphoneTestManager.getLc().enableVideo(false, false);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.waitForActivity("CallOutgoingActivity", 2000); solo.waitForActivity("CallOutgoingActivity", 2000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -133,12 +131,12 @@ public class CallsAudio extends SampleTest {
@LargeTest @LargeTest
public void testFOutgoingCallToVideoClient() { public void testFOutgoingCallToVideoClient() {
LinphoneTestManager.getLc().enableVideo(true, true); LinphoneTestManager.getLc().enableVideo(true, true);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.waitForActivity("CallOutgoingActivity", 5000); solo.waitForActivity("CallOutgoingActivity", 5000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -148,8 +146,8 @@ public class CallsAudio extends SampleTest {
@LargeTest @LargeTest
public void testGOutgoingCallCancelled() { public void testGOutgoingCallCancelled() {
LinphoneTestManager.getInstance().autoAnswer = false; LinphoneTestManager.getInstance().autoAnswer = false;
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.waitForActivity("CallOutgoingActivity", 200); solo.waitForActivity("CallOutgoingActivity", 200);
@ -157,9 +155,9 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging); waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging);
LinphoneTestManager.getInstance().autoAnswer = true; LinphoneTestManager.getInstance().autoAnswer = true;
solo.clickOnView(solo.getView(org.linphone.R.id.outgoing_hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.outgoing_hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -170,16 +168,16 @@ public class CallsAudio extends SampleTest {
public void testHOutgoingCallDeclined() { public void testHOutgoingCallDeclined() {
LinphoneTestManager.getInstance().autoAnswer = true; // Just in case LinphoneTestManager.getInstance().autoAnswer = true; // Just in case
LinphoneTestManager.getInstance().declineCall = true; LinphoneTestManager.getInstance().declineCall = true;
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.sleep(1500); solo.sleep(1500);
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.error_call_declined))); Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.error_call_declined)));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
LinphoneTestManager.getInstance().declineCall = false; LinphoneTestManager.getInstance().declineCall = false;
} }
@ -189,14 +187,14 @@ public class CallsAudio extends SampleTest {
public void testIIncomingAudioCall() { public void testIIncomingAudioCall() {
LinphoneTestManager.getInstance().declineCall = false; // Just in case LinphoneTestManager.getInstance().declineCall = false; // Just in case
LinphoneTestManager.getLc().enableVideo(false, false); LinphoneTestManager.getLc().enableVideo(false, false);
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("CallIncomingActivity", 2000); solo.waitForActivity("CallIncomingActivity", 2000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
@ -210,7 +208,7 @@ public class CallsAudio extends SampleTest {
solo.drag(10, topLayout.getMeasuredWidth() - 10, slidersTop, slidersTop, 10);*/ solo.drag(10, topLayout.getMeasuredWidth() - 10, slidersTop, slidersTop, 10);*/
solo.clickOnView(solo.getView(org.linphone.R.id.accept)); solo.clickOnView(solo.getView(org.linphone.R.id.accept));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
} }
@ -220,11 +218,11 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("CallIncomingActivity", 5000); solo.waitForActivity("CallIncomingActivity", 5000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
@ -238,18 +236,18 @@ public class CallsAudio extends SampleTest {
solo.drag(10, topLayout.getMeasuredWidth() - 10, slidersTop, slidersTop, 10);*/ solo.drag(10, topLayout.getMeasuredWidth() - 10, slidersTop, slidersTop, 10);*/
solo.clickOnView(solo.getView(org.linphone.R.id.accept)); solo.clickOnView(solo.getView(org.linphone.R.id.accept));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testKSelfPauseResumeCall() { public void testKSelfPauseResumeCall() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.pause)); solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000); solo.sleep(1000);
@ -259,7 +257,7 @@ public class CallsAudio extends SampleTest {
solo.sleep(1000); solo.sleep(1000);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]); waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -268,11 +266,11 @@ public class CallsAudio extends SampleTest {
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testLRemotePauseResumeCall() { public void testLRemotePauseResumeCall() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
LinphoneTestManager.getLc().pauseAllCalls(); LinphoneTestManager.getLc().pauseAllCalls();
solo.sleep(1000); solo.sleep(1000);
@ -282,7 +280,7 @@ public class CallsAudio extends SampleTest {
solo.sleep(1000); solo.sleep(1000);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]); waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickLongOnScreen(200, 200); //To ensure controls are shown solo.clickLongOnScreen(200, 200); //To ensure controls are shown
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
@ -291,13 +289,13 @@ public class CallsAudio extends SampleTest {
@LargeTest @LargeTest
public void testMSwitchOnVideoInCallIsNotAllowed() { public void testMSwitchOnVideoInCallIsNotAllowed() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
Assert.assertFalse(solo.getView(org.linphone.R.id.video).isEnabled()); Assert.assertFalse(solo.getView(org.linphone.R.id.video).isEnabled());
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -310,14 +308,14 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("CallIncomingActivity", 5000); solo.waitForActivity("CallIncomingActivity", 5000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
solo.sleep(1000); solo.sleep(1000);
View topLayout = solo.getView(org.linphone.R.id.topLayout); View topLayout = solo.getView(org.linphone.R.id.topLayout);
int topLayoutHeigh = topLayout.getMeasuredHeight(); int topLayoutHeigh = topLayout.getMeasuredHeight();
@ -336,16 +334,16 @@ public class CallsAudio extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("CallIncomingActivity", 5000); solo.waitForActivity("CallIncomingActivity", 5000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
LinphoneTestManager.getLc().terminateAllCalls(); LinphoneTestManager.getLc().terminateAllCalls();
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@ -355,10 +353,10 @@ public class CallsAudio extends SampleTest {
public void testPDisplayMissedCallsNumber() { public void testPDisplayMissedCallsNumber() {
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
Assert.assertTrue(solo.searchText("1")); Assert.assertTrue(solo.searchText("1"));
} }
//TODO: Test each audio codec //TODO: Test each audio codec
private void assertOutgoingCallIsCorrectlyRunning() { private void assertOutgoingCallIsCorrectlyRunning() {
@ -368,7 +366,7 @@ public class CallsAudio extends SampleTest {
LinphoneCall call = LinphoneManager.getLc().getCalls()[0]; LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
waitForCallState(call, LinphoneCall.State.OutgoingProgress); waitForCallState(call, LinphoneCall.State.OutgoingProgress);
} }
private void assertCallIsCorrectlyRunning() { private void assertCallIsCorrectlyRunning() {
solo.waitForActivity("CallActivity", 5000); solo.waitForActivity("CallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class); solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class);
@ -376,23 +374,23 @@ public class CallsAudio extends SampleTest {
LinphoneCall call = LinphoneManager.getLc().getCalls()[0]; LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
waitForCallState(call, LinphoneCall.State.StreamsRunning); waitForCallState(call, LinphoneCall.State.StreamsRunning);
} }
private void goToSettings() { private void goToSettings() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button)); solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button));
solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings)); solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings));
} }
private void goToAudioCodecsSettings() { private void goToAudioCodecsSettings() {
goToSettings(); goToSettings();
selectItemInListOnUIThread(4); selectItemInListOnUIThread(4);
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_audio_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_audio_title));
solo.sleep(500); solo.sleep(500);
} }
private boolean isAudioCodecEnabled(String mime, int rate) { private boolean isAudioCodecEnabled(String mime, int rate) {
LinphoneCore lc = LinphoneTestManager.getLc(); LinphoneCore lc = LinphoneTestManager.getLc();
for (final PayloadType pt : lc.getAudioCodecs()) { for (final PayloadType pt : lc.getAudioCodecs()) {
@ -401,85 +399,85 @@ public class CallsAudio extends SampleTest {
} }
return false; return false;
} }
private void disableAllEnabledAudioCodecs() { private void disableAllEnabledAudioCodecs() {
goToAudioCodecsSettings(); goToAudioCodecsSettings();
if (isAudioCodecEnabled("opus", 48000)) { if (isAudioCodecEnabled("opus", 48000)) {
solo.clickOnText("opus"); solo.clickOnText("opus");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("speex", 16000)) { if (isAudioCodecEnabled("speex", 16000)) {
solo.clickOnText("speex"); solo.clickOnText("speex");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("speex", 8000)) { if (isAudioCodecEnabled("speex", 8000)) {
solo.clickOnText("speex", 1); solo.clickOnText("speex", 1);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("iLBC", 8000)) { if (isAudioCodecEnabled("iLBC", 8000)) {
solo.clickOnText("iLBC"); solo.clickOnText("iLBC");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("AMR", 8000)) { if (isAudioCodecEnabled("AMR", 8000)) {
solo.clickOnText("AMR"); solo.clickOnText("AMR");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("AMRWB", 8000)) { if (isAudioCodecEnabled("AMRWB", 8000)) {
solo.clickOnText("AMRWB"); solo.clickOnText("AMRWB");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("G729", 8000)) { if (isAudioCodecEnabled("G729", 8000)) {
solo.clickOnText("G729"); solo.clickOnText("G729");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("GSM", 8000)) { if (isAudioCodecEnabled("GSM", 8000)) {
solo.clickOnText("GSM"); solo.clickOnText("GSM");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("G722", 8000)) { if (isAudioCodecEnabled("G722", 8000)) {
solo.clickOnText("G722"); solo.clickOnText("G722");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 24000)) { if (isAudioCodecEnabled("SILK", 24000)) {
solo.clickOnText("SILK"); solo.clickOnText("SILK");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 16000)) { if (isAudioCodecEnabled("SILK", 16000)) {
solo.clickOnText("SILK", 1); solo.clickOnText("SILK", 1);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 8000)) { if (isAudioCodecEnabled("SILK", 8000)) {
solo.clickOnText("SILK", 2); solo.clickOnText("SILK", 2);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("PCMU", 8000)) { if (isAudioCodecEnabled("PCMU", 8000)) {
solo.clickOnText("PCMU"); solo.clickOnText("PCMU");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("PCMA", 8000)) { if (isAudioCodecEnabled("PCMA", 8000)) {
solo.clickOnText("PCMA"); solo.clickOnText("PCMA");
solo.sleep(500); solo.sleep(500);
} }
} }
private void goBackToDialerAfterCodecChanges() { private void goBackToDialerAfterCodecChanges() {
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.CallActivity; import org.linphone.CallActivity;
@ -23,7 +21,7 @@ import android.view.View;
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class CallsVideo extends SampleTest { public class CallsVideo extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
@ -39,22 +37,22 @@ public class CallsVideo extends SampleTest {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_automatically_accept_video_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_automatically_accept_video_title));
solo.sleep(500); solo.sleep(500);
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(LinphoneManager.getLc().isVideoEnabled()); Assert.assertTrue(LinphoneManager.getLc().isVideoEnabled());
Assert.assertTrue(LinphoneManager.getLc().getVideoAutoAcceptPolicy()); Assert.assertTrue(LinphoneManager.getLc().getVideoAutoAcceptPolicy());
Assert.assertTrue(LinphoneManager.getLc().getVideoAutoInitiatePolicy()); Assert.assertTrue(LinphoneManager.getLc().getVideoAutoInitiatePolicy());
} }
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testBOutgoingCallWithDefaultConfig() { public void testBOutgoingCallWithDefaultConfig() {
LinphoneTestManager.getInstance().declineCall = false; // Just in case LinphoneTestManager.getInstance().declineCall = false; // Just in case
LinphoneTestManager.getLc().enableVideo(true, true); LinphoneTestManager.getLc().enableVideo(true, true);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertOutgoingCallIsCorrectlyRunning(); assertOutgoingCallIsCorrectlyRunning();
@ -75,26 +73,26 @@ public class CallsVideo extends SampleTest {
solo.clickOnText("PCMU"); solo.clickOnText("PCMU");
goBackToDialerAfterCodecChanges(); goBackToDialerAfterCodecChanges();
solo.sleep(1000); solo.sleep(1000);
LinphoneManager.getLc().setUseRfc2833ForDtmfs(true); LinphoneManager.getLc().setUseRfc2833ForDtmfs(true);
LinphoneManager.getLc().setUseSipInfoForDtmfs(false); LinphoneManager.getLc().setUseSipInfoForDtmfs(false);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.clickOnView(solo.getView(org.linphone.R.id.Digit3)); solo.clickOnView(solo.getView(org.linphone.R.id.Digit3));
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
//To enable when issue http://git.linphone.org/mantis/view.php?id=750 will be fixed //To enable when issue http://git.linphone.org/mantis/view.php?id=750 will be fixed
//Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived); //Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived);
LinphoneTestManager.getInstance().isDTMFReceived = false; LinphoneTestManager.getInstance().isDTMFReceived = false;
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@ -104,23 +102,23 @@ public class CallsVideo extends SampleTest {
public void testDDTMFSIPINFO() { public void testDDTMFSIPINFO() {
LinphoneManager.getLc().setUseRfc2833ForDtmfs(false); LinphoneManager.getLc().setUseRfc2833ForDtmfs(false);
LinphoneManager.getLc().setUseSipInfoForDtmfs(true); LinphoneManager.getLc().setUseSipInfoForDtmfs(true);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.clickOnView(solo.getView(org.linphone.R.id.Digit3)); solo.clickOnView(solo.getView(org.linphone.R.id.Digit3));
solo.clickOnView(solo.getView(org.linphone.R.id.dialer)); solo.clickOnView(solo.getView(org.linphone.R.id.dialer));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
//To enable when issue http://git.linphone.org/mantis/view.php?id=751 will be fixed //To enable when issue http://git.linphone.org/mantis/view.php?id=751 will be fixed
//Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived); //Assert.assertTrue(LinphoneTestManager.getInstance().isDTMFReceived);
LinphoneTestManager.getInstance().isDTMFReceived = false; LinphoneTestManager.getInstance().isDTMFReceived = false;
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@ -129,13 +127,13 @@ public class CallsVideo extends SampleTest {
@LargeTest @LargeTest
public void testEOutgoingCallToAudioClient() { public void testEOutgoingCallToAudioClient() {
LinphoneTestManager.getLc().enableVideo(false, false); LinphoneTestManager.getLc().enableVideo(false, false);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertOutgoingCallIsCorrectlyRunning(); assertOutgoingCallIsCorrectlyRunning();
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -146,7 +144,7 @@ public class CallsVideo extends SampleTest {
public void testFOutgoingCallToVideoClient() { public void testFOutgoingCallToVideoClient() {
LinphoneTestManager.getLc().enableVideo(true, true); LinphoneTestManager.getLc().enableVideo(true, true);
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertOutgoingCallIsCorrectlyRunning(); assertOutgoingCallIsCorrectlyRunning();
@ -163,18 +161,18 @@ public class CallsVideo extends SampleTest {
@LargeTest @LargeTest
public void testGOutgoingCallCancelled() { public void testGOutgoingCallCancelled() {
LinphoneTestManager.getInstance().autoAnswer = false; LinphoneTestManager.getInstance().autoAnswer = false;
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.waitForActivity("InCallActivity", 5000); solo.waitForActivity("InCallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class); solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class);
solo.sleep(2000); solo.sleep(2000);
waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging); waitForCallState(LinphoneManager.getLc().getCalls()[0],LinphoneCall.State.OutgoingRinging);
LinphoneTestManager.getInstance().autoAnswer = true; LinphoneTestManager.getInstance().autoAnswer = true;
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
@ -184,16 +182,16 @@ public class CallsVideo extends SampleTest {
public void testHOutgoingCallDeclined() { public void testHOutgoingCallDeclined() {
LinphoneTestManager.getInstance().autoAnswer = true; // Just in case LinphoneTestManager.getInstance().autoAnswer = true; // Just in case
LinphoneTestManager.getInstance().declineCall = true; LinphoneTestManager.getInstance().declineCall = true;
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.sleep(1500); solo.sleep(1500);
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.error_call_declined))); Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.error_call_declined)));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
LinphoneTestManager.getInstance().declineCall = false; LinphoneTestManager.getInstance().declineCall = false;
} }
@ -201,20 +199,20 @@ public class CallsVideo extends SampleTest {
public void testIIncomingAudioCall() { public void testIIncomingAudioCall() {
LinphoneTestManager.getInstance().declineCall = false; // Just in case LinphoneTestManager.getInstance().declineCall = false; // Just in case
LinphoneTestManager.getLc().enableVideo(false, false); LinphoneTestManager.getLc().enableVideo(false, false);
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("IncomingCallActivity", 5000); solo.waitForActivity("IncomingCallActivity", 5000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.accept)); solo.clickOnView(solo.getView(org.linphone.R.id.accept));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
} }
@ -226,20 +224,20 @@ public class CallsVideo extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
try { try {
LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.test.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.test.R.string.account_linphone_domain)); LinphoneTestManager.getLc().invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("IncomingCallActivity", 5000); solo.waitForActivity("IncomingCallActivity", 5000);
solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming Call Activity", CallIncomingActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.accept)); solo.clickOnView(solo.getView(org.linphone.R.id.accept));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
assertCallIsRunningWithVideo(); assertCallIsRunningWithVideo();
} }
// @SmallTest // @SmallTest
// @MediumTest // @MediumTest
// @LargeTest // @LargeTest
@ -248,15 +246,15 @@ public class CallsVideo extends SampleTest {
// Thread.sleep(2000); // Thread.sleep(2000);
// callPlayerTest(); // callPlayerTest();
// } // }
//TODO: Test each video codec //TODO: Test each video codec
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testKSelfPauseResumeCall() { public void testKSelfPauseResumeCall() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.video_frame)); solo.clickOnView(solo.getView(org.linphone.R.id.video_frame));
@ -267,7 +265,7 @@ public class CallsVideo extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.video_frame)); solo.clickOnView(solo.getView(org.linphone.R.id.video_frame));
solo.clickOnView(solo.getView(org.linphone.R.id.call_pause)); solo.clickOnView(solo.getView(org.linphone.R.id.call_pause));
solo.sleep(1000); solo.sleep(1000);
waitForCallResumed(LinphoneManager.getLc().getCalls()[0]); waitForCallResumed(LinphoneManager.getLc().getCalls()[0]);
solo.clickOnView(solo.getView(org.linphone.R.id.video_frame)); solo.clickOnView(solo.getView(org.linphone.R.id.video_frame));
@ -279,11 +277,11 @@ public class CallsVideo extends SampleTest {
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testLRemotePauseResumeCall() { public void testLRemotePauseResumeCall() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
LinphoneTestManager.getLc().pauseAllCalls(); LinphoneTestManager.getLc().pauseAllCalls();
solo.sleep(1000); solo.sleep(1000);
@ -303,23 +301,23 @@ public class CallsVideo extends SampleTest {
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testMSwitchOffVideoInCall() { public void testMSwitchOffVideoInCall() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
assertCallIsRunningWithVideo(); assertCallIsRunningWithVideo();
Assert.assertTrue(solo.getView(org.linphone.R.id.video).isEnabled()); Assert.assertTrue(solo.getView(org.linphone.R.id.video).isEnabled());
solo.clickOnView(solo.getView(org.linphone.R.id.video_frame)); solo.clickOnView(solo.getView(org.linphone.R.id.video_frame));
solo.clickOnView(solo.getView(org.linphone.R.id.video)); solo.clickOnView(solo.getView(org.linphone.R.id.video));
solo.sleep(1000); solo.sleep(1000);
Assert.assertFalse(LinphoneManager.getLc().getCurrentCall().getCurrentParamsCopy().getVideoEnabled()); Assert.assertFalse(LinphoneManager.getLc().getCurrentCall().getCurrentParamsCopy().getVideoEnabled());
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
private void assertCallIsRunningWithVideo() { private void assertCallIsRunningWithVideo() {
LinphoneCall call = LinphoneManager.getLc().getCalls()[0]; LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
Assert.assertTrue(call.getCurrentParamsCopy().getVideoEnabled()); Assert.assertTrue(call.getCurrentParamsCopy().getVideoEnabled());
@ -341,22 +339,22 @@ public class CallsVideo extends SampleTest {
waitForCallState(call, LinphoneCall.State.StreamsRunning); waitForCallState(call, LinphoneCall.State.StreamsRunning);
} }
private void goToSettings() { private void goToSettings() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button)); solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button));
solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings)); solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings));
} }
private void goToAudioCodecsSettings() { private void goToAudioCodecsSettings() {
goToSettings(); goToSettings();
selectItemInListOnUIThread(4); selectItemInListOnUIThread(4);
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_audio_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_audio_title));
solo.sleep(500); solo.sleep(500);
} }
private void goToVideoCodecsSettings() { private void goToVideoCodecsSettings() {
//goToSettings(); //goToSettings();
@ -367,7 +365,7 @@ public class CallsVideo extends SampleTest {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_title));
solo.sleep(500); solo.sleep(500);
} }
private boolean isAudioCodecEnabled(String mime, int rate) { private boolean isAudioCodecEnabled(String mime, int rate) {
LinphoneCore lc = LinphoneTestManager.getLc(); LinphoneCore lc = LinphoneTestManager.getLc();
for (final PayloadType pt : lc.getAudioCodecs()) { for (final PayloadType pt : lc.getAudioCodecs()) {
@ -376,81 +374,81 @@ public class CallsVideo extends SampleTest {
} }
return false; return false;
} }
private void disableAllEnabledAudioCodecs() { private void disableAllEnabledAudioCodecs() {
goToAudioCodecsSettings(); goToAudioCodecsSettings();
if (isAudioCodecEnabled("opus", 48000)) { if (isAudioCodecEnabled("opus", 48000)) {
solo.clickOnText("opus"); solo.clickOnText("opus");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("speex", 16000)) { if (isAudioCodecEnabled("speex", 16000)) {
solo.clickOnText("speex"); solo.clickOnText("speex");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("speex", 8000)) { if (isAudioCodecEnabled("speex", 8000)) {
solo.clickOnText("speex", 1); solo.clickOnText("speex", 1);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("iLBC", 8000)) { if (isAudioCodecEnabled("iLBC", 8000)) {
solo.clickOnText("iLBC"); solo.clickOnText("iLBC");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("AMR", 8000)) { if (isAudioCodecEnabled("AMR", 8000)) {
solo.clickOnText("AMR"); solo.clickOnText("AMR");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("AMRWB", 8000)) { if (isAudioCodecEnabled("AMRWB", 8000)) {
solo.clickOnText("AMRWB"); solo.clickOnText("AMRWB");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("G729", 8000)) { if (isAudioCodecEnabled("G729", 8000)) {
solo.clickOnText("G729"); solo.clickOnText("G729");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("GSM", 8000)) { if (isAudioCodecEnabled("GSM", 8000)) {
solo.clickOnText("GSM"); solo.clickOnText("GSM");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("G722", 8000)) { if (isAudioCodecEnabled("G722", 8000)) {
solo.clickOnText("G722"); solo.clickOnText("G722");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 24000)) { if (isAudioCodecEnabled("SILK", 24000)) {
solo.clickOnText("SILK"); solo.clickOnText("SILK");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 16000)) { if (isAudioCodecEnabled("SILK", 16000)) {
solo.clickOnText("SILK", 1); solo.clickOnText("SILK", 1);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("SILK", 8000)) { if (isAudioCodecEnabled("SILK", 8000)) {
solo.clickOnText("SILK", 2); solo.clickOnText("SILK", 2);
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("PCMU", 8000)) { if (isAudioCodecEnabled("PCMU", 8000)) {
solo.clickOnText("PCMU"); solo.clickOnText("PCMU");
solo.sleep(500); solo.sleep(500);
} }
if (isAudioCodecEnabled("PCMA", 8000)) { if (isAudioCodecEnabled("PCMA", 8000)) {
solo.clickOnText("PCMA"); solo.clickOnText("PCMA");
solo.sleep(500); solo.sleep(500);
} }
} }
private boolean isVideoCodecEnabled(String mime) { private boolean isVideoCodecEnabled(String mime) {
LinphoneCore lc = LinphoneTestManager.getLc(); LinphoneCore lc = LinphoneTestManager.getLc();
for (final PayloadType pt : lc.getVideoCodecs()) { for (final PayloadType pt : lc.getVideoCodecs()) {
@ -459,73 +457,73 @@ public class CallsVideo extends SampleTest {
} }
return false; return false;
} }
private void disableAllEnabledVideoCodecs() { private void disableAllEnabledVideoCodecs() {
goToVideoCodecsSettings(); goToVideoCodecsSettings();
if (isVideoCodecEnabled("VP8")) { if (isVideoCodecEnabled("VP8")) {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title));
solo.sleep(500); solo.sleep(500);
} }
if (isVideoCodecEnabled("H264")) { if (isVideoCodecEnabled("H264")) {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title));
solo.sleep(500); solo.sleep(500);
} }
if (isVideoCodecEnabled("MP4V-ES")) { if (isVideoCodecEnabled("MP4V-ES")) {
solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title)); solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title));
solo.sleep(500); solo.sleep(500);
} }
} }
// private void forceH264Codec() { // private void forceH264Codec() {
// goToVideoCodecsSettings(); // goToVideoCodecsSettings();
// //
// if (isVideoCodecEnabled("VP8")) { // if (isVideoCodecEnabled("VP8")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// //
// if (!isVideoCodecEnabled("H264")) { // if (!isVideoCodecEnabled("H264")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// //
// if (isVideoCodecEnabled("MP4V-ES")) { // if (isVideoCodecEnabled("MP4V-ES")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// } // }
// private void enableAllDisabledVideoCodecs() { // private void enableAllDisabledVideoCodecs() {
// goToVideoCodecsSettings(); // goToVideoCodecsSettings();
// //
// if (!isVideoCodecEnabled("VP8")) { // if (!isVideoCodecEnabled("VP8")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_vp8_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// //
// if (!isVideoCodecEnabled("H264")) { // if (!isVideoCodecEnabled("H264")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_h264_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// //
// if (!isVideoCodecEnabled("MP4V-ES")) { // if (!isVideoCodecEnabled("MP4V-ES")) {
// solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title)); // solo.clickOnText(aContext.getString(org.linphone.R.string.pref_video_codec_mpeg4_title));
// solo.sleep(500); // solo.sleep(500);
// } // }
// } // }
private void goBackToDialerAfterCodecChanges() private void goBackToDialerAfterCodecChanges()
{ {
solo.goBack(); solo.goBack();
solo.goBack(); solo.goBack();
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
// private void callPlayerTest() throws InterruptedException { // private void callPlayerTest() throws InterruptedException {
// LinphoneCall call = LinphoneTestManager.getLc().getCurrentCall(); // LinphoneCall call = LinphoneTestManager.getLc().getCurrentCall();
// Assert.assertNotNull(call); // Assert.assertNotNull(call);
@ -547,15 +545,15 @@ public class CallsVideo extends SampleTest {
// } // }
// } // }
// } // }
// //
// private class EofListenerImpl implements LinphonePlayer.Listener { // private class EofListenerImpl implements LinphonePlayer.Listener {
// private boolean mEof = false; // private boolean mEof = false;
// //
// @Override // @Override
// public void endOfFile(LinphonePlayer player) { // public void endOfFile(LinphonePlayer player) {
// mEof = true; // mEof = true;
// } // }
// //
// public boolean waitForEof(int timeout) throws InterruptedException { // public boolean waitForEof(int timeout) throws InterruptedException {
// final int refreshTime = 100; // final int refreshTime = 100;
// int time = 0; // int time = 0;

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.LinphoneActivity; import org.linphone.LinphoneActivity;
@ -27,22 +25,22 @@ public class Chat extends SampleTest {
@LargeTest @LargeTest
public void testAEmptyChatHistory() { public void testAEmptyChatHistory() {
goToChat(); goToChat();
LinphoneChatRoom[] chats = LinphoneTestManager.getInstance().getLc().getChatRooms(); LinphoneChatRoom[] chats = LinphoneTestManager.getInstance().getLc().getChatRooms();
for (LinphoneChatRoom chatroom : chats) { for (LinphoneChatRoom chatroom : chats) {
chatroom.deleteHistory(); chatroom.deleteHistory();
} }
Assert.assertEquals(0, LinphoneActivity.instance().getUnreadMessageCount()); Assert.assertEquals(0, LinphoneActivity.instance().getUnreadMessageCount());
} }
@LargeTest @LargeTest
public void testBDisplayEmptyChatHistory() { public void testBDisplayEmptyChatHistory() {
goToChat(); goToChat();
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history))); Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));
} }
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
@ -50,32 +48,32 @@ public class Chat extends SampleTest {
goToChat(); goToChat();
solo.clickOnView(solo.getView(org.linphone.R.id.new_discussion)); solo.clickOnView(solo.getView(org.linphone.R.id.new_discussion));
solo.enterText((EditText)solo.getView(org.linphone.R.id.search_contact_field), "sip:" + iContext.getString(R.string.account_test_calls_login) + "@" + iContext.getString(R.string.account_test_calls_domain)); solo.enterText((EditText)solo.getView(org.linphone.R.id.search_contact_field), "sip:" + iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.enterText((EditText)solo.getView(org.linphone.R.id.message), iContext.getString(R.string.chat_test_text_sent)); solo.enterText((EditText)solo.getView(org.linphone.R.id.message), iContext.getString(org.linphone.R.string.chat_test_text_sent));
solo.clickOnView(solo.getView(org.linphone.R.id.send_message)); solo.clickOnView(solo.getView(org.linphone.R.id.send_message));
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.chat_test_text_sent))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.chat_test_text_sent)));
Assert.assertEquals(iContext.getString(R.string.chat_test_text_sent), LinphoneTestManager.getInstance().lastMessageReceived); Assert.assertEquals(iContext.getString(org.linphone.R.string.chat_test_text_sent), LinphoneTestManager.getInstance().lastMessageReceived);
} }
@LargeTest @LargeTest
public void testDIsNotEmptyChatHistory() { public void testDIsNotEmptyChatHistory() {
goToChat(); goToChat();
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.account_test_calls_login))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_test_calls_login)));
} }
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testEReceiveTextMessage() { public void testEReceiveTextMessage() {
goToChat(); goToChat();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_test_calls_login));
LinphoneChatRoom chatRoom = LinphoneTestManager.getLc().getOrCreateChatRoom("sip:" + iContext.getString(R.string.account_linphone_login) + "@" + iContext.getString(R.string.account_linphone_domain)); LinphoneChatRoom chatRoom = LinphoneTestManager.getLc().getOrCreateChatRoom("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
LinphoneChatMessage msg = chatRoom.createLinphoneChatMessage(iContext.getString(R.string.chat_test_text_received)); LinphoneChatMessage msg = chatRoom.createLinphoneChatMessage(iContext.getString(org.linphone.R.string.chat_test_text_received));
chatRoom.sendMessage(msg, new LinphoneChatMessage.StateListener() { chatRoom.sendMessage(msg, new LinphoneChatMessage.StateListener() {
@Override @Override
public void onLinphoneChatMessageStateChanged(LinphoneChatMessage msg, public void onLinphoneChatMessageStateChanged(LinphoneChatMessage msg,
@ -85,20 +83,20 @@ public class Chat extends SampleTest {
}); });
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.chat_test_text_received))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.chat_test_text_received)));
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testFDeleteMessage() { public void testFDeleteMessage() {
goToChat(); goToChat();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_test_calls_login));
solo.clickLongOnText(iContext.getString(R.string.chat_test_text_received)); solo.clickLongOnText(iContext.getString(org.linphone.R.string.chat_test_text_received));
solo.clickOnText(aContext.getString(org.linphone.R.string.delete)); solo.clickOnText(aContext.getString(org.linphone.R.string.delete));
solo.sleep(1000); solo.sleep(1000);
Assert.assertFalse(solo.searchText(iContext.getString(R.string.chat_test_text_received))); Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.R.string.chat_test_text_received)));
} }
@MediumTest @MediumTest
@ -106,30 +104,30 @@ public class Chat extends SampleTest {
public void testGChatLandscape() { public void testGChatLandscape() {
goToChat(); goToChat();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_test_calls_login));
solo.sleep(1000); solo.sleep(1000);
solo.setActivityOrientation(Solo.LANDSCAPE); solo.setActivityOrientation(Solo.LANDSCAPE);
solo.sleep(1000); solo.sleep(1000);
solo.enterText((EditText) solo.getView(org.linphone.R.id.message), iContext.getString(R.string.chat_test_text_sent)); solo.enterText((EditText) solo.getView(org.linphone.R.id.message), iContext.getString(org.linphone.R.string.chat_test_text_sent));
solo.clickOnView(solo.getView(org.linphone.R.id.send_message)); solo.clickOnView(solo.getView(org.linphone.R.id.send_message));
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.chat_test_text_sent))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.chat_test_text_sent)));
Assert.assertEquals(iContext.getString(R.string.chat_test_text_sent), LinphoneTestManager.getInstance().lastMessageReceived); Assert.assertEquals(iContext.getString(org.linphone.R.string.chat_test_text_sent), LinphoneTestManager.getInstance().lastMessageReceived);
solo.clickOnView(solo.getView(org.linphone.R.id.back)); solo.clickOnView(solo.getView(org.linphone.R.id.back));
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(solo.searchText(iContext.getString(R.string.account_test_calls_login))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_test_calls_login)));
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testHDeleteConversation() { public void testHDeleteConversation() {
goToChat(); goToChat();
/*solo.clickOnText(aContext.getString(org.linphone.R.string.button_edit)); /*solo.clickOnText(aContext.getString(org.linphone.R.string.button_edit));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.delete)); solo.clickOnView(solo.getView(org.linphone.R.id.delete));
@ -138,12 +136,12 @@ public class Chat extends SampleTest {
solo.sleep(1000); solo.sleep(1000);
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));*/ Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_chat_history)));*/
} }
private void goToChat() { private void goToChat() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.chat)); solo.clickOnView(solo.getView(org.linphone.R.id.chat));
} }
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import java.util.ArrayList; import java.util.ArrayList;
import junit.framework.Assert; import junit.framework.Assert;
@ -97,7 +95,7 @@ public class ConferenceAndMultiCall extends SampleTest {
@LargeTest @LargeTest
public void testEPauseAllCalls() { public void testEPauseAllCalls() {
startTwoCalls(); startTwoCalls();
solo.sleep(2000); solo.sleep(2000);
LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0]; LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0];
LinphoneCall call2 = LinphoneTestManager.getLc(2).getCalls()[0]; LinphoneCall call2 = LinphoneTestManager.getLc(2).getCalls()[0];
@ -108,7 +106,7 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
waitForCallState(call2,LinphoneCall.State.PausedByRemote); waitForCallState(call2,LinphoneCall.State.PausedByRemote);
waitForCallState(call1,LinphoneCall.State.PausedByRemote); waitForCallState(call1,LinphoneCall.State.PausedByRemote);
// All calls are paused, one click on hang_up terminates them all // All calls are paused, one click on hang_up terminates them all
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
@ -117,18 +115,18 @@ public class ConferenceAndMultiCall extends SampleTest {
@LargeTest @LargeTest
public void testFAddNewCallAndCancelIt() { 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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
LinphoneTestManager.getInstance().autoAnswer = false; LinphoneTestManager.getInstance().autoAnswer = false;
solo.clickOnView(solo.getView(org.linphone.R.id.options)); solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.add_call)); solo.clickOnView(solo.getView(org.linphone.R.id.add_call));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.test.R.string.conference_account_domain)); solo.enterText(0, iContext.getString(org.linphone.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.R.string.conference_account_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.sleep(2000); solo.sleep(2000);
solo.clickOnView(solo.getView(org.linphone.R.id.outgoing_hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.outgoing_hang_up));
@ -136,58 +134,58 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.clickOnView(solo.getView(org.linphone.R.id.pause)); solo.clickOnView(solo.getView(org.linphone.R.id.pause));
solo.sleep(1000); solo.sleep(1000);
waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.StreamsRunning); waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.StreamsRunning);
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
LinphoneTestManager.getInstance().autoAnswer = true; LinphoneTestManager.getInstance().autoAnswer = true;
} }
@LargeTest @LargeTest
public void testGAddNewCallDeclined() { public void testGAddNewCallDeclined() {
LinphoneTestManager.getInstance().autoAnswer = true; // Just in case 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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
LinphoneTestManager.getInstance().declineCall = true; LinphoneTestManager.getInstance().declineCall = true;
solo.clickOnView(solo.getView(org.linphone.R.id.options)); solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.add_call)); solo.clickOnView(solo.getView(org.linphone.R.id.add_call));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.test.R.string.conference_account_domain)); solo.enterText(0, iContext.getString(org.linphone.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.R.string.conference_account_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
solo.sleep(2000); solo.sleep(2000);
waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.PausedByRemote); waitForCallState(LinphoneTestManager.getLc(1).getCalls()[0],LinphoneCall.State.PausedByRemote);
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
LinphoneTestManager.getInstance().declineCall = false; LinphoneTestManager.getInstance().declineCall = false;
} }
@LargeTest @LargeTest
public void testHIncomingCallWhileInCallAndDecline() { public void testHIncomingCallWhileInCallAndDecline() {
LinphoneTestManager.getInstance().declineCall = false; //Just in case 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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
solo.sleep(2000); solo.sleep(2000);
try { 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)); LinphoneTestManager.getLc(2).invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("IncomingCallActivity", 5000); solo.waitForActivity("IncomingCallActivity", 5000);
solo.assertCurrentActivity("Expected Incoming call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming call Activity", CallIncomingActivity.class);
@ -199,9 +197,9 @@ public class ConferenceAndMultiCall extends SampleTest {
int topOffset = dm.heightPixels - topLayoutHeigh; int topOffset = dm.heightPixels - topLayoutHeigh;
int slidersTop = topLayoutHeigh - 80 - topOffset; // 80 is the bottom margin set in incoming.xml int slidersTop = topLayoutHeigh - 80 - topOffset; // 80 is the bottom margin set in incoming.xml
solo.drag(topLayout.getMeasuredWidth() - 10, 10, slidersTop, slidersTop, 10); solo.drag(topLayout.getMeasuredWidth() - 10, 10, slidersTop, slidersTop, 10);
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
solo.sleep(2000); solo.sleep(2000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
@ -209,19 +207,19 @@ public class ConferenceAndMultiCall extends SampleTest {
} }
@LargeTest @LargeTest
public void testIIncomingCallWhileInCallAndAccept() { public void testIIncomingCallWhileInCallAndAccept() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
solo.sleep(2000); solo.sleep(2000);
try { 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)); LinphoneTestManager.getLc(2).invite("sip:" + iContext.getString(org.linphone.R.string.account_linphone_login) + "@" + iContext.getString(org.linphone.R.string.account_linphone_domain));
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
e.printStackTrace(); e.printStackTrace();
} }
solo.waitForActivity("IncomingCallActivity", 5000); solo.waitForActivity("IncomingCallActivity", 5000);
solo.assertCurrentActivity("Expected Incoming call Activity", CallIncomingActivity.class); solo.assertCurrentActivity("Expected Incoming call Activity", CallIncomingActivity.class);
@ -238,46 +236,46 @@ public class ConferenceAndMultiCall extends SampleTest {
LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0]; LinphoneCall call1 = LinphoneTestManager.getLc(1).getCalls()[0];
waitForCallState(call1,LinphoneCall.State.PausedByRemote); waitForCallState(call1,LinphoneCall.State.PausedByRemote);
assertCallIsCorrectlyRunning(2); assertCallIsCorrectlyRunning(2);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
private void goToSettings() { private void goToSettings() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button)); solo.clickOnView(solo.getView(org.linphone.R.id.side_menu_button));
solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings)); solo.clickOnText(aContext.getString(org.linphone.R.string.menu_settings));
} }
private void startTwoCalls() { 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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
solo.clickOnView(solo.getView(org.linphone.R.id.options)); solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.add_call)); solo.clickOnView(solo.getView(org.linphone.R.id.add_call));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.test.R.string.conference_account_domain)); solo.enterText(0, iContext.getString(org.linphone.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.R.string.conference_account_domain));
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(2); assertCallIsCorrectlyRunning(2);
} }
private void startConference() { private void startConference() {
startTwoCalls(); startTwoCalls();
solo.clickOnView(solo.getView(org.linphone.R.id.options)); solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.conference)); solo.clickOnView(solo.getView(org.linphone.R.id.conference));
solo.sleep(1000); solo.sleep(1000);
assertCallIsCorrectlyRunning(1); assertCallIsCorrectlyRunning(1);
assertCallIsCorrectlyRunning(2); assertCallIsCorrectlyRunning(2);
Assert.assertTrue(LinphoneManager.getLc().isInConference()); Assert.assertTrue(LinphoneManager.getLc().isInConference());
} }
private void assertCallIsCorrectlyRunning(int lcId) { private void assertCallIsCorrectlyRunning(int lcId) {
solo.waitForActivity("CallActivity", 5000); solo.waitForActivity("CallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class); solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class);
@ -285,7 +283,7 @@ public class ConferenceAndMultiCall extends SampleTest {
solo.sleep(2000); solo.sleep(2000);
Assert.assertEquals(1, LinphoneTestManager.getLc(lcId).getCallsNb()); Assert.assertEquals(1, LinphoneTestManager.getLc(lcId).getCallsNb());
LinphoneCall call = LinphoneTestManager.getLc(lcId).getCalls()[0]; LinphoneCall call = LinphoneTestManager.getLc(lcId).getCalls()[0];
int retry = 0; int retry = 0;
while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) { while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) {
solo.sleep(1000); solo.sleep(1000);

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.ContactsListFragment; import org.linphone.ContactsListFragment;
@ -21,24 +19,24 @@ public class Contacts extends SampleTest {
@LargeTest @LargeTest
public void testAAddContactFromHistoryAndDeleteIt() { public void testAAddContactFromHistoryAndDeleteIt() {
goToHistory(); goToHistory();
solo.clickOnView(solo.getView(org.linphone.R.id.detail)); solo.clickOnView(solo.getView(org.linphone.R.id.detail));
solo.clickOnView(solo.getView(org.linphone.R.id.add_contact)); solo.clickOnView(solo.getView(org.linphone.R.id.add_contact));
solo.clickOnView(solo.getView(org.linphone.R.id.newContact)); solo.clickOnView(solo.getView(org.linphone.R.id.newContact));
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.test.R.string.account_test_calls_domain))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain)));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.contact_name)); solo.enterText(0, iContext.getString(org.linphone.R.string.contact_name));
solo.clickOnView(solo.getView(org.linphone.R.id.ok)); solo.clickOnView(solo.getView(org.linphone.R.id.ok));
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
solo.clickOnText(iContext.getString(org.linphone.test.R.string.contact_name)); solo.clickOnText(iContext.getString(org.linphone.R.string.contact_name));
solo.clickOnView(solo.getView(org.linphone.R.id.deleteContact)); solo.clickOnView(solo.getView(org.linphone.R.id.deleteContact));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.delete_button)); solo.clickOnView(solo.getView(org.linphone.R.id.delete_button));
Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
} }
@SmallTest @SmallTest
@ -48,11 +46,11 @@ public class Contacts extends SampleTest {
goToContacts(); goToContacts();
solo.clickOnView(solo.getView(org.linphone.R.id.newContact)); solo.clickOnView(solo.getView(org.linphone.R.id.newContact));
solo.enterText(0, iContext.getString(org.linphone.test.R.string.contact_name)); solo.enterText(0, iContext.getString(org.linphone.R.string.contact_name));
solo.enterText(3, iContext.getString(org.linphone.test.R.string.contact_number)); solo.enterText(3, iContext.getString(org.linphone.R.string.contact_number));
solo.clickOnView(solo.getView(org.linphone.R.id.ok)); solo.clickOnView(solo.getView(org.linphone.R.id.ok));
solo.sleep(2000); solo.sleep(2000);
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
} }
@MediumTest @MediumTest
@ -60,9 +58,9 @@ public class Contacts extends SampleTest {
public void testCTestContactFilter1() { public void testCTestContactFilter1() {
goToContacts(); goToContacts();
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
solo.clickOnView(solo.getView(org.linphone.R.id.linphone_contacts)); solo.clickOnView(solo.getView(org.linphone.R.id.linphone_contacts));
Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
} }
@MediumTest @MediumTest
@ -70,26 +68,26 @@ public class Contacts extends SampleTest {
public void testDEditContactAddSipAddressAndRemoveNumber() { public void testDEditContactAddSipAddressAndRemoveNumber() {
goToContacts(); goToContacts();
solo.clickOnView(solo.getView(org.linphone.R.id.all_contacts)); solo.clickOnView(solo.getView(org.linphone.R.id.all_contacts));
solo.clickOnText(iContext.getString(org.linphone.test.R.string.contact_name)); solo.clickOnText(iContext.getString(org.linphone.R.string.contact_name));
solo.clickOnView(solo.getView(org.linphone.R.id.editContact)); solo.clickOnView(solo.getView(org.linphone.R.id.editContact));
solo.clickOnView(solo.getView(org.linphone.R.id.delete_field)); solo.clickOnView(solo.getView(org.linphone.R.id.delete_field));
solo.enterText(2, iContext.getString(org.linphone.test.R.string.contact_sip)); solo.enterText(2, iContext.getString(org.linphone.R.string.contact_sip));
solo.clickOnView(solo.getView(org.linphone.R.id.ok)); solo.clickOnView(solo.getView(org.linphone.R.id.ok));
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_sip))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_sip)));
Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_number))); Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.R.string.contact_number)));
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testETestContactFilter2() { public void testETestContactFilter2() {
goToContacts(); goToContacts();
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
solo.clickOnView(solo.getView(org.linphone.R.id.linphone_contacts)); solo.clickOnView(solo.getView(org.linphone.R.id.linphone_contacts));
Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
} }
@MediumTest @MediumTest
@ -97,7 +95,7 @@ public class Contacts extends SampleTest {
public void testFStartChatFromContact() { public void testFStartChatFromContact() {
goToContacts(); goToContacts();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.contact_name)); solo.clickOnText(iContext.getString(org.linphone.R.string.contact_name));
solo.clickOnView(solo.getView(org.linphone.R.id.contact_chat)); solo.clickOnView(solo.getView(org.linphone.R.id.contact_chat));
//Assert.assertTrue(solo.search(aContext.get(org.linphone.R.string.send_message))); //Assert.assertTrue(solo.search(aContext.get(org.linphone.R.string.send_message)));
} }
@ -107,25 +105,25 @@ public class Contacts extends SampleTest {
@LargeTest @LargeTest
public void testGDeleteContact() { public void testGDeleteContact() {
goToContacts(); goToContacts();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.contact_name)); solo.clickOnText(iContext.getString(org.linphone.R.string.contact_name));
solo.clickOnView(solo.getView(org.linphone.R.id.deleteContact)); solo.clickOnView(solo.getView(org.linphone.R.id.deleteContact));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.delete_button)); solo.clickOnView(solo.getView(org.linphone.R.id.delete_button));
Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.test.R.string.contact_name))); Assert.assertFalse(solo.searchText(iContext.getString(org.linphone.R.string.contact_name)));
} }
private void goToContacts() { private void goToContacts() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.contacts)); solo.clickOnView(solo.getView(org.linphone.R.id.contacts));
} }
private void goToHistory() { private void goToHistory() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.history)); solo.clickOnView(solo.getView(org.linphone.R.id.history));
} }
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.CallActivity; import org.linphone.CallActivity;
@ -14,46 +12,46 @@ import android.test.suitebuilder.annotation.SmallTest;
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class History extends SampleTest { public class History extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testACheckForTestCallInHistory() { public void testACheckForTestCallInHistory() {
goToHistory(); goToHistory();
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.today))); 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))); Assert.assertTrue(solo.searchText(iContext.getString(org.linphone.R.string.account_test_calls_login)));
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testBFilterMissedCalls() { public void testBFilterMissedCalls() {
goToHistory(); goToHistory();
solo.clickOnView(solo.getView(org.linphone.R.id.missed_calls)); solo.clickOnView(solo.getView(org.linphone.R.id.missed_calls));
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_missed_call_history))); Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_missed_call_history)));
} }
public void testCCallBackFromHistory() { public void testCCallBackFromHistory() {
goToHistory(); goToHistory();
solo.clickOnText(iContext.getString(org.linphone.test.R.string.account_test_calls_login)); solo.clickOnText(iContext.getString(org.linphone.R.string.account_test_calls_login));
solo.waitForActivity("InCallActivity", 5000); solo.waitForActivity("InCallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class); solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class);
solo.sleep(2000); solo.sleep(2000);
Assert.assertEquals(1, LinphoneTestManager.getLc().getCallsNb()); Assert.assertEquals(1, LinphoneTestManager.getLc().getCallsNb());
waitForCallState(LinphoneTestManager.getLc().getCalls()[0],LinphoneCall.State.StreamsRunning); waitForCallState(LinphoneTestManager.getLc().getCalls()[0],LinphoneCall.State.StreamsRunning);
solo.clickOnView(solo.getView(org.linphone.R.id.hang_up)); solo.clickOnView(solo.getView(org.linphone.R.id.hang_up));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
} }
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testDDeleteOne() { public void testDDeleteOne() {
goToHistory(); goToHistory();
solo.clickOnView(solo.getView(org.linphone.R.id.edit)); solo.clickOnView(solo.getView(org.linphone.R.id.edit));
@ -67,7 +65,7 @@ public class History extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testEDeleteAll() { public void testEDeleteAll() {
goToHistory(); goToHistory();
solo.clickOnView(solo.getView(org.linphone.R.id.edit)); solo.clickOnView(solo.getView(org.linphone.R.id.edit));
@ -78,11 +76,11 @@ public class History extends SampleTest {
Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_call_history))); Assert.assertTrue(solo.searchText(aContext.getString(org.linphone.R.string.no_call_history)));
} }
private void goToHistory() { private void goToHistory() {
solo.waitForActivity("LinphoneActivity", 2000); solo.waitForActivity("LinphoneActivity", 2000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.clickOnView(solo.getView(org.linphone.R.id.history)); solo.clickOnView(solo.getView(org.linphone.R.id.history));
} }
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Timer; import java.util.Timer;
import java.util.TimerTask; import java.util.TimerTask;
@ -190,13 +188,13 @@ public class LinphoneTestManager implements LinphoneCoreListener{
String username, password, domain; String username, password, domain;
if (mLc.equals(mLc1)) { if (mLc.equals(mLc1)) {
username = mIContext.getString(org.linphone.test.R.string.account_test_calls_login); username = mIContext.getString(org.linphone.R.string.account_test_calls_login);
password = mIContext.getString(org.linphone.test.R.string.account_test_calls_pwd); password = mIContext.getString(org.linphone.R.string.account_test_calls_pwd);
domain = mIContext.getString(org.linphone.test.R.string.account_test_calls_domain); domain = mIContext.getString(org.linphone.R.string.account_test_calls_domain);
} else { } else {
username = mIContext.getString(org.linphone.test.R.string.conference_account_login); username = mIContext.getString(org.linphone.R.string.conference_account_login);
password = mIContext.getString(org.linphone.test.R.string.conference_account_password); password = mIContext.getString(org.linphone.R.string.conference_account_password);
domain = mIContext.getString(org.linphone.test.R.string.conference_account_domain); domain = mIContext.getString(org.linphone.R.string.conference_account_domain);
} }
LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain); LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain);
@ -436,14 +434,14 @@ public class LinphoneTestManager implements LinphoneCoreListener{
public void authInfoRequested(LinphoneCore lc, String realm, public void authInfoRequested(LinphoneCore lc, String realm,
String username, String domain) { String username, String domain) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
public void authenticationRequested(LinphoneCore lc, public void authenticationRequested(LinphoneCore lc,
LinphoneAuthInfo authInfo, AuthMethod method) { LinphoneAuthInfo authInfo, AuthMethod method) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
@ -492,9 +490,20 @@ public class LinphoneTestManager implements LinphoneCoreListener{
public void friendListCreated(LinphoneCore lc, LinphoneFriendList list) { public void friendListCreated(LinphoneCore lc, LinphoneFriendList list) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override @Override
public void friendListRemoved(LinphoneCore lc, LinphoneFriendList list) { public void friendListRemoved(LinphoneCore lc, LinphoneFriendList list) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
} }
@Override
public void networkReachableChanged(LinphoneCore lc, boolean enable) {
// TODO Auto-generated method stub
}
@Override
public void messageReceivedUnableToDecrypted(LinphoneCore lc, LinphoneChatRoom cr,
LinphoneChatMessage message) {
// TODO Auto-generated method stub
}
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import org.linphone.LinphoneLauncherActivity; import org.linphone.LinphoneLauncherActivity;
import org.linphone.LinphoneManager; import org.linphone.LinphoneManager;
import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall;
@ -22,7 +20,7 @@ import com.robotium.solo.Solo;
public abstract class SampleTest extends ActivityInstrumentationTestCase2<LinphoneLauncherActivity>{ public abstract class SampleTest extends ActivityInstrumentationTestCase2<LinphoneLauncherActivity>{
protected final int STRING_LENGTH_MAX = 20; protected final int STRING_LENGTH_MAX = 20;
protected Solo solo; protected Solo solo;
protected Context aContext, iContext; protected Context aContext, iContext;
@ -45,7 +43,7 @@ public abstract class SampleTest extends ActivityInstrumentationTestCase2<Linpho
} }
solo.finishOpenedActivities(); solo.finishOpenedActivities();
} }
protected void selectItemInListOnUIThread(final int item) { protected void selectItemInListOnUIThread(final int item) {
solo.sleep(500); solo.sleep(500);
getActivity().runOnUiThread(new Runnable() { getActivity().runOnUiThread(new Runnable() {
@ -55,7 +53,7 @@ public abstract class SampleTest extends ActivityInstrumentationTestCase2<Linpho
} }
}); });
} }
protected void waitForRegistration(final LinphoneProxyConfig lpc) { protected void waitForRegistration(final LinphoneProxyConfig lpc) {
if(lpc == null) return; if(lpc == null) return;
solo.waitForCondition(new Condition() { solo.waitForCondition(new Condition() {

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import junit.framework.Assert; import junit.framework.Assert;
import org.linphone.CallActivity; import org.linphone.CallActivity;
@ -17,21 +15,21 @@ public class Transfer extends SampleTest {
@MediumTest @MediumTest
@LargeTest @LargeTest
public void testACallTransfer() { public void testACallTransfer() {
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.enterText(0, iContext.getString(org.linphone.R.string.account_test_calls_login) + "@" + iContext.getString(org.linphone.R.string.account_test_calls_domain));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.call)); solo.clickOnView(solo.getView(org.linphone.R.id.call));
assertCallIsCorrectlyRunning(); assertCallIsCorrectlyRunning();
solo.clickOnView(solo.getView(org.linphone.R.id.options)); solo.clickOnView(solo.getView(org.linphone.R.id.options));
solo.clickOnView(solo.getView(org.linphone.R.id.transfer)); solo.clickOnView(solo.getView(org.linphone.R.id.transfer));
solo.waitForActivity("LinphoneActivity", 5000); solo.waitForActivity("LinphoneActivity", 5000);
solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class); solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
solo.enterText(0, iContext.getString(org.linphone.test.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.test.R.string.conference_account_domain)); solo.enterText(0, iContext.getString(org.linphone.R.string.conference_account_login) + "@" + iContext.getString(org.linphone.R.string.conference_account_domain));
solo.sleep(1000); solo.sleep(1000);
solo.clickOnView(solo.getView(org.linphone.R.id.call)); // Transfer button as the same id, only the image changes solo.clickOnView(solo.getView(org.linphone.R.id.call)); // Transfer button as the same id, only the image changes
solo.sleep(2000); solo.sleep(2000);
Assert.assertTrue(LinphoneTestManager.getLc(1).getCallsNb() > 0); Assert.assertTrue(LinphoneTestManager.getLc(1).getCallsNb() > 0);
Assert.assertTrue(LinphoneTestManager.getLc(2).getCallsNb() > 0); Assert.assertTrue(LinphoneTestManager.getLc(2).getCallsNb() > 0);
@ -40,21 +38,21 @@ public class Transfer extends SampleTest {
Assert.assertTrue(LinphoneTestManager.getLc(1).getCallsNb() == 0); Assert.assertTrue(LinphoneTestManager.getLc(1).getCallsNb() == 0);
Assert.assertTrue(LinphoneTestManager.getLc(2).getCallsNb() == 0); Assert.assertTrue(LinphoneTestManager.getLc(2).getCallsNb() == 0);
} }
private void assertCallIsCorrectlyRunning() { private void assertCallIsCorrectlyRunning() {
solo.waitForActivity("InCallActivity", 5000); solo.waitForActivity("InCallActivity", 5000);
solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class); solo.assertCurrentActivity("Expected InCall Activity", CallActivity.class);
solo.sleep(2000); solo.sleep(2000);
LinphoneCall call = LinphoneManager.getLc().getCalls()[0]; LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
int retry = 0; int retry = 0;
while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) { while ((call.getState() == LinphoneCall.State.OutgoingProgress || call.getState() == LinphoneCall.State.IncomingReceived) && retry < 5) {
solo.sleep(1000); solo.sleep(1000);
retry++; retry++;
Log.w("Call in progress but not running, retry = " + retry); Log.w("Call in progress but not running, retry = " + retry);
} }
waitForCallState(call,LinphoneCall.State.StreamsRunning); waitForCallState(call,LinphoneCall.State.StreamsRunning);
} }
} }

View file

@ -1,5 +1,3 @@
package org.linphone.test;
import static android.content.Intent.ACTION_MAIN; import static android.content.Intent.ACTION_MAIN;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
@ -13,7 +11,7 @@ import android.test.suitebuilder.annotation.SmallTest;
* @author Sylvain Berfini * @author Sylvain Berfini
*/ */
public class ZShutdownTestEnv extends SampleTest { public class ZShutdownTestEnv extends SampleTest {
@SmallTest @SmallTest
@MediumTest @MediumTest
@LargeTest @LargeTest
@ -21,5 +19,5 @@ public class ZShutdownTestEnv extends SampleTest {
LinphoneTestManager.destroy(); LinphoneTestManager.destroy();
aContext.stopService(new Intent(ACTION_MAIN).setClass(aContext, LinphoneService.class)); aContext.stopService(new Intent(ACTION_MAIN).setClass(aContext, LinphoneService.class));
} }
} }

@ -1 +1 @@
Subproject commit 99e12005f3c75b933e8bd01092147def555496f2 Subproject commit 354ab280916f37ddd5d285c49bbf110122bec5a4

@ -1 +1 @@
Subproject commit f1856679996c63c99fa416cd1f853cd3639e2bdf Subproject commit d7ff1de9e3ffb241b2aeac1950e0768da69c0a43

@ -1 +1 @@
Subproject commit b6e67b14cdfb0108a74941e1c05ef902b6fc9c2a Subproject commit 5e02b53ee66b73e64bfc41e6ac2ed74296f42f60

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="lib" path="libs/robotium-solo-5.1.jar">
<attributes>
<attribute name="javadoc_location" value="jar:platform:/resource/linphone-android-test/libs/robotium-solo-5.1-javadoc.jar!/"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry combineaccessrules="false" kind="src" path="/linphone-android"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View file

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>linphone-android-test</name>
<comment></comment>
<projects>
<project>linphone-android-newUI</project>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.linphone.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<!-- Needed to allow Linphone to install on tablets, since android.permission.CALL_PHONE implies android.hardware.telephony is required -->
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<!-- Needed to allow Linphone to install on tablets, since android.permission.CAMERA implies android.hardware.camera and android.hardware.camera.autofocus are required -->
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- Needed to store received images if the user wants to -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Needed to use our own Contact editor -->
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<!-- Needed to route the audio to the bluetooth headset if available -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<instrumentation
android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
android:targetPackage="org.linphone" />
<application
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>

View file

@ -1,27 +0,0 @@
SDK_PATH=$(shell dirname `which android`)
SDK_PLATFORM_TOOLS_PATH=$(shell dirname `which adb`)
ANT_SILENT=$(shell ant -h | grep -q -- -S && echo 1 || echo 0)
ifeq ($(ANT_SILENT), 1)
ANT=ant -e -S
else
ANT=ant -e
endif
clean:
$(SDK_PLATFORM_TOOLS_PATH)/adb uninstall org.linphone.test
$(SDK_PLATFORM_TOOLS_PATH)/adb uninstall org.linphone
$(SDK_PATH)/android update test-project --path . -m ../
all: clean
ant clean debug
$(SDK_PLATFORM_TOOLS_PATH)/adb install -g bin/LinphoneTest-debug.apk
$(SDK_PLATFORM_TOOLS_PATH)/adb install -g ../bin/Linphone-debug.apk
run-basic-tests: all
ant -e test -Dtest.size=small
if [ ! -s linphone-junit-report-small.xml ]; then exit 1; fi
run-all-tests: all
ant -e test -Dtest.size=large
if [ ! -s linphone-junit-report-large.xml ]; then exit 1; fi

View file

@ -1 +0,0 @@
This is a JUnit test project for Linphone's Android application.

View file

@ -1,4 +0,0 @@
#! /bin/bash
adb logcat -v time > $1 &
echo $! >adb.pid

View file

@ -1,19 +0,0 @@
# 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=../
test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner

View file

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="linphone-tester" xmlns:unless="ant:unless">
<target name="test">
<property name="output.file" value="./tests.output" />
<!-- Possible values for test.size are small or large -->
<property name="test.size" value="small" />
<tstamp>
<format property="archive.name" pattern="'linphonetester_'yyyyMMdd_HHmmss" />
</tstamp>
<echo>Adb log files are put in ${archive.name}.zip</echo>
<exec executable="adb" >
<arg value="logcat" />
<arg value="-c" />
</exec>
<exec executable="./adb-log-start.sh" >
<arg value=" ${archive.name}" />
</exec>
<exec executable="bash">
<arg value="-c"/>
<!-- use 'tee' command to write in file AND to stdout.
First is used below to check if tests failed or not
while second is used to get output in real time -->
<arg value="adb shell am instrument -r -w -e size ${test.size} org.linphone.test/com.zutubi.android.junitreport.JUnitReportTestRunner | tee ${output.file}"/>
</exec>
<exec executable="bash" >
<arg value="-c" />
<arg value="kill `cat adb.pid`" />
</exec>
<condition property="has.crashed" >
<or>
<resourcecontains resource="${output.file}" substring="Process crashed" />
<resourcecontains resource="${output.file}" substring="Native crash" />
<resourcecontains resource="${output.file}" substring="longMsg=junit.framework.AssertionFailedError: View with id: '" />
<resourcecontains resource="${output.file}" substring="longMsg=java.lang.RuntimeException:" />
<resourcecontains resource="${output.file}" substring="longMsg=java.lang.NullPointerException:" />
<resourcecontains resource="${output.file}" substring="android.util.AndroidException: INSTRUMENTATION_FAILED:" />
</or>
</condition>
<exec executable="bash" unless:set="has.crashed">
<arg value="-c"/>
<arg value="adb shell cat /data/data/org.linphone/files/junit-report.xml > linphone-junit-report-${test.size}.xml"/>
</exec>
<zip destfile="${archive.name}.zip">
<fileset dir="." includes="${archive.name}"/>
</zip>
<antcall target="check-for-crash"/>
<fail message="Tests failed" status="42">
<condition>
<resourcecontains resource="${output.file}" substring="FAILURES" />
</condition>
</fail>
<delete file="${archive.name}"/>
<delete file="${output.file}"/>
</target>
<target name="check-for-crash" if="has.crashed">
<exec executable="adb" outputproperty="arch">
<arg value="shell"/>
<arg value="getprop" />
<arg value="ro.product.cpu.abi"/>
</exec>
<exec executable="bash" outputproperty="abi">
<arg value="-c"/>
<arg value="echo ${arch} | tr -d '\r'"/>
</exec>
<exec executable="bash" >
<arg value="-c" />
<arg value="tail -n 500 ${archive.name}" />
</exec>
<exec executable="bash" >
<arg value="-c" />
<arg value="cat ${archive.name} |ndk-stack -sym obj/local/${abi}" />
</exec>
<fail message="Tests crashed" status="125"/>
</target>
</project>

Binary file not shown.

View file

@ -1,37 +0,0 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from lib.LinphoneTest import LinphoneTest
class CallTest(LinphoneTest):
def precond(self):
# Run Linphone
runComponent = 'org.linphone' + '/' + 'org.linphone.setup.LinphoneActivity'
self.device.startActivity(component=runComponent)
# Be sure to be on dialer screen
dialer = self.find('dialer')
self.easyDevice.touch(dialer, MonkeyDevice.DOWN_AND_UP)
def test(self):
# Type a SIP address
address = self.find('Adress')
self.easyDevice.type(address, 'cotcot@sip.linphone.org')
self.device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
# Try to call previously typed address
call = self.find('Call')
self.easyDevice.touch(call, MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(2)
# Check if the call is outgoing correctly
contact = self.find('contactNameOrNumber')
return contact
def postcond(self):
# Stop the call
hangUp = self.find('hangUp')
self.easyDevice.touch(hangUp, MonkeyDevice.DOWN_AND_UP)
callTest = CallTest('Call')
callTest.run()

View file

@ -1,51 +0,0 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from lib.LinphoneTest import LinphoneTest
class ConfigurationTest(LinphoneTest):
def setAccount(self, username, password, domain):
self.username = username
self.password = password
self.domain = domain
def precond(self):
# Run the setup assistant
runComponent = 'org.linphone' + '/' + 'org.linphone.setup.SetupActivity'
self.device.startActivity(component=runComponent)
MonkeyRunner.sleep(2)
def next(self):
# Press next button
next = self.find('setup_next')
self.easyDevice.touch(next, MonkeyDevice.DOWN_AND_UP)
def test(self):
self.next()
# Choose SIP account
login = self.find('setup_login_generic')
self.easyDevice.touch(login, MonkeyDevice.DOWN_AND_UP)
# Fill the fields
username = self.find('setup_username')
self.easyDevice.type(username, self.username)
password = self.find('setup_password')
self.easyDevice.type(password, self.password)
domain = self.find('setup_domain')
self.easyDevice.type(domain, self.domain)
# Hide the keyboard
self.press_back()
# Apply config
apply = self.find('setup_apply')
self.easyDevice.touch(apply, MonkeyDevice.DOWN_AND_UP)
return True
configTest = ConfigurationTest('Account configuration')
configTest.setAccount('monkey', 'cotcot', 'test.linphone.org')
configTest.run()

View file

@ -1,28 +0,0 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from lib.LinphoneTest import LinphoneTest
class InstallTest(LinphoneTest):
def test(self):
# Parameters, must be the same as in the build.xml file
package = 'org.linphone'
appname = 'Linphone'
activity = 'org.linphone.LinphoneLauncherActivity'
# Installs the Android package. Notice that this method returns a boolean, so you can test
# to see if the installation worked.
self.device.installPackage('../bin/' + appname + '-debug.apk')
# sets the name of the component to start
runComponent = package + '/' + activity
# Runs the component and wait for it to be launched
self.device.startActivity(component=runComponent)
MonkeyRunner.sleep(7)
menu = self.find('menu')
return menu
installTest = InstallTest('Install')
installTest.run()

View file

@ -1,58 +0,0 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from com.android.monkeyrunner.easy import By
class colors:
OK = '\033[92m'
KO = '\033[91m'
END = '\033[0m'
class LinphoneTest():
def __init__(self, test_name):
self.test_name = test_name
# Connects to the current device
self.device = MonkeyRunner.waitForConnection()
self.easyDevice = EasyMonkeyDevice(self.device)
def run(self):
self.precond()
try:
result = self.test()
if result :
self.print_result_ok()
else :
self.print_result_ko()
except Exception:
self.print_result_ko()
finally:
self.postcond()
def find(self, id):
view = By.id('id/' + id)
if not view:
raise Exception("View with id/" + id + " not found")
return view
def print_result_ok(self):
print self.test_name + colors.OK + ' OK' + colors.END
def print_result_ko(self):
print self.test_name + colors.KO + ' KO' + colors.END
def press_back(self):
self.device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
# Override following methods
def precond(self):
pass
def test(self):
pass
def postcond(self):
pass

View file

@ -1,20 +0,0 @@
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Linphone-android-testTest</string>
</resources>