diff --git a/tests/res/values/tests.xml b/tests/res/values/tests.xml
deleted file mode 100644
index 44310ca3b..000000000
--- a/tests/res/values/tests.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- true
-
-
- true
-
- true
-
-
\ No newline at end of file
diff --git a/tests/src/org/linphone/test/AccountsTest.java b/tests/src/org/linphone/test/AccountsTest.java
index 0b6c52339..35bf3f6ce 100644
--- a/tests/src/org/linphone/test/AccountsTest.java
+++ b/tests/src/org/linphone/test/AccountsTest.java
@@ -145,6 +145,8 @@ public class AccountsTest extends
selectItemInListOnUIThread(7);
solo.clickOnText(context.getString(R.string.pref_delete_account));
+ solo.goBack();
+
int nbAccountsAfter = prefs.getInt(getActivity().getString(R.string.pref_extra_accounts), 0);
Assert.assertEquals(nbAccountsBefore - 1, nbAccountsAfter);
Log.testSuccess("Deleting existing SIP account");
diff --git a/tests/src/org/linphone/test/ChatTest.java b/tests/src/org/linphone/test/ChatTest.java
new file mode 100644
index 000000000..a054e0edd
--- /dev/null
+++ b/tests/src/org/linphone/test/ChatTest.java
@@ -0,0 +1,137 @@
+package org.linphone.test;
+
+import junit.framework.Assert;
+
+import org.linphone.LinphoneActivity;
+import org.linphone.R;
+
+import android.content.Context;
+import android.test.ActivityInstrumentationTestCase2;
+import android.widget.EditText;
+
+import com.jayway.android.robotium.solo.Solo;
+
+public class ChatTest extends ActivityInstrumentationTestCase2 {
+
+ private Solo solo;
+
+ @SuppressWarnings("deprecation")
+ public ChatTest() {
+ super("org.linphone", LinphoneActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ solo = new Solo(getInstrumentation(), getActivity());
+ }
+
+ public void testADisplayEmptyChatList() {
+ Context context = getActivity();
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ solo.clickOnView(solo.getView(R.id.chat));
+
+ Assert.assertTrue(solo.searchText(context.getString(R.string.no_chat_history)));
+ Log.testSuccess("Empty chat list displayed");
+ }
+
+ public void testBStartConversationAndSaveItAsDraft() {
+ Context context = getActivity();
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ solo.clickOnView(solo.getView(R.id.chat));
+
+ solo.enterText((EditText) solo.getView(R.id.newFastChat), "cotcot@sip.linphone.org");
+ solo.clickOnText(context.getString(R.string.button_new_chat));
+ solo.sleep(1000);
+
+ solo.enterText((EditText) solo.getView(R.id.message), "Draft");
+ solo.goBack();
+ solo.sleep(1000);
+ Assert.assertTrue(solo.searchText(context.getString(R.string.draft)));
+ Log.testSuccess("Conversation created and message saved as draft");
+ }
+
+ public void testCUseSavedDraftMessageAndSentIt() {
+ Context context = getActivity();
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ solo.clickOnView(solo.getView(R.id.chat));
+
+ solo.clickOnText(context.getString(R.string.draft));
+ Assert.assertTrue(solo.searchText("Draft"));
+ Log.testSuccess("Draft successfully restored");
+
+ solo.clickOnText(context.getString(R.string.button_send_message));
+ solo.sleep(1000);
+ Assert.assertTrue(solo.searchText("Draft"));
+ Log.testSuccess("Chat message sent");
+
+ solo.goBack();
+ solo.sleep(1000);
+ Assert.assertTrue(solo.searchText("cotcot"));
+ Assert.assertFalse(solo.searchText(context.getString(R.string.draft), true));
+ Log.testSuccess("Conversation created but no more saved as draft");
+ }
+
+ public void testDDeleteMessage() {
+ Context context = getActivity();
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ solo.clickOnView(solo.getView(R.id.chat));
+
+ solo.clickOnText("cotcot");
+ Assert.assertTrue(solo.searchText("Draft"));
+ solo.clickLongOnText("Draft");
+ solo.sleep(1000);
+
+ solo.clickOnText(context.getString(R.string.delete));
+ solo.sleep(1000);
+ Assert.assertFalse(solo.searchText("Draft"));
+ Log.testSuccess("Chat message successfully deleted");
+ }
+
+ public void testEIncomingMessageAndDeleteConversation() {
+ Context context = getActivity();
+
+ solo.waitForActivity("LinphoneActivity", 2000);
+ solo.assertCurrentActivity("Expected Linphone Activity", LinphoneActivity.class);
+ solo.clickOnView(solo.getView(R.id.chat));
+
+ solo.enterText((EditText) solo.getView(R.id.newFastChat), "junit");
+ solo.clickOnText(context.getString(R.string.button_new_chat));
+ solo.sleep(1000);
+
+ solo.enterText((EditText) solo.getView(R.id.message), "Test");
+ solo.clickOnText(context.getString(R.string.button_send_message));
+ solo.sleep(1000);
+
+ Assert.assertTrue(solo.searchText("Test", 2));
+ Log.testSuccess("Chat message successfully received");
+
+ solo.goBack();
+ Assert.assertTrue(solo.searchText("junit", 2));
+ solo.clickOnView(solo.getView(R.id.clearFastChatField));
+ EditText fastChat = (EditText) solo.getView(R.id.newFastChat);
+ Assert.assertEquals(fastChat.getText().toString(), "");
+ Log.testSuccess("Fast new chat cleaned");
+
+ solo.clickOnText(context.getString(R.string.button_edit));
+ solo.clickOnText("junit");
+ solo.clickOnText(context.getString(R.string.button_ok));
+ solo.sleep(1000);
+
+ Assert.assertTrue(solo.searchText(context.getString(R.string.no_chat_history)));
+ Log.testSuccess("Conversation successfully deleted");
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ solo.finishOpenedActivities();
+ }
+}