Add logging whenever preference leads to intent.
Bug: 34774945 Test: make RunSettignsRoboTests Change-Id: I694e5a0a2b614c695193c9c525991a1558e0a81a
This commit is contained in:
@@ -15,35 +15,51 @@
|
||||
*/
|
||||
package com.android.settings.core.instrumentation;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadows.ShadowApplication;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class MetricsFeatureProviderTest {
|
||||
|
||||
private ShadowApplication mApplication;
|
||||
private Context mContext;
|
||||
|
||||
@Mock
|
||||
private LogWriter mLogWriter;
|
||||
private Context mContext;
|
||||
private MetricsFeatureProvider mProvider;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mApplication = ShadowApplication.getInstance();
|
||||
mContext = mApplication.getApplicationContext();
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mProvider = new MetricsFeatureProvider();
|
||||
List<LogWriter> writers = new ArrayList<>();
|
||||
writers.add(mLogWriter);
|
||||
ReflectionHelpers.setField(mProvider, "mLoggerWriters", writers);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -55,4 +71,25 @@ public class MetricsFeatureProviderTest {
|
||||
|
||||
assertThat(feature1 == feature2).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logDashboardStartIntent_intentEmpty_shouldNotLog() {
|
||||
mProvider.logDashboardStartIntent(mContext, null /* intent */,
|
||||
MetricsEvent.SETTINGS_GESTURES);
|
||||
|
||||
verifyNoMoreInteractions(mLogWriter);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logDashboardStartIntent_intentIsExternal_shouldLog() {
|
||||
final Intent intent = new Intent().setComponent(new ComponentName("pkg", "cls"));
|
||||
|
||||
mProvider.logDashboardStartIntent(mContext, intent, MetricsEvent.SETTINGS_GESTURES);
|
||||
|
||||
verify(mLogWriter).action(
|
||||
eq(mContext),
|
||||
eq(MetricsEvent.ACTION_SETTINGS_TILE_CLICK),
|
||||
anyString(),
|
||||
eq(Pair.create(MetricsEvent.FIELD_CONTEXT, MetricsEvent.SETTINGS_GESTURES)));
|
||||
}
|
||||
}
|
||||
|
@@ -56,7 +56,6 @@ import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -166,10 +165,11 @@ public class DashboardFeatureProviderImplTest {
|
||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
|
||||
verify(mFeatureFactory.metricsFeatureProvider).logDashboardStartIntent(
|
||||
any(Context.class),
|
||||
eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK),
|
||||
eq(tile.intent.getComponent().flattenToString()));
|
||||
any(Intent.class),
|
||||
eq(MetricsProto.MetricsEvent.SETTINGS_GESTURES));
|
||||
verify(mActivity)
|
||||
.startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
|
||||
}
|
||||
@@ -193,10 +193,10 @@ public class DashboardFeatureProviderImplTest {
|
||||
mImpl.bindPreferenceToTile(mActivity, MetricsProto.MetricsEvent.SETTINGS_GESTURES,
|
||||
preference, tile, "123", Preference.DEFAULT_ORDER);
|
||||
preference.getOnPreferenceClickListener().onPreferenceClick(null);
|
||||
verify(mFeatureFactory.metricsFeatureProvider, never()).action(
|
||||
verify(mFeatureFactory.metricsFeatureProvider).logDashboardStartIntent(
|
||||
any(Context.class),
|
||||
eq(MetricsProto.MetricsEvent.ACTION_SETTINGS_TILE_CLICK),
|
||||
eq(tile.intent.getComponent().flattenToString()));
|
||||
any(Intent.class),
|
||||
anyInt());
|
||||
verify(mActivity)
|
||||
.startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
|
||||
}
|
||||
|
Reference in New Issue
Block a user