Avoid over logging preference changes.
When preference screen is created all prefence goes through SharedPreferenceLogger once. We don't want to log it as preference change because it's just initial display. Subsequent preference logger calls should result in logging. Bug: 30914916 Test: make RunSettingsRoboTests Change-Id: Icaee9137c55555f4db7839ff0381a13ccd420190
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
package com.android.settings.core.instrumentation;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
@@ -32,7 +33,7 @@ import org.robolectric.shadows.ShadowApplication;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@@ -62,27 +63,53 @@ public class SharedPreferenceLoggerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putInt_shouldLogCount() {
|
||||
mSharedPrefLogger.edit().putInt(TEST_KEY, 1);
|
||||
verify(mLogWriter).count(any(Context.class), anyString(), anyInt());
|
||||
public void putInt_shouldNotLogInitialPut() {
|
||||
final SharedPreferences.Editor editor = mSharedPrefLogger.edit();
|
||||
editor.putInt(TEST_KEY, 1);
|
||||
editor.putInt(TEST_KEY, 1);
|
||||
editor.putInt(TEST_KEY, 1);
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
editor.putInt(TEST_KEY, 2);
|
||||
|
||||
verify(mLogWriter, times(6)).count(any(Context.class), anyString(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putBoolean_shouldLogCount() {
|
||||
mSharedPrefLogger.edit().putBoolean(TEST_KEY, true);
|
||||
verify(mLogWriter).count(any(Context.class), anyString(), anyInt());
|
||||
public void putBoolean_shouldNotLogInitialPut() {
|
||||
final SharedPreferences.Editor editor = mSharedPrefLogger.edit();
|
||||
editor.putBoolean(TEST_KEY, true);
|
||||
editor.putBoolean(TEST_KEY, true);
|
||||
editor.putBoolean(TEST_KEY, false);
|
||||
editor.putBoolean(TEST_KEY, false);
|
||||
editor.putBoolean(TEST_KEY, false);
|
||||
|
||||
verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putLong_shouldLogCount() {
|
||||
mSharedPrefLogger.edit().putLong(TEST_KEY, 1);
|
||||
verify(mLogWriter).count(any(Context.class), anyString(), anyInt());
|
||||
public void putLong_shouldNotLogInitialPut() {
|
||||
final SharedPreferences.Editor editor = mSharedPrefLogger.edit();
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, 1);
|
||||
editor.putLong(TEST_KEY, 2);
|
||||
|
||||
verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void putFloat_shouldLogCount() {
|
||||
mSharedPrefLogger.edit().putInt(TEST_KEY, 1);
|
||||
verify(mLogWriter).count(any(Context.class), anyString(), anyInt());
|
||||
public void putFloat_shouldNotLogInitialPut() {
|
||||
final SharedPreferences.Editor editor = mSharedPrefLogger.edit();
|
||||
editor.putFloat(TEST_KEY, 1);
|
||||
editor.putFloat(TEST_KEY, 1);
|
||||
editor.putFloat(TEST_KEY, 1);
|
||||
editor.putFloat(TEST_KEY, 1);
|
||||
editor.putFloat(TEST_KEY, 2);
|
||||
|
||||
verify(mLogWriter, times(4)).count(any(Context.class), anyString(), anyInt());
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user