summaryrefslogtreecommitdiff
path: root/javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java')
-rw-r--r--javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java445
1 files changed, 227 insertions, 218 deletions
diff --git a/javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java b/javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java
index 468f7fe..0c94bb2 100644
--- a/javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java
+++ b/javatests/com/google/android/libraries/mobiledatadownload/internal/logging/MddEventLoggerTest.java
@@ -16,13 +16,16 @@
package com.google.android.libraries.mobiledatadownload.internal.logging;
import static com.google.common.util.concurrent.MoreExecutors.directExecutor;
+
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import android.content.Context;
+
import androidx.test.core.app.ApplicationProvider;
+
import com.google.android.libraries.mobiledatadownload.Logger;
import com.google.android.libraries.mobiledatadownload.testing.FakeTimeSource;
import com.google.android.libraries.mobiledatadownload.testing.MddTestDependencies;
@@ -36,8 +39,7 @@ import com.google.mobiledatadownload.LogProto.MddDeviceInfo;
import com.google.mobiledatadownload.LogProto.MddDownloadResultLog;
import com.google.mobiledatadownload.LogProto.MddLogData;
import com.google.mobiledatadownload.LogProto.StableSamplingInfo;
-import java.security.SecureRandom;
-import java.util.Random;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -47,226 +49,233 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import java.security.SecureRandom;
+import java.util.Random;
+
@RunWith(RobolectricTestRunner.class)
public class MddEventLoggerTest {
- @Rule public final MockitoRule mocks = MockitoJUnit.rule();
-
- private static final int SOME_MODULE_VERSION = 42;
- private static final int SAMPLING_ALWAYS = 1;
- private static final int SAMPLING_NEVER = 0;
-
- @Mock private Logger mockLogger;
- private MddEventLogger mddEventLogger;
-
- private final Context context = ApplicationProvider.getApplicationContext();
- private final TestFlags flags = new TestFlags();
-
- @Before
- public void setUp() throws Exception {
- mddEventLogger =
- new MddEventLogger(
- context,
- mockLogger,
- SOME_MODULE_VERSION,
- new LogSampler(flags, new SecureRandom()),
- flags);
- mddEventLogger.setLoggingStateStore(
- MddTestDependencies.LoggingStateStoreImpl.SHARED_PREFERENCES.loggingStateStore(
- context, Optional.absent(), new FakeTimeSource(), directExecutor(), new Random(0)));
- }
-
- private MddLogData.Builder newLogDataBuilderWithClientInfo() {
- return MddLogData.newBuilder()
- .setAndroidClientInfo(
- AndroidClientInfo.newBuilder()
- .setModuleVersion(SOME_MODULE_VERSION)
- .setHostPackageName(context.getPackageName()));
- }
-
- @Test
- public void testSampleInterval_zero_none() {
- assertFalse(LogUtil.shouldSampleInterval(0));
- }
-
- @Test
- public void testSampleInterval_negative_none() {
- assertFalse(LogUtil.shouldSampleInterval(-1));
- }
-
- @Test
- public void testSampleInterval_always() {
- assertTrue(LogUtil.shouldSampleInterval(1));
- }
-
- @Test
- public void testLogMddEvents_noLog() {
- overrideDefaultSampleInterval(SAMPLING_NEVER);
-
- mddEventLogger.logEventSampled(
- MddClientEvent.Code.EVENT_CODE_UNSPECIFIED,
- "fileGroup",
- /* fileGroupVersionNumber= */ 0,
- /* buildId= */ 0,
- /* variantId= */ "");
- verifyNoInteractions(mockLogger);
- }
-
- @Test
- public void testLogMddEvents() {
- overrideDefaultSampleInterval(SAMPLING_ALWAYS);
- mddEventLogger.logEventSampled(
- MddClientEvent.Code.EVENT_CODE_UNSPECIFIED,
- "fileGroup",
- /* fileGroupVersionNumber= */ 1,
- /* buildId= */ 123,
- /* variantId= */ "testVariant");
-
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setDataDownloadFileGroupStats(
+ @Rule
+ public final MockitoRule mocks = MockitoJUnit.rule();
+
+ private static final int SOME_MODULE_VERSION = 42;
+ private static final int SAMPLING_ALWAYS = 1;
+ private static final int SAMPLING_NEVER = 0;
+
+ @Mock
+ private Logger mockLogger;
+ private MddEventLogger mddEventLogger;
+
+ private final Context context = ApplicationProvider.getApplicationContext();
+ private final TestFlags flags = new TestFlags();
+
+ @Before
+ public void setUp() throws Exception {
+ mddEventLogger =
+ new MddEventLogger(
+ context,
+ mockLogger,
+ SOME_MODULE_VERSION,
+ new LogSampler(flags, new SecureRandom()),
+ flags);
+ mddEventLogger.setLoggingStateStore(
+ MddTestDependencies.LoggingStateStoreImpl.SHARED_PREFERENCES.loggingStateStore(
+ context, Optional.absent(), new FakeTimeSource(), directExecutor(),
+ new Random(0)));
+ }
+
+ private MddLogData.Builder newLogDataBuilderWithClientInfo() {
+ return MddLogData.newBuilder()
+ .setAndroidClientInfo(
+ AndroidClientInfo.newBuilder()
+ .setModuleVersion(SOME_MODULE_VERSION)
+ .setHostPackageName(context.getPackageName()));
+ }
+
+ @Test
+ public void testSampleInterval_zero_none() {
+ assertFalse(LogUtil.shouldSampleInterval(0));
+ }
+
+ @Test
+ public void testSampleInterval_negative_none() {
+ assertFalse(LogUtil.shouldSampleInterval(-1));
+ }
+
+ @Test
+ public void testSampleInterval_always() {
+ assertTrue(LogUtil.shouldSampleInterval(1));
+ }
+
+ @Test
+ public void testLogMddEvents_noLog() {
+ overrideDefaultSampleInterval(SAMPLING_NEVER);
+
+ mddEventLogger.logEventSampled(
+ MddClientEvent.Code.EVENT_CODE_UNSPECIFIED,
+ "fileGroup",
+ /* fileGroupVersionNumber= */ 0,
+ /* buildId= */ 0,
+ /* variantId= */ "");
+ verifyNoInteractions(mockLogger);
+ }
+
+ @Test
+ public void testLogMddEvents() {
+ overrideDefaultSampleInterval(SAMPLING_ALWAYS);
+ mddEventLogger.logEventSampled(
+ MddClientEvent.Code.EVENT_CODE_UNSPECIFIED,
+ "fileGroup",
+ /* fileGroupVersionNumber= */ 1,
+ /* buildId= */ 123,
+ /* variantId= */ "testVariant");
+
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setDataDownloadFileGroupStats(
+ DataDownloadFileGroupStats.newBuilder()
+ .setFileGroupName("fileGroup")
+ .setFileGroupVersionNumber(1)
+ .setBuildId(123)
+ .setVariantId("testVariant"))
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
+ }
+
+ @Test
+ public void testLogExpirationHandlerRemoveUnaccountedFilesSampled() {
+ final int unaccountedFileCount = 5;
+ overrideDefaultSampleInterval(SAMPLING_ALWAYS);
+ mddEventLogger.logMddDataDownloadFileExpirationEvent(0, unaccountedFileCount);
+
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
+ }
+
+ @Test
+ public void testLogMddNetworkSavingsSampled() {
+ overrideDefaultSampleInterval(SAMPLING_ALWAYS);
+ DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
DataDownloadFileGroupStats.newBuilder()
- .setFileGroupName("fileGroup")
- .setFileGroupVersionNumber(1)
- .setBuildId(123)
- .setVariantId("testVariant"))
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
- }
-
- @Test
- public void testLogExpirationHandlerRemoveUnaccountedFilesSampled() {
- final int unaccountedFileCount = 5;
- overrideDefaultSampleInterval(SAMPLING_ALWAYS);
- mddEventLogger.logMddDataDownloadFileExpirationEvent(0, unaccountedFileCount);
-
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
- }
-
- @Test
- public void testLogMddNetworkSavingsSampled() {
- overrideDefaultSampleInterval(SAMPLING_ALWAYS);
- DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
- DataDownloadFileGroupStats.newBuilder()
- .setFileGroupName("fileGroup")
- .setFileGroupVersionNumber(1)
- .build();
- mddEventLogger.logMddNetworkSavings(
- icingDataDownloadFileGroupStats, 0, 200L, 100L, "file-id", 1);
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
- }
-
- @Test
- public void testLogMddDownloadResult() {
- overrideDefaultSampleInterval(SAMPLING_ALWAYS);
- DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
- DataDownloadFileGroupStats.newBuilder()
- .setFileGroupName("fileGroup")
- .setFileGroupVersionNumber(1)
- .build();
- mddEventLogger.logMddDownloadResult(
- MddDownloadResult.Code.LOW_DISK_ERROR, icingDataDownloadFileGroupStats);
-
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setMddDownloadResultLog(
- MddDownloadResultLog.newBuilder()
- .setResult(MddDownloadResult.Code.LOW_DISK_ERROR)
- .setDataDownloadFileGroupStats(icingDataDownloadFileGroupStats))
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.DATA_DOWNLOAD_RESULT_LOG_VALUE);
- }
-
- @Test
- public void testLogMddUsageEvent() {
- overrideDefaultSampleInterval(SAMPLING_ALWAYS);
-
- DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
- DataDownloadFileGroupStats.newBuilder()
- .setFileGroupName("fileGroup")
- .setFileGroupVersionNumber(1)
- .setBuildId(123)
- .setVariantId("variant-id")
- .build();
-
- Void usageEventLog = null;
-
- mddEventLogger.logMddUsageEvent(icingDataDownloadFileGroupStats, usageEventLog);
-
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setDataDownloadFileGroupStats(icingDataDownloadFileGroupStats)
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
- }
-
- @Test
- public void testlogMddLibApiResultLog() {
- overrideApiLoggingSampleInterval(SAMPLING_ALWAYS);
-
- DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
- DataDownloadFileGroupStats.newBuilder()
- .setFileGroupName("fileGroup")
- .setFileGroupVersionNumber(1)
- .build();
-
- Void mddLibApiResultLog = null;
- mddEventLogger.logMddLibApiResultLog(mddLibApiResultLog);
-
- MddLogData expectedData =
- newLogDataBuilderWithClientInfo()
- .setSamplingInterval(SAMPLING_ALWAYS)
- .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
- .setStableSamplingInfo(getStableSamplingInfo())
- .build();
-
- verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
- }
-
- private void overrideDefaultSampleInterval(int sampleInterval) {
- flags.mddDefaultSampleInterval = Optional.of(sampleInterval);
- }
-
- private void overrideApiLoggingSampleInterval(int sampleInterval) {
- flags.apiLoggingSampleInterval = Optional.of(sampleInterval);
- }
-
- private StableSamplingInfo getStableSamplingInfo() {
- if (flags.enableRngBasedDeviceStableSampling()) {
- return StableSamplingInfo.newBuilder()
- .setStableSamplingUsed(true)
- .setStableSamplingFirstEnabledTimestampMs(0)
- .setPartOfAlwaysLoggingGroup(false)
- .setInvalidSamplingRateUsed(false)
- .build();
+ .setFileGroupName("fileGroup")
+ .setFileGroupVersionNumber(1)
+ .build();
+ mddEventLogger.logMddNetworkSavings(
+ icingDataDownloadFileGroupStats, 0, 200L, 100L, "file-id", 1);
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
+ }
+
+ @Test
+ public void testLogMddDownloadResult() {
+ overrideDefaultSampleInterval(SAMPLING_ALWAYS);
+ DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
+ DataDownloadFileGroupStats.newBuilder()
+ .setFileGroupName("fileGroup")
+ .setFileGroupVersionNumber(1)
+ .build();
+ mddEventLogger.logMddDownloadResult(
+ MddDownloadResult.Code.LOW_DISK_ERROR, icingDataDownloadFileGroupStats);
+
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setMddDownloadResultLog(
+ MddDownloadResultLog.newBuilder()
+ .setResult(MddDownloadResult.Code.LOW_DISK_ERROR)
+ .setDataDownloadFileGroupStats(
+ icingDataDownloadFileGroupStats))
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.DATA_DOWNLOAD_RESULT_LOG_VALUE);
+ }
+
+ @Test
+ public void testLogMddUsageEvent() {
+ overrideDefaultSampleInterval(SAMPLING_ALWAYS);
+
+ DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
+ DataDownloadFileGroupStats.newBuilder()
+ .setFileGroupName("fileGroup")
+ .setFileGroupVersionNumber(1)
+ .setBuildId(123)
+ .setVariantId("variant-id")
+ .build();
+
+ Void usageEventLog = null;
+
+ mddEventLogger.logMddUsageEvent(icingDataDownloadFileGroupStats, usageEventLog);
+
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setDataDownloadFileGroupStats(icingDataDownloadFileGroupStats)
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
}
- return StableSamplingInfo.newBuilder().setStableSamplingUsed(false).build();
- }
+ @Test
+ public void testlogMddLibApiResultLog() {
+ overrideApiLoggingSampleInterval(SAMPLING_ALWAYS);
+
+ DataDownloadFileGroupStats icingDataDownloadFileGroupStats =
+ DataDownloadFileGroupStats.newBuilder()
+ .setFileGroupName("fileGroup")
+ .setFileGroupVersionNumber(1)
+ .build();
+
+ Void mddLibApiResultLog = null;
+ mddEventLogger.logMddLibApiResultLog(mddLibApiResultLog);
+
+ MddLogData expectedData =
+ newLogDataBuilderWithClientInfo()
+ .setSamplingInterval(SAMPLING_ALWAYS)
+ .setDeviceInfo(MddDeviceInfo.newBuilder().setDeviceStorageLow(false))
+ .setStableSamplingInfo(getStableSamplingInfo())
+ .build();
+
+ verify(mockLogger).log(expectedData, MddClientEvent.Code.EVENT_CODE_UNSPECIFIED_VALUE);
+ }
+
+ private void overrideDefaultSampleInterval(int sampleInterval) {
+ flags.mddDefaultSampleInterval = Optional.of(sampleInterval);
+ }
+
+ private void overrideApiLoggingSampleInterval(int sampleInterval) {
+ flags.apiLoggingSampleInterval = Optional.of(sampleInterval);
+ }
+
+ private StableSamplingInfo getStableSamplingInfo() {
+ if (flags.enableRngBasedDeviceStableSampling()) {
+ return StableSamplingInfo.newBuilder()
+ .setStableSamplingUsed(true)
+ .setStableSamplingFirstEnabledTimestampMs(0)
+ .setPartOfAlwaysLoggingGroup(false)
+ .setInvalidSamplingRateUsed(false)
+ .build();
+ }
+
+ return StableSamplingInfo.newBuilder().setStableSamplingUsed(false).build();
+ }
}