Update logPackageName() to use new MetricsLogger API
Bug: 38258793 Test: make RunSettingsRoboTests Change-Id: Id08e5655bdaaf0cabd952b07278cd0daf7b59a3b
This commit is contained in:
@@ -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) {
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user