Skip to content

Commit 90b0cd6

Browse files
authored
chore: Remove tests for deprecated FCM apis (#978)
* chore: Remove tests for deprecated FCM apis * Trigger Integration Tests * Remove remaining tests for deprecated FCM apis
1 parent 07bbb98 commit 90b0cd6

File tree

3 files changed

+0
-629
lines changed

3 files changed

+0
-629
lines changed

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

-260
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.google.firebase.messaging;
1818

1919
import static org.junit.Assert.assertEquals;
20-
import static org.junit.Assert.assertFalse;
2120
import static org.junit.Assert.assertNotNull;
2221
import static org.junit.Assert.assertNull;
2322
import static org.junit.Assert.assertSame;
@@ -29,7 +28,6 @@
2928
import com.google.api.client.http.HttpHeaders;
3029
import com.google.api.client.http.HttpMethods;
3130
import com.google.api.client.http.HttpRequest;
32-
import com.google.api.client.http.HttpRequestInitializer;
3331
import com.google.api.client.http.HttpResponseException;
3432
import com.google.api.client.http.HttpResponseInterceptor;
3533
import com.google.api.client.http.HttpTransport;
@@ -73,16 +71,9 @@ public class FirebaseMessagingClientImplTest {
7371

7472
private static final String MOCK_RESPONSE = "{\"name\": \"mock-name\"}";
7573

76-
private static final String MOCK_BATCH_SUCCESS_RESPONSE = TestUtils.loadResource(
77-
"fcm_batch_success.txt");
78-
79-
private static final String MOCK_BATCH_FAILURE_RESPONSE = TestUtils.loadResource(
80-
"fcm_batch_failure.txt");
81-
8274
private static final Message EMPTY_MESSAGE = Message.builder()
8375
.setTopic("test-topic")
8476
.build();
85-
private static final List<Message> MESSAGE_LIST = ImmutableList.of(EMPTY_MESSAGE, EMPTY_MESSAGE);
8677

8778
private static final boolean DRY_RUN_ENABLED = true;
8879
private static final boolean DRY_RUN_DISABLED = false;
@@ -320,187 +311,6 @@ public void testSendErrorWithDetailsAndNoCode() {
320311
}
321312
}
322313

323-
@Test
324-
public void testSendAll() throws Exception {
325-
final TestResponseInterceptor interceptor = new TestResponseInterceptor();
326-
FirebaseMessagingClient client = initMessagingClientForBatchRequests(
327-
MOCK_BATCH_SUCCESS_RESPONSE, interceptor);
328-
329-
BatchResponse responses = client.sendAll(MESSAGE_LIST, false);
330-
331-
assertBatchResponse(responses, interceptor, 2, 0);
332-
}
333-
334-
@Test
335-
public void testSendAllDryRun() throws Exception {
336-
final TestResponseInterceptor interceptor = new TestResponseInterceptor();
337-
FirebaseMessagingClient client = initMessagingClientForBatchRequests(
338-
MOCK_BATCH_SUCCESS_RESPONSE, interceptor);
339-
340-
BatchResponse responses = client.sendAll(MESSAGE_LIST, true);
341-
342-
assertBatchResponse(responses, interceptor, 2, 0);
343-
}
344-
345-
@Test
346-
public void testRequestInitializerAppliedToBatchRequests() throws Exception {
347-
TestResponseInterceptor interceptor = new TestResponseInterceptor();
348-
MockHttpTransport transport = new MockHttpTransport.Builder()
349-
.setLowLevelHttpResponse(getBatchResponse(MOCK_BATCH_SUCCESS_RESPONSE))
350-
.build();
351-
HttpRequestInitializer initializer = new HttpRequestInitializer() {
352-
@Override
353-
public void initialize(HttpRequest httpRequest) {
354-
httpRequest.getHeaders().set("x-custom-header", "test-value");
355-
}
356-
};
357-
FirebaseMessagingClientImpl client = FirebaseMessagingClientImpl.builder()
358-
.setProjectId("test-project")
359-
.setJsonFactory(ApiClientUtils.getDefaultJsonFactory())
360-
.setRequestFactory(transport.createRequestFactory(initializer))
361-
.setChildRequestFactory(Utils.getDefaultTransport().createRequestFactory())
362-
.setResponseInterceptor(interceptor)
363-
.build();
364-
365-
try {
366-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
367-
} finally {
368-
HttpRequest request = interceptor.getLastRequest();
369-
assertEquals("test-value", request.getHeaders().get("x-custom-header"));
370-
}
371-
}
372-
373-
@Test
374-
public void testSendAllFailure() throws Exception {
375-
final TestResponseInterceptor interceptor = new TestResponseInterceptor();
376-
FirebaseMessagingClient client = initMessagingClientForBatchRequests(
377-
MOCK_BATCH_FAILURE_RESPONSE, interceptor);
378-
List<Message> messages = ImmutableList.of(EMPTY_MESSAGE, EMPTY_MESSAGE, EMPTY_MESSAGE);
379-
380-
BatchResponse responses = client.sendAll(messages, DRY_RUN_DISABLED);
381-
382-
assertBatchResponse(responses, interceptor, 1, 2);
383-
}
384-
385-
@Test
386-
public void testSendAllHttpError() {
387-
for (int code : HTTP_ERRORS) {
388-
response.setStatusCode(code).setContent("{}");
389-
390-
try {
391-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
392-
fail("No error thrown for HTTP error");
393-
} catch (FirebaseMessagingException error) {
394-
checkExceptionFromHttpResponse(error, HTTP_2_ERROR.get(code), null,
395-
"Unexpected HTTP response with status: " + code + "\n{}");
396-
}
397-
checkBatchRequestHeader(interceptor.getLastRequest());
398-
}
399-
}
400-
401-
@Test
402-
public void testSendAllTransportError() {
403-
FirebaseMessagingClient client = initClientWithFaultyTransport();
404-
405-
try {
406-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
407-
fail("No error thrown for HTTP error");
408-
} catch (FirebaseMessagingException error) {
409-
assertEquals(ErrorCode.UNKNOWN, error.getErrorCode());
410-
assertEquals(
411-
"Unknown error while making a remote service call: transport error", error.getMessage());
412-
assertTrue(error.getCause() instanceof IOException);
413-
assertNull(error.getHttpResponse());
414-
assertNull(error.getMessagingErrorCode());
415-
}
416-
}
417-
418-
@Test
419-
public void testSendAllErrorWithEmptyResponse() {
420-
for (int code : HTTP_ERRORS) {
421-
response.setStatusCode(code).setZeroContent();
422-
423-
try {
424-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
425-
fail("No error thrown for HTTP error");
426-
} catch (FirebaseMessagingException error) {
427-
checkExceptionFromHttpResponse(error, HTTP_2_ERROR.get(code), null,
428-
"Unexpected HTTP response with status: " + code + "\nnull");
429-
}
430-
checkBatchRequestHeader(interceptor.getLastRequest());
431-
}
432-
}
433-
434-
@Test
435-
public void testSendAllErrorWithDetails() {
436-
for (int code : HTTP_ERRORS) {
437-
response.setStatusCode(code).setContent(
438-
"{\"error\": {\"status\": \"INVALID_ARGUMENT\", \"message\": \"test error\"}}");
439-
440-
try {
441-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
442-
fail("No error thrown for HTTP error");
443-
} catch (FirebaseMessagingException error) {
444-
checkExceptionFromHttpResponse(error, ErrorCode.INVALID_ARGUMENT, null);
445-
}
446-
checkBatchRequestHeader(interceptor.getLastRequest());
447-
}
448-
}
449-
450-
@Test
451-
public void testSendAllErrorWithCanonicalCode() {
452-
for (int code : HTTP_ERRORS) {
453-
response.setStatusCode(code).setContent(
454-
"{\"error\": {\"status\": \"NOT_FOUND\", \"message\": \"test error\"}}");
455-
456-
try {
457-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
458-
fail("No error thrown for HTTP error");
459-
} catch (FirebaseMessagingException error) {
460-
checkExceptionFromHttpResponse(error, ErrorCode.NOT_FOUND, null);
461-
}
462-
checkBatchRequestHeader(interceptor.getLastRequest());
463-
}
464-
}
465-
466-
@Test
467-
public void testSendAllErrorWithFcmError() {
468-
for (int code : HTTP_ERRORS) {
469-
response.setStatusCode(code).setContent(
470-
"{\"error\": {\"status\": \"INVALID_ARGUMENT\", \"message\": \"test error\", "
471-
+ "\"details\":[{\"@type\": \"type.googleapis.com/google.firebase.fcm"
472-
+ ".v1.FcmError\", \"errorCode\": \"UNREGISTERED\"}]}}");
473-
474-
try {
475-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
476-
fail("No error thrown for HTTP error");
477-
} catch (FirebaseMessagingException error) {
478-
checkExceptionFromHttpResponse(error, ErrorCode.INVALID_ARGUMENT,
479-
MessagingErrorCode.UNREGISTERED);
480-
}
481-
checkBatchRequestHeader(interceptor.getLastRequest());
482-
}
483-
}
484-
485-
@Test
486-
public void testSendAllErrorWithoutMessage() {
487-
final String responseBody = "{\"error\": {\"status\": \"INVALID_ARGUMENT\", "
488-
+ "\"details\":[{\"@type\": \"type.googleapis.com/google.firebase.fcm"
489-
+ ".v1.FcmError\", \"errorCode\": \"UNREGISTERED\"}]}}";
490-
for (int code : HTTP_ERRORS) {
491-
response.setStatusCode(code).setContent(responseBody);
492-
493-
try {
494-
client.sendAll(MESSAGE_LIST, DRY_RUN_DISABLED);
495-
fail("No error thrown for HTTP error");
496-
} catch (FirebaseMessagingException error) {
497-
checkExceptionFromHttpResponse(error, ErrorCode.INVALID_ARGUMENT,
498-
MessagingErrorCode.UNREGISTERED,
499-
"Unexpected HTTP response with status: " + code + "\n" + responseBody);
500-
}
501-
checkBatchRequestHeader(interceptor.getLastRequest());
502-
}
503-
}
504314

505315
@Test(expected = IllegalArgumentException.class)
506316
public void testBuilderNullProjectId() {
@@ -563,18 +373,6 @@ private FirebaseMessagingClientImpl initMessagingClient(
563373
.build();
564374
}
565375

566-
private FirebaseMessagingClientImpl initMessagingClientForBatchRequests(
567-
String responsePayload, TestResponseInterceptor interceptor) {
568-
MockLowLevelHttpResponse httpResponse = getBatchResponse(responsePayload);
569-
return initMessagingClient(httpResponse, interceptor);
570-
}
571-
572-
private MockLowLevelHttpResponse getBatchResponse(String responsePayload) {
573-
return new MockLowLevelHttpResponse()
574-
.setContentType("multipart/mixed; boundary=test_boundary")
575-
.setContent(responsePayload);
576-
}
577-
578376
private FirebaseMessagingClientImpl initClientWithFaultyTransport() {
579377
HttpTransport transport = TestUtils.createFaultyHttpTransport();
580378
return FirebaseMessagingClientImpl.builder()
@@ -603,64 +401,6 @@ private void checkRequest(
603401
assertEquals(expected, parsed);
604402
}
605403

606-
private void assertBatchResponse(
607-
BatchResponse batchResponse, TestResponseInterceptor interceptor,
608-
int successCount, int failureCount) throws IOException {
609-
610-
assertEquals(successCount, batchResponse.getSuccessCount());
611-
assertEquals(failureCount, batchResponse.getFailureCount());
612-
613-
List<SendResponse> responses = batchResponse.getResponses();
614-
assertEquals(successCount + failureCount, responses.size());
615-
for (int i = 0; i < successCount; i++) {
616-
SendResponse sendResponse = responses.get(i);
617-
assertTrue(sendResponse.isSuccessful());
618-
assertEquals("projects/test-project/messages/" + (i + 1), sendResponse.getMessageId());
619-
assertNull(sendResponse.getException());
620-
}
621-
622-
for (int i = successCount; i < failureCount; i++) {
623-
SendResponse sendResponse = responses.get(i);
624-
assertFalse(sendResponse.isSuccessful());
625-
assertNull(sendResponse.getMessageId());
626-
627-
FirebaseMessagingException exception = sendResponse.getException();
628-
assertNotNull(exception);
629-
assertEquals(ErrorCode.INVALID_ARGUMENT, exception.getErrorCode());
630-
assertNull(exception.getCause());
631-
assertNull(exception.getHttpResponse());
632-
assertEquals(MessagingErrorCode.INVALID_ARGUMENT, exception.getMessagingErrorCode());
633-
}
634-
635-
checkBatchRequestHeader(interceptor.getLastRequest());
636-
checkBatchRequest(interceptor.getLastRequest(), successCount + failureCount);
637-
}
638-
639-
private void checkBatchRequestHeader(HttpRequest request) {
640-
assertEquals("POST", request.getRequestMethod());
641-
assertEquals("https://fcm.googleapis.com/batch", request.getUrl().toString());
642-
}
643-
644-
private void checkBatchRequest(HttpRequest request, int expectedParts) throws IOException {
645-
ByteArrayOutputStream out = new ByteArrayOutputStream();
646-
request.getContent().writeTo(out);
647-
String[] lines = out.toString().split("\n");
648-
assertEquals(expectedParts, countLinesWithPrefix(lines, "POST " + TEST_FCM_URL));
649-
assertEquals(expectedParts, countLinesWithPrefix(lines, "x-goog-api-format-version: 2"));
650-
assertEquals(expectedParts, countLinesWithPrefix(
651-
lines, "x-firebase-client: fire-admin-java/" + SdkUtils.getVersion()));
652-
}
653-
654-
private int countLinesWithPrefix(String[] lines, String prefix) {
655-
int matchCount = 0;
656-
for (String line : lines) {
657-
if (line.trim().startsWith(prefix)) {
658-
matchCount++;
659-
}
660-
}
661-
return matchCount;
662-
}
663-
664404
private FirebaseMessagingClientImpl.Builder fullyPopulatedBuilder() {
665405
return FirebaseMessagingClientImpl.builder()
666406
.setProjectId("test-project")

0 commit comments

Comments
 (0)