Skip to content

Commit d1e21f3

Browse files
authored
Handling IID error codes correctly (#381)
1 parent d302558 commit d1e21f3

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/main/java/com/google/firebase/messaging/InstanceIdClientImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private String getCustomMessage(FirebaseException base) {
147147
String response = getResponse(base);
148148
InstanceIdServiceErrorResponse parsed = safeParse(response);
149149
if (!Strings.isNullOrEmpty(parsed.error)) {
150-
return parsed.error;
150+
return "Error while calling the IID service: " + parsed.error;
151151
}
152152

153153
return base.getMessage();

src/test/java/com/google/firebase/messaging/InstanceIdClientImplTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,16 @@ public void testSubscribeError() {
109109
TestResponseInterceptor interceptor = new TestResponseInterceptor();
110110
InstanceIdClient client = initInstanceIdClient(response, interceptor);
111111

112+
String content = "{\"error\": \"ErrorCode\"}";
112113
for (int statusCode : HTTP_ERRORS) {
113-
response.setStatusCode(statusCode).setContent("{\"error\": \"test error\"}");
114+
response.setStatusCode(statusCode).setContent(content);
114115

115116
try {
116117
client.subscribeToTopic("test-topic", ImmutableList.of("id1", "id2"));
117118
fail("No error thrown for HTTP error");
118119
} catch (FirebaseMessagingException error) {
119-
checkExceptionFromHttpResponse(error, statusCode, "test error");
120+
String expectedMessage = "Error while calling the IID service: ErrorCode";
121+
checkExceptionFromHttpResponse(error, statusCode, expectedMessage);
120122
}
121123

122124
checkTopicManagementRequestHeader(interceptor.getLastRequest(), TEST_IID_SUBSCRIBE_URL);
@@ -247,14 +249,16 @@ public void testUnsubscribeError() {
247249
TestResponseInterceptor interceptor = new TestResponseInterceptor();
248250
InstanceIdClient client = initInstanceIdClient(response, interceptor);
249251

252+
String content = "{\"error\": \"ErrorCode\"}";
250253
for (int statusCode : HTTP_ERRORS) {
251-
response.setStatusCode(statusCode).setContent("{\"error\": \"test error\"}");
254+
response.setStatusCode(statusCode).setContent(content);
252255

253256
try {
254257
client.unsubscribeFromTopic("test-topic", ImmutableList.of("id1", "id2"));
255258
fail("No error thrown for HTTP error");
256259
} catch (FirebaseMessagingException error) {
257-
checkExceptionFromHttpResponse(error, statusCode, "test error");
260+
String expectedMessage = "Error while calling the IID service: ErrorCode";
261+
checkExceptionFromHttpResponse(error, statusCode, expectedMessage);
258262
}
259263

260264
checkTopicManagementRequestHeader(interceptor.getLastRequest(), TEST_IID_UNSUBSCRIBE_URL);

0 commit comments

Comments
 (0)