package org.societies.android.platform.comms.test;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.societies.android.api.comms.XMPPAgent;
import org.societies.android.platform.comms.container.ServicePlatformCommsTest;
import org.societies.android.platform.comms.container.ServicePlatformCommsTest.TestPlatformCommsBinder;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.test.ServiceTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import android.util.Log;
/**
* This test suite tests the Android Comms service which provides the gateway to the XMPP Societies communications
* using asmack.
*
* In order to run the tests contained in this class ensure that the following steps are taken:
*
* 1. An Openfire XMPP server must be running
* 2. A suitable AVD must be running
* 3. The AVD must be configured so that the XMPP_DOMAIN value is valid
* 4. The user XMPP_NEW_IDENTIFIER must be removed prior to running the tests as the destroyMainIdentity
* method is not currently functioning.
* 5. Ensure that Android Profiling is not being used, i.e. comment out Debug calls
*
*/
public class TestCommBase extends ServiceTestCase <ServicePlatformCommsTest> {
private static final String LOG_TAG = TestCommBase.class.getName();
private final static String CLIENT = "org.comms.test";
private final String elementNames [] = {"cssManagerMessageBean", "cssManagerResultBean"};
private final String nameSpaces [] = {"http://societies.org/api/schema/cssmanagement"};
private static final List<String> CSS_PACKAGES = Arrays.asList("org.societies.api.schema.cssmanagement");
private final List<String> JABBER_ELEMENT_NAMES = Arrays.asList("pubsub", "event", "query");
private final List<String> JABBER_NAME_SPACES = Arrays.asList(
"http://jabber.org/protocol/pubsub",
"http://jabber.org/protocol/pubsub#errors",
"http://jabber.org/protocol/pubsub#event",
"http://jabber.org/protocol/pubsub#owner",
"http://jabber.org/protocol/disco#items");
private final List<String> JABBER_PACKAGES = Arrays.asList(
"org.jabber.protocol.pubsub",
"org.jabber.protocol.pubsub.errors",
"org.jabber.protocol.pubsub.owner",
"org.jabber.protocol.pubsub.event");
private Random random;
private boolean testCompleted;
private static final int LATCH_TIMEOUT = 10000;
private static final int TEST_SEPARATION = 2000;
//Modify these constants to suit local XMPP server
private static final String XMPP_DOMAIN = "societies.bespoke";
private static final String XMPP_IDENTIFIER = "alan";
private static final String XMPP_PASSWORD = "midge";
private static final String XMPP_BAD_IDENTIFIER = "godzilla";
private static final String XMPP_BAD_PASSWORD = "smog";
private static final String XMPP_NEW_IDENTIFIER = "gollum";
private static final String XMPP_NEW_PASSWORD = "precious";
private static final String XMPP_RESOURCE = "GalaxyNexus";
private static final String XMPP_SUCCESSFUL_JID = XMPP_IDENTIFIER + "@" + XMPP_DOMAIN + "/" + XMPP_RESOURCE;
private static final String XMPP_NEW_JID = XMPP_NEW_IDENTIFIER + "@" + XMPP_DOMAIN + "/" + XMPP_RESOURCE;
private static final int XMPP_PORT = 5222;
private static final String XMPP_DOMAIN_AUTHORITY = "danode." + XMPP_DOMAIN;
private static final String SIMPLE_XML_MESSAGE = "<iq from='romeo@montague.net/orchard to='juliet@capulet.com/balcony'> " +
"<query xmlns='http://jabber.org/protocol/disco#info'/></iq>";
private CountDownLatch latch;
private XMPPAgent commsService;
public TestCommBase() {
super(ServicePlatformCommsTest.class);
this.random = new Random();
}
protected void setUp() throws Exception {
super.setUp();
this.latch = null;
this.commsService = null;
}
protected void tearDown() throws Exception {
Thread.sleep(TEST_SEPARATION);
super.tearDown();
}
@MediumTest
public void testRegistration() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupRegistrationReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
@MediumTest
public void testSuccessfulLogin() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupLoginReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
@MediumTest
public void testBadUserLogin() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupBadUserReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
@MediumTest
public void testBadPasswordLogin() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupBadPasswordReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
@MediumTest
public void testCreateIdentity() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupCreateIdentityReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
@MediumTest
public void testSendMessage() throws Exception {
this.latch = new CountDownLatch(1);
this.testCompleted = false;
BroadcastReceiver receiver = this.setupSendMessageReceiver();
Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
assertNotNull(binder);
this.commsService = (XMPPAgent) binder.getService();
commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
this.latch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS);
unregisterReceiver(receiver);
assertTrue(this.testCompleted);
}
//@MediumTest
//TODO Requires more work or a sample XML message
// public void testSendIQ() throws Exception {
// this.latch = new CountDownLatch(1);
// this.testCompleted = false;
// BroadcastReceiver receiver = this.setupBroadcastReceiver();
//
// Intent commsIntent = new Intent(getContext(), ServicePlatformCommsTest.class);
// TestPlatformCommsBinder binder = (TestPlatformCommsBinder) bindService(commsIntent);
// assertNotNull(binder);
//
// this.commsService = (XMPPAgent) binder.getService();
//
// try {
// commsService.configureAgent(CLIENT, XMPP_DOMAIN_AUTHORITY, XMPP_PORT, XMPP_RESOURCE, false, this.random.nextLong());
//
// String jid = commsService.login(CLIENT, XMPP_IDENTIFIER, XMPP_DOMAIN, XMPP_PASSWORD, this.random.nextLong());
// Log.d(LOG_TAG, "Logged in JID: " + jid);
// assertEquals(XMPP_SUCCESSFUL_JID, jid);
//
//// Thread.sleep(DELAY);
//
// assertTrue(commsService.isConnected(CLIENT, this.random.nextLong()));
//
// commsService.sendIQ(CLIENT, SIMPLE_XML_MESSAGE, this.random.nextLong());
//
// } catch (Exception e) {
// e.printStackTrace();
// fail();
// } finally {
// commsService.logout(CLIENT, this.random.nextLong());
// unregisterReceiver(receiver);
// Thread.sleep(DELAY);
// assertTrue(this.testCompleted);
//
// }
//
// }
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupRegistrationReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up registration receiver");
receiver = new RegistrationReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register broadcast receiver");
return receiver;
}
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupLoginReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up login receiver");
receiver = new LoginReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register broadcast receiver");
return receiver;
}
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupBadPasswordReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up bad password receiver");
receiver = new BadPasswordReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register broadcast receiver");
return receiver;
}
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupBadUserReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up Bad User broadcast receiver");
receiver = new BadUserReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register alternative broadcast receiver");
return receiver;
}
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupCreateIdentityReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up Create Identity broadcast receiver");
receiver = new CreateIdentityReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register alternative broadcast receiver");
return receiver;
}
/**
* Create a broadcast receiver
*
* @return the created broadcast receiver
*/
private BroadcastReceiver setupSendMessageReceiver() {
BroadcastReceiver receiver = null;
Log.d(LOG_TAG, "Set up Send Message broadcast receiver");
receiver = new SendMessageReceiver();
getContext().registerReceiver(receiver, createTestIntentFilter());
Log.d(LOG_TAG, "Register alternative broadcast receiver");
return receiver;
}
/**
* Unregister a broadcast receiver
* @param receiver
*/
private void unregisterReceiver(BroadcastReceiver receiver) {
Log.d(LOG_TAG, "Unregister broadcast receiver");
getContext().unregisterReceiver(receiver);
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class RegistrationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.IS_CONNECTED)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
assertEquals(2, elementNames.length);
assertEquals(1, nameSpaces.length);
commsService.register(CLIENT, elementNames, nameSpaces, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.GET_IDENTITY)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
} else if (intent.getAction().equals(XMPPAgent.GET_DOMAIN_AUTHORITY_NODE)) {
assertEquals(XMPP_DOMAIN_AUTHORITY, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
} else if (intent.getAction().equals(XMPPAgent.LOGIN)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.isConnected(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.LOGOUT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.UN_REGISTER_COMM_MANAGER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.login(CLIENT, XMPP_IDENTIFIER, XMPP_DOMAIN, XMPP_PASSWORD, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.REGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.unregister(CLIENT, elementNames, nameSpaces, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.UNREGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.logout(CLIENT, TestCommBase.this.random.nextLong());
}
}
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class LoginReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.IS_CONNECTED)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
assertEquals(2, elementNames.length);
assertEquals(1, nameSpaces.length);
commsService.getIdentity(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.GET_IDENTITY)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.getDomainAuthorityNode(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.GET_DOMAIN_AUTHORITY_NODE)) {
assertEquals(XMPP_DOMAIN_AUTHORITY, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.logout(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.LOGIN)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.isConnected(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.LOGOUT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.UN_REGISTER_COMM_MANAGER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
} else if (intent.getAction().equals(XMPPAgent.NEW_MAIN_IDENTITY)) {
assertEquals(XMPP_NEW_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
TestCommBase.this.testCompleted = true;
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.login(CLIENT, XMPP_IDENTIFIER, XMPP_DOMAIN, XMPP_PASSWORD, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.REGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.unregister(CLIENT, elementNames, nameSpaces, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.UNREGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.logout(CLIENT, TestCommBase.this.random.nextLong());
}
}
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class BadUserReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.LOGIN_EXCEPTION)) {
assertNotNull(intent.getStringExtra(XMPPAgent.INTENT_RETURN_EXCEPTION_KEY));
Log.d(LOG_TAG, intent.getStringExtra(XMPPAgent.INTENT_RETURN_EXCEPTION_KEY));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.LOGOUT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.login(CLIENT, XMPP_BAD_IDENTIFIER, XMPP_DOMAIN, XMPP_PASSWORD, TestCommBase.this.random.nextLong());
}
}
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class BadPasswordReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.LOGIN_EXCEPTION)) {
assertNotNull(intent.getStringExtra(XMPPAgent.INTENT_RETURN_EXCEPTION_KEY));
Log.d(LOG_TAG, intent.getStringExtra(XMPPAgent.INTENT_RETURN_EXCEPTION_KEY));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.LOGOUT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.login(CLIENT, XMPP_IDENTIFIER, XMPP_DOMAIN, XMPP_BAD_PASSWORD, TestCommBase.this.random.nextLong());
}
}
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class CreateIdentityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.NEW_MAIN_IDENTITY)) {
assertEquals(XMPP_NEW_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.newMainIdentity(CLIENT, XMPP_NEW_IDENTIFIER, XMPP_DOMAIN, XMPP_NEW_PASSWORD, TestCommBase.this.random.nextLong(), null);
}
}
}
/**
* Broadcast receiver to receive intent return values from service method calls
*/
private class SendMessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "Received action: " + intent.getAction());
if (intent.getAction().equals(XMPPAgent.IS_CONNECTED)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
assertEquals(2, elementNames.length);
assertEquals(1, nameSpaces.length);
commsService.register(CLIENT, elementNames, nameSpaces, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.GET_IDENTITY)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.getDomainAuthorityNode(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.GET_DOMAIN_AUTHORITY_NODE)) {
assertEquals(XMPP_DOMAIN_AUTHORITY, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.logout(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.LOGIN)) {
assertEquals(XMPP_SUCCESSFUL_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
commsService.isConnected(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.LOGOUT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
TestCommBase.this.testCompleted = true;
TestCommBase.this.latch.countDown();
} else if (intent.getAction().equals(XMPPAgent.UN_REGISTER_COMM_MANAGER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
} else if (intent.getAction().equals(XMPPAgent.NEW_MAIN_IDENTITY)) {
assertEquals(XMPP_NEW_JID, intent.getStringExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY));
TestCommBase.this.testCompleted = true;
} else if (intent.getAction().equals(XMPPAgent.CONFIGURE_AGENT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.login(CLIENT, XMPP_IDENTIFIER, XMPP_DOMAIN, XMPP_PASSWORD, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.REGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.sendMessage(CLIENT, SIMPLE_XML_MESSAGE, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.UNREGISTER_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.logout(CLIENT, TestCommBase.this.random.nextLong());
} else if (intent.getAction().equals(XMPPAgent.SEND_MESSAGE_RESULT)) {
assertTrue(intent.getBooleanExtra(XMPPAgent.INTENT_RETURN_VALUE_KEY, false));
commsService.unregister(CLIENT, elementNames, nameSpaces, TestCommBase.this.random.nextLong());
}
}
}
/**
* Create a suitable intent filter
* @return IntentFilter
*/
private IntentFilter createTestIntentFilter() {
//register broadcast receiver to receive SocietiesEvents return values
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(XMPPAgent.UN_REGISTER_COMM_MANAGER_RESULT);
intentFilter.addAction(XMPPAgent.UN_REGISTER_COMM_MANAGER_EXCEPTION);
intentFilter.addAction(XMPPAgent.DESTROY_MAIN_IDENTITY);
intentFilter.addAction(XMPPAgent.GET_DOMAIN_AUTHORITY_NODE);
intentFilter.addAction(XMPPAgent.GET_IDENTITY);
intentFilter.addAction(XMPPAgent.GET_ITEMS_RESULT);
intentFilter.addAction(XMPPAgent.GET_ITEMS_ERROR);
intentFilter.addAction(XMPPAgent.GET_ITEMS_EXCEPTION);
intentFilter.addAction(XMPPAgent.SEND_IQ_RESULT);
intentFilter.addAction(XMPPAgent.SEND_IQ_ERROR);
intentFilter.addAction(XMPPAgent.SEND_IQ_EXCEPTION);
intentFilter.addAction(XMPPAgent.SEND_MESSAGE_RESULT);
intentFilter.addAction(XMPPAgent.SEND_MESSAGE_EXCEPTION);
intentFilter.addAction(XMPPAgent.IS_CONNECTED);
intentFilter.addAction(XMPPAgent.LOGIN);
intentFilter.addAction(XMPPAgent.LOGIN_EXCEPTION);
intentFilter.addAction(XMPPAgent.LOGOUT);
intentFilter.addAction(XMPPAgent.CONFIGURE_AGENT);
intentFilter.addAction(XMPPAgent.REGISTER_RESULT);
intentFilter.addAction(XMPPAgent.REGISTER_EXCEPTION);
intentFilter.addAction(XMPPAgent.UNREGISTER_RESULT);
intentFilter.addAction(XMPPAgent.UNREGISTER_EXCEPTION);
intentFilter.addAction(XMPPAgent.NEW_MAIN_IDENTITY);
intentFilter.addAction(XMPPAgent.NEW_MAIN_IDENTITY_EXCEPTION);
return intentFilter;
}
}