package org.societies.android.platform.cssmanager.test; import java.util.concurrent.CountDownLatch; import org.societies.android.api.internal.cssmanager.IAndroidCSSManager; import org.societies.android.platform.cssmanager.container.TestServiceCSSManagerLocal; import org.societies.android.platform.cssmanager.container.TestServiceCSSManagerLocal.LocalCSSManagerBinder; import org.societies.api.schema.cssmanagement.CssRecord; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.test.ServiceTestCase; import android.test.suitebuilder.annotation.MediumTest; import android.util.Log; /** * 1. Created identity must be deleted prior to test on XMPP server * 2. Ensure that test data in test source matches XMPP server and Virgo details * 3. Start Openfire with corresponding configuration details * 4. Start Virgo container with xc.properties using identity properties used by these tests * */ public class TestSocietiesCSSManager extends ServiceTestCase<TestServiceCSSManagerLocal> { private static final String LOG_TAG = TestSocietiesCSSManager.class.getName(); private static final String CLIENT = "org.societies.android.platform.cssmanager.test"; private static final int TEST_END_DELAY = 2000; private static final int MULTIPLE_LOGIN_COUNT = 2; private static final String DOMAIN_AUTHORITY_SERVER_PORT = "daServerPort"; private static final String DOMAIN_AUTHORITY_SERVER_PORT_VALUE = "5222"; private static final String DOMAIN_AUTHORITY_NODE = "daNode"; private static final String DOMAIN_AUTHORITY_NODE_VALUE = "alan.societies.bespoke"; private static final String LOCAL_CSS_NODE_JID_RESOURCE = "cssNodeResource"; private static final String LOCAL_CSS_NODE_JID_RESOURCE_VALUE = "Nexus403"; private static final String XMPP_SERVER_NAME = "daServerURI"; private static final String XMPP_SERVER_NAME_VALUE = "societies.bespoke"; public static final String XMPP_SERVER_NAME_IP = "daServerIP"; //use AVD to machine host IP address public static final String XMPP_SERVER_NAME_IP_VALUE = "10.0.2.2"; public static final String TEST_IDENTITY_1 = "alan"; public static final String TEST_IDENTITY_2 = "gollum"; public static final String TEST_INACTIVE_DATE = "20121029"; public static final String TEST_REGISTERED_DATE = "20120229"; public static final int TEST_UPTIME = 7799; public static final String TEST_EMAIL = "somebody@tssg.org"; public static final String TEST_FORENAME = "4Name"; public static final String TEST_HOME_LOCATION = "The Hearth"; public static final String TEST_IDENTITY_NAME = "Id Name"; public static final String TEST_IM_ID = "somebody.tssg.org"; public static final String TEST_NAME = "The CSS"; public static final String TEST_PASSWORD_1 = "midge"; public static final String TEST_PASSWORD_2 = "bilbo"; public static final String TEST_SOCIAL_URI = "sombody@fb.com"; public static final String TEST_DOMAIN_AUTHORITY = "societies.bespoke"; private IAndroidCSSManager cssService; private long testStartTime, testEndTime; private int loginCount; private boolean testCompleted; private CountDownLatch testFinished; public TestSocietiesCSSManager() { super(TestServiceCSSManagerLocal.class); } protected void setUp() throws Exception { super.setUp(); //Create shared preferences for later use SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext()); SharedPreferences.Editor editor = settings.edit(); editor.putString(DOMAIN_AUTHORITY_SERVER_PORT, DOMAIN_AUTHORITY_SERVER_PORT_VALUE); editor.putString(DOMAIN_AUTHORITY_NODE, DOMAIN_AUTHORITY_NODE_VALUE); editor.putString(LOCAL_CSS_NODE_JID_RESOURCE, LOCAL_CSS_NODE_JID_RESOURCE_VALUE); editor.putString(XMPP_SERVER_NAME, XMPP_SERVER_NAME_VALUE); editor.commit(); Intent commsIntent = new Intent(getContext(), TestServiceCSSManagerLocal.class); LocalCSSManagerBinder binder = (LocalCSSManagerBinder) bindService(commsIntent); assertNotNull(binder); this.cssService = (IAndroidCSSManager) binder.getService(); } protected void tearDown() throws Exception { Thread.sleep(TEST_END_DELAY); //ensure that service is shutdown to test if service leakage occurs shutdownService(); super.tearDown(); } // @MediumTest public void testConnectToService() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; BroadcastReceiver receiver = this.setupBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; Log.d(LOG_TAG, "testConnectToService start time: " + this.testStartTime); try { this.cssService.loginXMPPServer(CLIENT, getCssRecord()); } catch (Exception e) { Log.d(LOG_TAG, ""); } this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } // @MediumTest public void testCreateNewIdentity() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; BroadcastReceiver receiver = this.setupBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_2); cssRecord.setDomainServer(TEST_DOMAIN_AUTHORITY); cssRecord.setPassword(TEST_PASSWORD_2); Log.d(LOG_TAG, "testCreateNewIdentity start time: " + this.testStartTime); this.cssService.registerXMPPServer(CLIENT, cssRecord); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } // @MediumTest public void testLoginCSS() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; BroadcastReceiver receiver = this.setupLoginCSSBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; Log.d(LOG_TAG, "testLoginCSS start time: " + this.testStartTime); this.cssService.loginXMPPServer(CLIENT, getCssRecord()); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } @MediumTest public void testLoginXMPPServer() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; BroadcastReceiver receiver = this.setupLoginXMPPBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; Log.d(LOG_TAG, "testLoginXMPP start time: " + this.testStartTime); //try two successive login/out cycles this.loginCount = 1; this.cssService.loginXMPPServer(CLIENT, getCssRecord()); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } // @MediumTest // public void testStartServices() throws Exception { // testFinished = new CountDownLatch(1); // // this.testCompleted = false; // BroadcastReceiver receiver = this.setupAppServicesBroadcastReceiver(); // this.testStartTime = System.currentTimeMillis(); // this.testEndTime = this.testStartTime; // // Log.d(LOG_TAG, "testLoginXMPP start time: " + this.testStartTime); // // this.cssService.startAppServices(CLIENT); // // this.testFinished.await(); // //ensure that the broadcast receiver is shutdown to prevent more than one active receiver // unregisterReceiver(receiver); // assertTrue(this.testCompleted); // } // @MediumTest public void testLoginCSSUsingIP() throws Exception { testFinished = new CountDownLatch(1); //Create shared preferences for later use SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext()); SharedPreferences.Editor editor = settings.edit(); editor.putString(XMPP_SERVER_NAME_IP, XMPP_SERVER_NAME_IP_VALUE); editor.commit(); this.testCompleted = false; BroadcastReceiver receiver = this.setupLoginCSSIPAddressBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; Log.d(LOG_TAG, "testLoginCSS start time: " + this.testStartTime); this.cssService.loginXMPPServer(CLIENT, getCssRecord()); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } // @MediumTest public void testCreateNewIdentityIPAddress() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; //Create shared preferences for later use SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext()); SharedPreferences.Editor editor = settings.edit(); editor.putString(XMPP_SERVER_NAME_IP, XMPP_SERVER_NAME_IP_VALUE); editor.commit(); BroadcastReceiver receiver = this.setupBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_2); cssRecord.setDomainServer(TEST_DOMAIN_AUTHORITY); cssRecord.setPassword(TEST_PASSWORD_2); Log.d(LOG_TAG, "testCreateNewIdentity start time: " + this.testStartTime); this.cssService.registerXMPPServer(CLIENT, cssRecord); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } @MediumTest /** * Tests for multiple logins/logout sequences * @throws Exception */ public void testMultipleLoginCSS() throws Exception { testFinished = new CountDownLatch(1); this.testCompleted = false; this.loginCount = 1; BroadcastReceiver receiver = this.setupMultipleLoginCSSBroadcastReceiver(); this.testStartTime = System.currentTimeMillis(); this.testEndTime = this.testStartTime; Log.d(LOG_TAG, "testLoginCSS start time: " + this.testStartTime); this.cssService.loginXMPPServer(CLIENT, getCssRecord()); this.testFinished.await(); //ensure that the broadcast receiver is shutdown to prevent more than one active receiver unregisterReceiver(receiver); assertTrue(this.testCompleted); } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up Main broadcast receiver"); receiver = new MainReceiver(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register Main broadcast receiver"); return receiver; } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupLoginCSSBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up LoginCSSReceiver broadcast receiver"); receiver = new LoginCSSReceiver(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register LoginCSSReceiver broadcast receiver"); return receiver; } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupLoginXMPPBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up LoginXMPPReceiver broadcast receiver"); receiver = new LoginXMPPReceiver(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register LoginXMPPReceiver broadcast receiver"); return receiver; } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupAppServicesBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up App Services Receiver broadcast receiver"); receiver = new StartServicesReceiver(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register App Services Receiver broadcast receiver"); return receiver; } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupLoginCSSIPAddressBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up LoginCSSIPAddressReceiver broadcast receiver"); receiver = new LoginCSSReceiverIPAddress(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register LoginCSSIPAddressReceiver broadcast receiver"); return receiver; } /** * Create a broadcast receiver * * @return the created broadcast receiver */ private BroadcastReceiver setupMultipleLoginCSSBroadcastReceiver() { BroadcastReceiver receiver = null; Log.d(LOG_TAG, "Set up Multiple LoginCSSReceiver broadcast receiver"); receiver = new MultipleLoginCSSReceiver(); getContext().registerReceiver(receiver, createTestIntentFilter()); Log.d(LOG_TAG, "Register Multiple LoginCSSReceiver 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 LoginCSSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.startAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER_EXCEPTION)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getStringExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testFinished.countDown(); } else if (intent.getAction().equals(IAndroidCSSManager.LOGIN_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.logoutCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.stopAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } else if (intent.getAction().equals(IAndroidCSSManager.START_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Startup services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.loginCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.STOP_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Stop services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); TestSocietiesCSSManager.this.cssService.logoutXMPPServer(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER_EXCEPTION)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getStringExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testFinished.countDown(); } } } /** * Broadcast receiver to receive intent return values from service method calls */ private class StartServicesReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(IAndroidCSSManager.START_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Startup services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.stopAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.STOP_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Stop services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } } } /** * Broadcast receiver to receive intent return values from service method calls */ private class LoginXMPPReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.logoutXMPPServer(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); if (TestSocietiesCSSManager.this.loginCount < MULTIPLE_LOGIN_COUNT) { TestSocietiesCSSManager.this.loginCount++; try { TestSocietiesCSSManager.this.cssService.loginXMPPServer(CLIENT, getCssRecord()); } catch (Exception e) { Log.d(LOG_TAG, ""); fail(); } } else { TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } } } } /** * Broadcast receiver to receive intent return values from service method calls */ private class LoginCSSReceiverIPAddress extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.startAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGIN_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.logoutCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.stopAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } else if (intent.getAction().equals(IAndroidCSSManager.START_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Startup services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.loginCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.STOP_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Stop services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); TestSocietiesCSSManager.this.cssService.logoutXMPPServer(CLIENT); } } } /** * Broadcast receiver to receive intent return values from service method calls */ private class MultipleLoginCSSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.startAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGIN_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.logoutCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_CSS)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout CSS elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.stopAppServices(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); if (TestSocietiesCSSManager.this.loginCount < MULTIPLE_LOGIN_COUNT) { TestSocietiesCSSManager.this.loginCount++; try { TestSocietiesCSSManager.this.cssService.loginXMPPServer(CLIENT, getCssRecord()); } catch (Exception e) { Log.d(LOG_TAG, ""); fail(); } } else { TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } } else if (intent.getAction().equals(IAndroidCSSManager.START_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Startup services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1 + "@" + TEST_DOMAIN_AUTHORITY); TestSocietiesCSSManager.this.cssService.loginCSS(CLIENT, cssRecord); } else if (intent.getAction().equals(IAndroidCSSManager.STOP_APP_SERVICES)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY, false)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Stop services elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); TestSocietiesCSSManager.this.cssService.logoutXMPPServer(CLIENT); } } } /** * Broadcast receiver to receive intent return values from service method calls */ private class MainReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d(LOG_TAG, "Received action: " + intent.getAction()); if (intent.getAction().equals(IAndroidCSSManager.LOGIN_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Login XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.cssService.logoutXMPPServer(CLIENT); } else if (intent.getAction().equals(IAndroidCSSManager.LOGOUT_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Logout XMPP elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } else if (intent.getAction().equals(IAndroidCSSManager.REGISTER_XMPP_SERVER)) { assertTrue(intent.getBooleanExtra(IAndroidCSSManager.INTENT_RETURN_STATUS_KEY, false)); assertNotNull(intent.getParcelableExtra(IAndroidCSSManager.INTENT_RETURN_VALUE_KEY)); TestSocietiesCSSManager.this.testEndTime = System.currentTimeMillis(); Log.d(LOG_TAG, "Register identity elapse time: " + (TestSocietiesCSSManager.this.testEndTime - TestSocietiesCSSManager.this.testStartTime)); TestSocietiesCSSManager.this.testCompleted = true; TestSocietiesCSSManager.this.testFinished.countDown(); } } } /** * Create a suitable intent filter * @return IntentFilter */ private IntentFilter createTestIntentFilter() { //register broadcast receiver to receive SocietiesEvents return values IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(IAndroidCSSManager.ACCEPT_FRIEND_REQUEST); intentFilter.addAction(IAndroidCSSManager.CHANGE_CSS_NODE_STATUS); intentFilter.addAction(IAndroidCSSManager.GET_ANDROID_CSS_RECORD); intentFilter.addAction(IAndroidCSSManager.GET_CSS_FRIENDS); intentFilter.addAction(IAndroidCSSManager.GET_FRIEND_REQUESTS); intentFilter.addAction(IAndroidCSSManager.LOGIN_CSS); intentFilter.addAction(IAndroidCSSManager.LOGIN_XMPP_SERVER); intentFilter.addAction(IAndroidCSSManager.LOGIN_XMPP_SERVER_EXCEPTION); intentFilter.addAction(IAndroidCSSManager.LOGOUT_CSS); intentFilter.addAction(IAndroidCSSManager.LOGOUT_XMPP_SERVER); intentFilter.addAction(IAndroidCSSManager.LOGOUT_XMPP_SERVER_EXCEPTION); intentFilter.addAction(IAndroidCSSManager.MODIFY_ANDROID_CSS_RECORD); intentFilter.addAction(IAndroidCSSManager.READ_PROFILE_REMOTE); intentFilter.addAction(IAndroidCSSManager.REGISTER_CSS); intentFilter.addAction(IAndroidCSSManager.REGISTER_CSS_DEVICE); intentFilter.addAction(IAndroidCSSManager.REGISTER_XMPP_SERVER); intentFilter.addAction(IAndroidCSSManager.REGISTER_XMPP_SERVER_EXCEPTION); intentFilter.addAction(IAndroidCSSManager.SEND_FRIEND_REQUEST); intentFilter.addAction(IAndroidCSSManager.SET_PRESENCE_STATUS); intentFilter.addAction(IAndroidCSSManager.SUGGESTED_FRIENDS); intentFilter.addAction(IAndroidCSSManager.SYNCH_PROFILE); intentFilter.addAction(IAndroidCSSManager.UNREGISTER_CSS); intentFilter.addAction(IAndroidCSSManager.UNREGISTER_XMPP_SERVER); intentFilter.addAction(IAndroidCSSManager.START_APP_SERVICES); intentFilter.addAction(IAndroidCSSManager.STOP_APP_SERVICES); return intentFilter; } private static CssRecord getCssRecord() { CssRecord cssRecord = new CssRecord(); cssRecord.setCssIdentity(TEST_IDENTITY_1); cssRecord.setDomainServer(TEST_DOMAIN_AUTHORITY); cssRecord.setPassword(TEST_PASSWORD_1); return cssRecord; } }