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(); + } +}