Skip to content

Commit 83ecf50

Browse files
committed
remove tests
1 parent 9977bfc commit 83ecf50

File tree

5 files changed

+13
-115
lines changed

5 files changed

+13
-115
lines changed

firebase-inappmessaging/src/androidTest/java/com/google/firebase/inappmessaging/FirebaseInAppMessagingFlowableTest.java

Lines changed: 2 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -589,43 +589,17 @@ public void onUnsupportedCampaign_doesNotNotify() {
589589
}
590590

591591
@Test
592-
public void whenImpressed_filtersCampaign()
592+
public void whenImpressedButReceivedFromBackend_doesNotFilterCampaign()
593593
throws ExecutionException, InterruptedException, TimeoutException {
594-
CampaignMetadata otherMetadata =
595-
new CampaignMetadata("otherCampaignId", "otherName", IS_NOT_TEST_MESSAGE);
596-
BannerMessage otherMessage = createBannerMessageCustomMetadata(otherMetadata);
597-
VanillaCampaignPayload otherCampaign =
598-
VanillaCampaignPayload.newBuilder(vanillaCampaign.build())
599-
.setCampaignId(otherMetadata.getCampaignId())
600-
.setCampaignName(otherMetadata.getCampaignName())
601-
.build();
602-
ThickContent otherContent =
603-
ThickContent.newBuilder(thickContent)
604-
.setContent(BANNER_MESSAGE_PROTO)
605-
.setIsTestCampaign(IS_NOT_TEST_MESSAGE)
606-
.clearVanillaPayload()
607-
.clearTriggeringConditions()
608-
.addTriggeringConditions(
609-
TriggeringCondition.newBuilder().setEvent(Event.newBuilder().setName("event2")))
610-
.setVanillaPayload(otherCampaign)
611-
.build();
612-
FetchEligibleCampaignsResponse response =
613-
FetchEligibleCampaignsResponse.newBuilder(eligibleCampaigns)
614-
.addMessages(otherContent)
615-
.build();
616-
GoodFiamService impl = new GoodFiamService(response);
617-
grpcServerRule.getServiceRegistry().addService(impl);
618-
619594
Task<Void> logImpressionTask =
620595
displayCallbacksFactory
621596
.generateDisplayCallback(MODAL_MESSAGE_MODEL, ANALYTICS_EVENT_NAME)
622597
.impressionDetected();
623598
Tasks.await(logImpressionTask, 1000, TimeUnit.MILLISECONDS);
624599
analyticsConnector.invokeListenerOnEvent(ANALYTICS_EVENT_NAME);
625-
analyticsConnector.invokeListenerOnEvent("event2");
626600
waitUntilNotified(subscriber);
627601

628-
assertSubsriberExactly(otherMessage, subscriber);
602+
assertSubsriberExactly(MODAL_MESSAGE_MODEL, subscriber);
629603
}
630604

631605
// There is not a purely functional way to determine if our clients inject the impressed
@@ -834,23 +808,6 @@ public void logImpression_logsToEngagementMetrics() {
834808
assertThat(fileExists(IMPRESSIONS_STORE_FILE)).isTrue();
835809
}
836810

837-
@Test
838-
public void whenlogImpressionFails_doesNotFilterCampaign()
839-
throws ExecutionException, InterruptedException, TimeoutException, FileNotFoundException {
840-
doThrow(new NullPointerException("e1")).when(application).openFileInput(IMPRESSIONS_STORE_FILE);
841-
842-
Task<Void> logImpressionTask =
843-
displayCallbacksFactory
844-
.generateDisplayCallback(MODAL_MESSAGE_MODEL, ANALYTICS_EVENT_NAME)
845-
.impressionDetected();
846-
await().timeout(2, SECONDS).until(logImpressionTask::isComplete);
847-
assertThat(logImpressionTask.getException()).hasMessageThat().contains("e1");
848-
analyticsConnector.invokeListenerOnEvent(ANALYTICS_EVENT_NAME);
849-
waitUntilNotified(subscriber);
850-
851-
assertSingleSuccessNotification(subscriber);
852-
}
853-
854811
@Test
855812
public void logImpression_whenlogEventLimitIncrementFails_doesNotRateLimit()
856813
throws ExecutionException, InterruptedException, TimeoutException, FileNotFoundException {
@@ -1015,65 +972,6 @@ public void onCorruptImpressionStore_doesNotFilter()
1015972
assertSingleSuccessNotification(subscriber);
1016973
}
1017974

