Fix flaky tests in ThemeBinderServiceTests
The tests were failing due to a user ID mismatch. ThemeBinderService uses the calling user's ID, but the tests were hardcoded to use user ID 0. This caused theme settings to be written for one user and read for another, resulting in test failures.
Fixes: 433274796
Flag: EXEMPT test only
Test: ThemeBinderServiceTests
Change-Id: I54ce2caef46da3f4e6d138b1cdaa5fd6dfc1491e
diff --git a/services/tests/servicestests/src/com/android/server/theming/ThemeBinderServiceTests.java b/services/tests/servicestests/src/com/android/server/theming/ThemeBinderServiceTests.java
index e5c9cbe..9f10f50 100644
--- a/services/tests/servicestests/src/com/android/server/theming/ThemeBinderServiceTests.java
+++ b/services/tests/servicestests/src/com/android/server/theming/ThemeBinderServiceTests.java
@@ -26,6 +26,8 @@
import android.content.theming.ThemeSettingsPreset;
import android.content.theming.ThemeStyle;
import android.graphics.Color;
+import android.os.Binder;
+import android.os.UserHandle;
import android.provider.Settings;
import android.testing.TestableContext;
import android.testing.TestablePermissions;
@@ -46,7 +48,7 @@
}
};
- private final int mUserId = 0;
+ private int mUserId;
private ThemeBinderService mUnderTest;
private ThemeManagerInternal mInternal;
private ThemeSettings mDefaultSettings = ThemeSettings
@@ -60,6 +62,8 @@
TestableContext context = new TestableContext(InstrumentationRegistry.getTargetContext(),
null);
+ mUserId = UserHandle.getUserId(Binder.getCallingUid());
+
Settings.Secure.putStringForUser(context.getContentResolver(),
Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES, null, mUserId);