Skip to content

Commit eeaceb5

Browse files
committed
Add test for remove external id
* Test if auth hash is being added for remove external id
1 parent 2f2e3ed commit eeaceb5

File tree

1 file changed

+116
-2
lines changed

1 file changed

+116
-2
lines changed

OneSignalSDK/unittest/src/test/java/com/test/onesignal/MainOneSignalClassRunner.java

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,22 @@ public void onComplete(JSONObject results) {
223223
};
224224
}
225225

226+
private static boolean didEmailUpdateSucceed;
227+
private static OneSignal.EmailUpdateError lastEmailUpdateFailure;
228+
private static OneSignal.EmailUpdateHandler getEmailUpdateHandler() {
229+
return new OneSignal.EmailUpdateHandler() {
230+
@Override
231+
public void onSuccess() {
232+
didEmailUpdateSucceed = true;
233+
}
234+
235+
@Override
236+
public void onFailure(OneSignal.EmailUpdateError error) {
237+
lastEmailUpdateFailure = error;
238+
}
239+
};
240+
}
241+
226242
private static void GetTags() {
227243
OneSignal.getTags(new OneSignal.GetTagsHandler() {
228244
@Override
@@ -237,7 +253,9 @@ private static void cleanUp() throws Exception {
237253

238254
notificationOpenedMessage = null;
239255
lastGetTags = null;
240-
lastExternalUserIdResponse = null;;
256+
lastExternalUserIdResponse = null;
257+
lastEmailUpdateFailure = null;
258+
didEmailUpdateSucceed = false;
241259

242260
ShadowGMSLocationController.reset();
243261
TestHelpers.beforeTestInitAndCleanup();
@@ -4202,7 +4220,7 @@ public void shouldAlwaysSetExternalIdWithAuthHashAAfterRegistration() throws Exc
42024220
}
42034221

42044222
@Test
4205-
public void shouldAlwaysSetExternalIdAndEmailWithAuthHashAAfterRegistration() throws Exception {
4223+
public void shouldAlwaysSetExternalIdAndEmailWithAuthHashAfterRegistration() throws Exception {
42064224
OneSignalInit();
42074225
threadAndTaskWait();
42084226

@@ -4260,6 +4278,102 @@ public void shouldRemoveExternalUserId() throws Exception {
42604278
assertEquals(removeIdRequest.payload.getString("external_user_id"), "");
42614279
}
42624280

4281+
@Test
4282+
public void shouldRemoveExternalUserIdFromPushWithAuthHash() throws Exception {
4283+
String testExternalId = "test_ext_id";
4284+
String mockExternalIdHash = new String(new char[64]).replace('\0', '0');
4285+
4286+
OneSignal.setExternalUserId(testExternalId, mockExternalIdHash, null);
4287+
OneSignalInit();
4288+
threadAndTaskWait();
4289+
4290+
OneSignal.removeExternalUserId(getExternalUserIdUpdateCompletionHandler());
4291+
threadAndTaskWait();
4292+
4293+
JSONObject expectedExternalUserIdResponse = new JSONObject(
4294+
"{" +
4295+
" \"push\" : {" +
4296+
" \"success\" : true" +
4297+
" }" +
4298+
"}"
4299+
);
4300+
assertEquals(expectedExternalUserIdResponse.toString(), lastExternalUserIdResponse.toString());
4301+
4302+
assertEquals(3, ShadowOneSignalRestClient.networkCallCount);
4303+
4304+
ShadowOneSignalRestClient.Request removeIdRequest = ShadowOneSignalRestClient.requests.get(2);
4305+
assertEquals(ShadowOneSignalRestClient.REST_METHOD.PUT, removeIdRequest.method);
4306+
assertEquals(removeIdRequest.payload.getString("external_user_id"), "");
4307+
assertEquals(mockExternalIdHash, removeIdRequest.payload.getString("external_user_id_auth_hash"));
4308+
}
4309+
4310+
@Test
4311+
public void shouldRemoveExternalUserIdFromEmailWithAuthHash() throws Exception {
4312+
String testEmail = "[email protected]";
4313+
String mockEmailHash = new String(new char[64]).replace('\0', '0');
4314+
4315+
OneSignal.setEmail(testEmail, mockEmailHash, getEmailUpdateHandler());
4316+
OneSignalInit();
4317+
threadAndTaskWait();
4318+
4319+
OneSignal.removeExternalUserId(getExternalUserIdUpdateCompletionHandler());
4320+
threadAndTaskWait();
4321+
4322+
JSONObject expectedExternalUserIdResponse = new JSONObject(
4323+
"{" +
4324+
" \"push\" : {" +
4325+
" \"success\" : true" +
4326+
" }" + ", " +
4327+
" \"email\" : {" +
4328+
" \"success\" : true" +
4329+
" }" +
4330+
"}"
4331+
);
4332+
assertEquals(expectedExternalUserIdResponse.toString(), lastExternalUserIdResponse.toString());
4333+
assertTrue(didEmailUpdateSucceed);
4334+
assertNull(lastEmailUpdateFailure);
4335+
4336+
assertEquals(6, ShadowOneSignalRestClient.networkCallCount);
4337+
4338+
ShadowOneSignalRestClient.Request removeIdRequest = ShadowOneSignalRestClient.requests.get(4);
4339+
assertEquals(ShadowOneSignalRestClient.REST_METHOD.PUT, removeIdRequest.method);
4340+
assertEquals(removeIdRequest.payload.getString("external_user_id"), "");
4341+
assertFalse(removeIdRequest.payload.has("external_user_id_auth_hash"));
4342+
4343+
ShadowOneSignalRestClient.Request removeIdEmailRequest = ShadowOneSignalRestClient.requests.get(5);
4344+
assertEquals(ShadowOneSignalRestClient.REST_METHOD.PUT, removeIdEmailRequest.method);
4345+
assertEquals(removeIdEmailRequest.payload.getString("external_user_id"), "");
4346+
assertEquals(mockEmailHash, removeIdEmailRequest.payload.getString("email_auth_hash"));
4347+
}
4348+
4349+
@Test
4350+
public void shouldRemoveExternalUserIdFromPushAndEmailWithAuthHash() throws Exception {
4351+
String testExternalId = "test_ext_id";
4352+
String mockExternalIdHash = new String(new char[64]).replace('\0', '0');
4353+
String testEmail = "[email protected]";
4354+
String mockEmailHash = new String(new char[64]).replace('\0', '0');
4355+
4356+
OneSignal.setExternalUserId(testExternalId, mockExternalIdHash, null);
4357+
OneSignal.setEmail(testEmail, mockEmailHash, null);
4358+
OneSignalInit();
4359+
threadAndTaskWait();
4360+
4361+
OneSignal.removeExternalUserId();
4362+
threadAndTaskWait();
4363+
4364+
assertEquals(6, ShadowOneSignalRestClient.networkCallCount);
4365+
4366+
ShadowOneSignalRestClient.Request removeIdRequest = ShadowOneSignalRestClient.requests.get(4);
4367+
assertEquals(ShadowOneSignalRestClient.REST_METHOD.PUT, removeIdRequest.method);
4368+
assertEquals(removeIdRequest.payload.getString("external_user_id"), "");
4369+
assertEquals(mockExternalIdHash, removeIdRequest.payload.getString("external_user_id_auth_hash"));
4370+
4371+
ShadowOneSignalRestClient.Request removeIdEmailRequest = ShadowOneSignalRestClient.requests.get(5);
4372+
assertEquals(ShadowOneSignalRestClient.REST_METHOD.PUT, removeIdEmailRequest.method);
4373+
assertEquals(removeIdEmailRequest.payload.getString("external_user_id"), "");
4374+
assertEquals(mockEmailHash, removeIdEmailRequest.payload.getString("email_auth_hash"));
4375+
}
4376+
42634377
@Test
42644378
public void doesNotSendSameExternalId() throws Exception {
42654379
String testExternalId = "test_ext_id";

0 commit comments

Comments
 (0)