1018-
@Test
1019-
public void onImpressionStoreReadFailure_doesNotFilter()
1020-
throws ExecutionException, InterruptedException, TimeoutException, IOException {
1021-
doThrow(new NullPointerException("e1")).when(application).openFileInput(IMPRESSIONS_STORE_FILE);
1022-
1023-
analyticsConnector.invokeListenerOnEvent(ANALYTICS_EVENT_NAME);
1024-
waitUntilNotified(subscriber);
1025-
1026-
assertSingleSuccessNotification(subscriber);
1027-
}
1028-
1029-
// There is not a purely functional way to determine if our clients inject the impressed
1030-
// campaigns upstream since we filter impressions from the response on the client as well.
1031-
// We work around this by failing hard on the fake service if we do not find an empty impression
1032-
// list
1033-
@Test
1034-
public void whenImpressionStorageClientFails_injectsEmptyImpressionListUpstream()
1035-
throws ExecutionException, InterruptedException, TimeoutException, FileNotFoundException {
1036-
VanillaCampaignPayload otherCampaign =
1037-
VanillaCampaignPayload.newBuilder(vanillaCampaign.build())
1038-
.setCampaignId("otherCampaignId")
1039-
.setCampaignName("other_name")
1040-
.build();
1041-
ThickContent otherContent =
1042-
ThickContent.newBuilder(thickContent)
1043-
.setContent(BANNER_MESSAGE_PROTO)
1044-
.clearVanillaPayload()
1045-
.clearTriggeringConditions()
1046-
.addTriggeringConditions(
1047-
TriggeringCondition.newBuilder().setEvent(Event.newBuilder().setName("event2")))
1048-
.setVanillaPayload(otherCampaign)
1049-
.build();
1050-
FetchEligibleCampaignsResponse response =
1051-
FetchEligibleCampaignsResponse.newBuilder(eligibleCampaigns)
1052-
.addMessages(otherContent)
1053-
.build();
1054-
1055-
InAppMessagingSdkServingImplBase fakeFilteringService =
1056-
new InAppMessagingSdkServingImplBase() {
1057-
@Override
1058-
public void fetchEligibleCampaigns(
1059-
FetchEligibleCampaignsRequest request,
1060-
StreamObserver<FetchEligibleCampaignsResponse> responseObserver) {
1061-
1062-
// Fail if impressions list is not empty
1063-
assertThat(request.getAlreadySeenCampaignsList()).isEmpty();
1064-
1065-
responseObserver.onNext(response);
1066-
responseObserver.onCompleted();
1067-
}
1068-
};
1069-
grpcServerRule.getServiceRegistry().addService(fakeFilteringService);
1070-
doThrow(new NullPointerException("e1")).when(application).openFileInput(IMPRESSIONS_STORE_FILE);
1071-
analyticsConnector.invokeListenerOnEvent(ANALYTICS_EVENT_NAME);
1072-
analyticsConnector.invokeListenerOnEvent("event2");
1073-
1074-
waitUntilNotified(subscriber);
1075-
}
1076-
1077975
@Test
1078976
public void whenAppForegroundIsRateLimited_doesNotNotify() {
1079977
CampaignMetadata analyticsCampaignMetadata =

firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/DisplayCallbacksImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import io.reactivex.Maybe;
2929
import io.reactivex.Scheduler;
3030
import io.reactivex.disposables.Disposable;
31-
import java.util.concurrent.TimeUnit;
3231

3332
public class DisplayCallbacksImpl implements FirebaseInAppMessagingDisplayCallbacks {
3433

@@ -232,7 +231,7 @@ private Completable logToImpressionStore() {
232231
impressionStorageClient
233232
.storeImpression(
234233
CampaignImpression.newBuilder()
235-
.setImpressionTimestampMillis(clock.now() - TimeUnit.DAYS.toMillis(2))
234+
.setImpressionTimestampMillis(clock.now())
236235
.setCampaignId(campaignId)
237236
.build())
238237
.doOnError(e -> Logging.loge("Impression store write failure"))

firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/ImpressionStorageClient.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import io.reactivex.Maybe;
2424
import io.reactivex.Observable;
2525
import io.reactivex.Single;
26-
import java.util.ArrayList;
26+
import java.util.HashSet;
2727
import javax.inject.Inject;
2828
import javax.inject.Singleton;
2929

@@ -100,18 +100,17 @@ public Single<Boolean> isImpressed(CampaignProto.ThickContent content) {
100100
}
101101

102102
/** */
103-
public void clearImpressions(FetchEligibleCampaignsResponse response) {
104-
ArrayList<String> idsToClear = new ArrayList<>();
105-
103+
public Completable clearImpressions(FetchEligibleCampaignsResponse response) {
104+
HashSet<String> idsToClear = new HashSet<>();
106105
for (CampaignProto.ThickContent content : response.getMessagesList()) {
107106
String id =
108107
content.getPayloadCase().equals(CampaignProto.ThickContent.PayloadCase.VANILLA_PAYLOAD)
109108
? content.getVanillaPayload().getCampaignId()
110109
: content.getExperimentalPayload().getCampaignId();
111110
idsToClear.add(id);
112111
}
113-
Logging.logd("Potential impression to clear: " + idsToClear.toString());
114-
getAllImpressions()
112+
Logging.logd("Potential impressions to clear: " + idsToClear.toString());
113+
return getAllImpressions()
115114
.defaultIfEmpty(EMPTY_IMPRESSIONS)
116115
.flatMapCompletable(
117116
(storedImpressions) -> {
@@ -129,7 +128,6 @@ public void clearImpressions(FetchEligibleCampaignsResponse response) {
129128
return storageClient
130129
.write(clearedImpressionList)
131130
.doOnComplete(() -> initInMemCache(clearedImpressionList));
132-
})
133-
.blockingAwait();
131+
});
134132
}
135133
}

firebase-inappmessaging/src/main/java/com/google/firebase/inappmessaging/internal/InAppMessageStreamManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,8 @@ public Flowable<TriggeredInAppMessage> createFirebaseInAppMessageStream() {
242242
Locale.US,
243243
"Successfully fetched %d messages from backend",
244244
resp.getMessagesList().size())))
245-
.doOnSuccess(impressionStorageClient::clearImpressions)
245+
.doOnSuccess(
246+
resp -> impressionStorageClient.clearImpressions(resp).subscribe())
246247
.doOnSuccess(analyticsEventsManager::updateContextualTriggers)
247248
.doOnSuccess(testDeviceHelper::processCampaignFetch)
248249
.doOnError(e -> Logging.logw("Service fetch error: " + e.getMessage()))

firebase-inappmessaging/src/test/java/com/google/firebase/inappmessaging/internal/InAppMessageStreamManagerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ public void setup() {
198198
abtIntegrationHelper);
199199
subscriber = streamManager.createFirebaseInAppMessageStream().test();
200200
when(application.getApplicationContext()).thenReturn(application);
201+
when(impressionStorageClient.clearImpressions(any(FetchEligibleCampaignsResponse.class)))
202+
.thenReturn(Completable.complete());
201203
when(rateLimiterClient.isRateLimited(appForegroundRateLimit)).thenReturn(Single.just(false));
202204
when(campaignCacheClient.get()).thenReturn(Maybe.empty());
203205
when(campaignCacheClient.put(any(FetchEligibleCampaignsResponse.class)))

0 commit comments

Comments
 (0)