Update logPackageName() to use new MetricsLogger API

Bug: 38258793
Test: make RunSettingsRoboTests
Change-Id: Id08e5655bdaaf0cabd952b07278cd0daf7b59a3b
This commit is contained in:
Fan Zhang
2017-05-25 13:48:22 -07:00
parent a0d327a5ac
commit 7a98912c94
2 changed files with 29 additions and 19 deletions

View File

@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.util.Pair; import android.util.Pair;
@@ -145,12 +146,11 @@ public class SharedPreferencesLogger implements SharedPreferences {
} }
} }
private void logPackageName(String key, String value) { @VisibleForTesting
void logPackageName(String key, String value) {
final String prefKey = mTag + "/" + key; final String prefKey = mTag + "/" + key;
mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE, mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE, value,
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey)); Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey));
mMetricsFeature.action(mContext, MetricsEvent.ACTION_GENERIC_PACKAGE,
prefKey + "|" + value);
} }
private void safeLogValue(String key, String value) { private void safeLogValue(String key, String value) {

View File

@@ -15,19 +15,6 @@
*/ */
package com.android.settings.core.instrumentation; package com.android.settings.core.instrumentation;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.util.Pair; import android.util.Pair;
@@ -47,6 +34,21 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.ACTION_SETTINGS_PREFERENCE_CHANGE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SharedPreferenceLoggerTest { public class SharedPreferenceLoggerTest {
@@ -135,13 +137,21 @@ public class SharedPreferenceLoggerTest {
argThat(pairMatches(FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE, Float.class))); argThat(pairMatches(FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE, Float.class)));
} }
@Test
public void logPackage_shouldUseLogPackageApi() {
mSharedPrefLogger.logPackageName("key", "com.android.settings");
verify(mMetricsFeature).action(any(Context.class),
eq(ACTION_SETTINGS_PREFERENCE_CHANGE),
eq("com.android.settings"),
any(Pair.class));
}
private ArgumentMatcher<Pair<Integer, Object>> pairMatches(int tag, Class clazz) { private ArgumentMatcher<Pair<Integer, Object>> pairMatches(int tag, Class clazz) {
return pair -> pair.first == tag && Platform.isInstanceOfType(pair.second, clazz); return pair -> pair.first == tag && Platform.isInstanceOfType(pair.second, clazz);
} }
private ArgumentMatcher<Pair<Integer, Object>> pairMatches(int tag, boolean bool) { private ArgumentMatcher<Pair<Integer, Object>> pairMatches(int tag, boolean bool) {
return pair -> return pair -> pair.first == tag
pair.first == tag
&& Platform.isInstanceOfType(pair.second, Long.class) && Platform.isInstanceOfType(pair.second, Long.class)
&& pair.second.equals((bool ? 1L : 0L)); && pair.second.equals((bool ? 1L : 0L));
} }