Loading packages/SystemUI/tests/src/com/android/systemui/util/settings/FakeSettings.java +18 −3 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti private final Map<SettingsKey, String> mValues = new HashMap<>(); private final Map<SettingsKey, String> mValues = new HashMap<>(); private final Map<SettingsKey, List<ContentObserver>> mContentObservers = private final Map<SettingsKey, List<ContentObserver>> mContentObservers = new HashMap<>(); new HashMap<>(); private final Map<String, List<ContentObserver>> mContentObserversAllUsers = new HashMap<>(); public static final Uri CONTENT_URI = Uri.parse("content://settings/fake"); public static final Uri CONTENT_URI = Uri.parse("content://settings/fake"); Loading @@ -55,9 +56,15 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti @Override @Override public void registerContentObserverForUser(Uri uri, boolean notifyDescendents, public void registerContentObserverForUser(Uri uri, boolean notifyDescendents, ContentObserver settingsObserver, int userHandle) { ContentObserver settingsObserver, int userHandle) { List<ContentObserver> observers; if (userHandle == UserHandle.USER_ALL) { mContentObserversAllUsers.putIfAbsent(uri.toString(), new ArrayList<>()); observers = mContentObserversAllUsers.get(uri.toString()); } else { SettingsKey key = new SettingsKey(userHandle, uri.toString()); SettingsKey key = new SettingsKey(userHandle, uri.toString()); mContentObservers.putIfAbsent(key, new ArrayList<>()); mContentObservers.putIfAbsent(key, new ArrayList<>()); List<ContentObserver> observers = mContentObservers.get(key); observers = mContentObservers.get(key); } observers.add(settingsObserver); observers.add(settingsObserver); } } Loading @@ -67,6 +74,10 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti List<ContentObserver> observers = mContentObservers.get(key); List<ContentObserver> observers = mContentObservers.get(key); observers.remove(settingsObserver); observers.remove(settingsObserver); } } for (String key : mContentObserversAllUsers.keySet()) { List<ContentObserver> observers = mContentObserversAllUsers.get(key); observers.remove(settingsObserver); } } } @Override @Override Loading Loading @@ -114,6 +125,10 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti for (ContentObserver observer : mContentObservers.getOrDefault(key, new ArrayList<>())) { for (ContentObserver observer : mContentObservers.getOrDefault(key, new ArrayList<>())) { observer.dispatchChange(false, List.of(uri), userHandle); observer.dispatchChange(false, List.of(uri), userHandle); } } for (ContentObserver observer : mContentObserversAllUsers.getOrDefault(uri.toString(), new ArrayList<>())) { observer.dispatchChange(false, List.of(uri), userHandle); } return true; return true; } } Loading packages/SystemUI/tests/src/com/android/systemui/util/settings/FakeSettingsTest.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import android.database.ContentObserver; import android.database.ContentObserver; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner; Loading Loading @@ -88,6 +89,16 @@ public class FakeSettingsTest extends SysuiTestCase { verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); } } @Test public void testRegisterContentObserverAllUsers() { mFakeSettings.registerContentObserverForUser( mFakeSettings.getUriFor("cat"), false, mContentObserver, UserHandle.USER_ALL); mFakeSettings.putString("cat", "hat"); verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); } @Test @Test public void testUnregisterContentObserver() { public void testUnregisterContentObserver() { mFakeSettings.registerContentObserver("cat", mContentObserver); mFakeSettings.registerContentObserver("cat", mContentObserver); Loading @@ -98,4 +109,16 @@ public class FakeSettingsTest extends SysuiTestCase { verify(mContentObserver, never()).dispatchChange( verify(mContentObserver, never()).dispatchChange( anyBoolean(), any(Collection.class), anyInt()); anyBoolean(), any(Collection.class), anyInt()); } } @Test public void testUnregisterContentObserverAllUsers() { mFakeSettings.registerContentObserverForUser( mFakeSettings.getUriFor("cat"), false, mContentObserver, UserHandle.USER_ALL); mFakeSettings.unregisterContentObserver(mContentObserver); mFakeSettings.putString("cat", "hat"); verify(mContentObserver, never()).dispatchChange( anyBoolean(), any(Collection.class), anyInt()); } } } Loading
packages/SystemUI/tests/src/com/android/systemui/util/settings/FakeSettings.java +18 −3 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,7 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti private final Map<SettingsKey, String> mValues = new HashMap<>(); private final Map<SettingsKey, String> mValues = new HashMap<>(); private final Map<SettingsKey, List<ContentObserver>> mContentObservers = private final Map<SettingsKey, List<ContentObserver>> mContentObservers = new HashMap<>(); new HashMap<>(); private final Map<String, List<ContentObserver>> mContentObserversAllUsers = new HashMap<>(); public static final Uri CONTENT_URI = Uri.parse("content://settings/fake"); public static final Uri CONTENT_URI = Uri.parse("content://settings/fake"); Loading @@ -55,9 +56,15 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti @Override @Override public void registerContentObserverForUser(Uri uri, boolean notifyDescendents, public void registerContentObserverForUser(Uri uri, boolean notifyDescendents, ContentObserver settingsObserver, int userHandle) { ContentObserver settingsObserver, int userHandle) { List<ContentObserver> observers; if (userHandle == UserHandle.USER_ALL) { mContentObserversAllUsers.putIfAbsent(uri.toString(), new ArrayList<>()); observers = mContentObserversAllUsers.get(uri.toString()); } else { SettingsKey key = new SettingsKey(userHandle, uri.toString()); SettingsKey key = new SettingsKey(userHandle, uri.toString()); mContentObservers.putIfAbsent(key, new ArrayList<>()); mContentObservers.putIfAbsent(key, new ArrayList<>()); List<ContentObserver> observers = mContentObservers.get(key); observers = mContentObservers.get(key); } observers.add(settingsObserver); observers.add(settingsObserver); } } Loading @@ -67,6 +74,10 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti List<ContentObserver> observers = mContentObservers.get(key); List<ContentObserver> observers = mContentObservers.get(key); observers.remove(settingsObserver); observers.remove(settingsObserver); } } for (String key : mContentObserversAllUsers.keySet()) { List<ContentObserver> observers = mContentObserversAllUsers.get(key); observers.remove(settingsObserver); } } } @Override @Override Loading Loading @@ -114,6 +125,10 @@ public class FakeSettings implements SecureSettings, GlobalSettings, SystemSetti for (ContentObserver observer : mContentObservers.getOrDefault(key, new ArrayList<>())) { for (ContentObserver observer : mContentObservers.getOrDefault(key, new ArrayList<>())) { observer.dispatchChange(false, List.of(uri), userHandle); observer.dispatchChange(false, List.of(uri), userHandle); } } for (ContentObserver observer : mContentObserversAllUsers.getOrDefault(uri.toString(), new ArrayList<>())) { observer.dispatchChange(false, List.of(uri), userHandle); } return true; return true; } } Loading
packages/SystemUI/tests/src/com/android/systemui/util/settings/FakeSettingsTest.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify; import android.database.ContentObserver; import android.database.ContentObserver; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.testing.AndroidTestingRunner; Loading Loading @@ -88,6 +89,16 @@ public class FakeSettingsTest extends SysuiTestCase { verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); } } @Test public void testRegisterContentObserverAllUsers() { mFakeSettings.registerContentObserverForUser( mFakeSettings.getUriFor("cat"), false, mContentObserver, UserHandle.USER_ALL); mFakeSettings.putString("cat", "hat"); verify(mContentObserver).dispatchChange(anyBoolean(), any(Collection.class), anyInt()); } @Test @Test public void testUnregisterContentObserver() { public void testUnregisterContentObserver() { mFakeSettings.registerContentObserver("cat", mContentObserver); mFakeSettings.registerContentObserver("cat", mContentObserver); Loading @@ -98,4 +109,16 @@ public class FakeSettingsTest extends SysuiTestCase { verify(mContentObserver, never()).dispatchChange( verify(mContentObserver, never()).dispatchChange( anyBoolean(), any(Collection.class), anyInt()); anyBoolean(), any(Collection.class), anyInt()); } } @Test public void testUnregisterContentObserverAllUsers() { mFakeSettings.registerContentObserverForUser( mFakeSettings.getUriFor("cat"), false, mContentObserver, UserHandle.USER_ALL); mFakeSettings.unregisterContentObserver(mContentObserver); mFakeSettings.putString("cat", "hat"); verify(mContentObserver, never()).dispatchChange( anyBoolean(), any(Collection.class), anyInt()); } } }