use of com.onesignal.MockSessionManager in project OneSignal-Android-SDK by OneSignal.
the class MainOneSignalClassRunner method beforeEachTest.
@Before
public void beforeEachTest() throws Exception {
blankActivityController = Robolectric.buildActivity(BlankActivity.class).create();
blankActivity = blankActivityController.get();
time = new MockOSTimeImpl();
trackerFactory = new OSTrackerFactory(new MockOSSharedPreferences(), new MockOSLog(), time);
sessionManager = new MockSessionManager(OneSignal_getSessionListener(), trackerFactory, new MockOSLog());
dbHelper = new MockOneSignalDBHelper(ApplicationProvider.getApplicationContext());
TestHelpers.setupTestWorkManager(blankActivity);
cleanUp();
OneSignal_setTime(time);
}
use of com.onesignal.MockSessionManager in project OneSignal-Android-SDK by OneSignal.
the class OutcomeEventIntegrationTests method testOnV2UniqueOutcomeMeasureOnlySentOncePerClickedNotification_whenSendingMultipleUniqueOutcomes_inDirectSession.
@Test
public void testOnV2UniqueOutcomeMeasureOnlySentOncePerClickedNotification_whenSendingMultipleUniqueOutcomes_inDirectSession() throws Exception {
// Enable IAM v2
preferences = new MockOSSharedPreferences();
trackerFactory = new OSTrackerFactory(preferences, logger, time);
sessionManager = new MockSessionManager(sessionListener, trackerFactory, logger);
preferences.saveBool(preferences.getPreferencesName(), preferences.getOutcomesV2KeyName(), true);
OneSignal_setSharedPreferences(preferences);
foregroundAppAfterClickingNotification();
// Send unique outcome event
OneSignal.sendUniqueOutcome(ONESIGNAL_OUTCOME_NAME);
threadAndTaskWait();
JSONArray notificationIds = new JSONArray();
notificationIds.put(ONESIGNAL_NOTIFICATION_ID + "1");
// Check measure end point was most recent request and contains clicked notification
assertMeasureOnV2AtIndex(3, ONESIGNAL_OUTCOME_NAME, new JSONArray(), notificationIds, null, null);
// Only 4 requests have been made
assertRestCalls(4);
// Send unique outcome event
OneSignal.sendUniqueOutcome(ONESIGNAL_OUTCOME_NAME);
threadAndTaskWait();
// Make still only 4 requests have been made
assertRestCalls(4);
}
use of com.onesignal.MockSessionManager in project OneSignal-Android-SDK by OneSignal.
the class InAppMessageIntegrationTests method beforeEachTest.
@Before
public void beforeEachTest() throws Exception {
ShadowDynamicTimer.shouldScheduleTimers = true;
time = new MockOSTimeImpl();
preferences = new MockOSSharedPreferences();
trackerFactory = new OSTrackerFactory(preferences, new MockOSLog(), time);
sessionManager = new MockSessionManager(OneSignal_getSessionListener(), trackerFactory, new MockOSLog());
blankActivityController = Robolectric.buildActivity(BlankActivity.class).create();
blankActivity = blankActivityController.get();
dbHelper = new MockOneSignalDBHelper(ApplicationProvider.getApplicationContext());
TestHelpers.beforeTestInitAndCleanup();
// Set remote_params GET response
setRemoteParamsGetHtmlResponse();
}
use of com.onesignal.MockSessionManager in project OneSignal-Android-SDK by OneSignal.
the class SynchronizerIntegrationTests method beforeEachTest.
@Before
public void beforeEachTest() throws Exception {
blankActivityController = Robolectric.buildActivity(BlankActivity.class).create();
blankActivity = blankActivityController.get();
time = new MockOSTimeImpl();
trackerFactory = new OSTrackerFactory(new MockOSSharedPreferences(), new MockOSLog(), time);
sessionManager = new MockSessionManager(OneSignal_getSessionListener(), trackerFactory, new MockOSLog());
dbHelper = new MockOneSignalDBHelper(ApplicationProvider.getApplicationContext());
TestHelpers.setupTestWorkManager(blankActivity);
cleanUp();
OneSignal_setTime(time);
}
use of com.onesignal.MockSessionManager in project OneSignal-Android-SDK by OneSignal.
the class InAppMessageIntegrationTests method testOnIAMActionSendsOutcome_usingOutcomesV2.
@Test
public void testOnIAMActionSendsOutcome_usingOutcomesV2() throws Exception {
// Enable IAM v2
preferences = new MockOSSharedPreferences();
preferences.saveBool(preferences.getPreferencesName(), preferences.getOutcomesV2KeyName(), true);
trackerFactory = new OSTrackerFactory(preferences, new MockOSLog(), time);
sessionManager = new MockSessionManager(OneSignal_getSessionListener(), trackerFactory, new MockOSLog());
OneSignal_setSharedPreferences(preferences);
OneSignal_setTrackerFactory(trackerFactory);
OneSignal_setSessionManager(sessionManager);
final OSTestInAppMessageInternal message = InAppMessagingHelpers.buildTestMessageWithSingleTrigger(OSTriggerKind.CUSTOM, "test_1", OSTestTrigger.OSTriggerOperator.EQUAL_TO.toString(), 2);
setMockRegistrationResponseWithMessages(new ArrayList<OSTestInAppMessageInternal>() {
{
add(message);
}
});
// 1. Init OneSignal
OneSignalInit();
threadAndTaskWait();
// Enable influence outcomes
trackerFactory.saveInfluenceParams(new OneSignalPackagePrivateHelper.RemoteOutcomeParams());
final OSInAppMessageAction[] lastAction = new OSInAppMessageAction[1];
OneSignal.setInAppMessageClickHandler(new OneSignal.OSInAppMessageClickHandler() {
@Override
public void inAppMessageClicked(OSInAppMessageAction result) {
lastAction[0] = result;
// Ensure we are on the main thread when running the callback, since the app developer
// will most likely need to update UI.
assertMainThread();
OneSignal.sendOutcome("test");
try {
// Ensure outcome is sent
assertMeasureOnV2AtIndex(4, "test", new JSONArray().put(message.getMessageId()), new JSONArray(), null, null);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
threadAndTaskWait();
// Add trigger to make IAM display
OneSignal.addTrigger("test_1", 2);
assertEquals(1, OneSignalPackagePrivateHelper.getInAppMessageDisplayQueue().size());
OneSignalPackagePrivateHelper.onMessageActionOccurredOnMessage(message, new JSONObject() {
{
put("id", "button_id_123");
put("name", "my_click_name");
}
});
// Ensure we fire public callback that In-App was clicked.
assertEquals(lastAction[0].getClickName(), "my_click_name");
}
Aggregations