use of com.facebook.WaitForBroadcastReceiver in project facebook-android-sdk by facebook.
the class AppEventsLoggerTests method testExplicitCallWithNoAppSettings.
public void testExplicitCallWithNoAppSettings() throws InterruptedException {
AppEventsLogger.setFlushBehavior(AppEventsLogger.FlushBehavior.EXPLICIT_ONLY);
AccessToken accessToken1 = getFakeAccessToken();
FacebookSdk.setApplicationId("234");
AppEventsLogger logger1 = AppEventsLogger.newLogger(getActivity(), accessToken1);
final WaitForBroadcastReceiver waitForBroadcastReceiver = new WaitForBroadcastReceiver();
waitForBroadcastReceiver.incrementExpectCount();
final LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity());
try {
// Need to get notifications on another thread so we can wait for them.
runOnBlockerThread(new Runnable() {
@Override
public void run() {
broadcastManager.registerReceiver(waitForBroadcastReceiver, new IntentFilter(AppEventsLogger.ACTION_APP_EVENTS_FLUSHED));
}
}, true);
logger1.logEvent("an_event");
logger1.flush();
waitForBroadcastReceiver.waitForExpectedCalls();
closeBlockerAndAssertSuccess();
} finally {
broadcastManager.unregisterReceiver(waitForBroadcastReceiver);
}
}
use of com.facebook.WaitForBroadcastReceiver in project facebook-android-sdk by facebook.
the class AppEventsLoggerTests method testSimpleCall.
public void testSimpleCall() throws InterruptedException {
AppEventsLogger.setFlushBehavior(AppEventsLogger.FlushBehavior.EXPLICIT_ONLY);
AccessToken accessToken1 = getAccessTokenForSharedUser();
AccessToken accessToken2 = getAccessTokenForSharedUser(SECOND_TEST_USER_TAG);
AppEventsLogger logger1 = AppEventsLogger.newLogger(getActivity(), accessToken1);
AppEventsLogger logger2 = AppEventsLogger.newLogger(getActivity(), accessToken2);
final WaitForBroadcastReceiver waitForBroadcastReceiver = new WaitForBroadcastReceiver();
waitForBroadcastReceiver.incrementExpectCount();
final LocalBroadcastManager broadcastManager = LocalBroadcastManager.getInstance(getActivity());
try {
// Need to get notifications on another thread so we can wait for them.
runOnBlockerThread(new Runnable() {
@Override
public void run() {
broadcastManager.registerReceiver(waitForBroadcastReceiver, new IntentFilter(AppEventsLogger.ACTION_APP_EVENTS_FLUSHED));
}
}, true);
logger1.logEvent("an_event");
logger2.logEvent("another_event");
// test illegal event name and event key, should not crash in non-debug environment.
logger1.logEvent("$illegal_event_name");
Bundle params = new Bundle();
params.putString("illegal%key", "good_value");
logger1.logEvent("legal_event_name", params);
char[] val = { 'b', 'a', 'd' };
params.putCharArray("legal_key", val);
logger1.logEvent("legal_event", params);
logger1.flush();
waitForBroadcastReceiver.waitForExpectedCalls();
closeBlockerAndAssertSuccess();
} finally {
broadcastManager.unregisterReceiver(waitForBroadcastReceiver);
}
}
Aggregations