Skip to content

Commit 92c4476

Browse files
Aurélien PominiGerrit Code Review
authored andcommitted
Merge "Fix assertions when ImageWallpaper is not default" into android14-tests-dev
2 parents a7a2a77 + 47f6af6 commit 92c4476

1 file changed

Lines changed: 24 additions & 10 deletions

File tree

tests/app/WallpaperTest/src/android/app/cts/wallpapers/WallpaperManagerTest.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646

4747
import android.app.Activity;
4848
import android.app.WallpaperColors;
49+
import android.app.WallpaperInfo;
4950
import android.app.WallpaperManager;
5051
import android.content.BroadcastReceiver;
5152
import android.content.ComponentName;
@@ -117,6 +118,11 @@ public class WallpaperManagerTest {
117118
private BroadcastReceiver mBroadcastReceiver;
118119
private CountDownLatch mCountDownLatch;
119120
private boolean mEnableWcg;
121+
122+
// WallpaperInfo object for the built-in default wallpaper of the device.
123+
// Always null if the device uses ImageWallpaper by default.
124+
private WallpaperInfo mDefaultWallpaperInfo;
125+
120126
private static final WindowManagerStateHelper sWindowManagerStateHelper =
121127
new WindowManagerStateHelper();
122128

@@ -157,6 +163,9 @@ public void onReceive(Context context, Intent intent) {
157163
new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED));
158164
mEnableWcg = mWallpaperManager.shouldEnableWideColorGamut();
159165
mWallpaperManager.clear(FLAG_SYSTEM | FLAG_LOCK);
166+
if (mDefaultWallpaperInfo == null) {
167+
mDefaultWallpaperInfo = mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM);
168+
}
160169

161170
assertWithMessage("Home screen wallpaper must be set after setUp()").that(
162171
mWallpaperManager.getWallpaperId(FLAG_SYSTEM)).isAtLeast(0);
@@ -597,8 +606,8 @@ public void setWallpaperComponent_default_multiEngine_lockScreenUnset_behavesLik
597606

598607
@Test
599608
public void setStaticWallpaper_doesNotSetWallpaperInfo() throws IOException {
600-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM)).isNull();
601-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_LOCK)).isNull();
609+
assertNullOrDefaultWallpaper(FLAG_SYSTEM);
610+
assertNullOrDefaultWallpaper(FLAG_LOCK);
602611

603612
mWallpaperManager.setResource(R.drawable.icon_red, FLAG_SYSTEM);
604613
mWallpaperManager.setResource(R.drawable.icon_green, FLAG_LOCK);
@@ -609,17 +618,16 @@ public void setStaticWallpaper_doesNotSetWallpaperInfo() throws IOException {
609618

610619
@Test
611620
public void setLiveWallpaper_homeScreen_setsHomeWallpaperInfo() {
612-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM)).isNull();
613-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_LOCK)).isNull();
621+
assertNullOrDefaultWallpaper(FLAG_SYSTEM);
622+
assertNullOrDefaultWallpaper(FLAG_LOCK);
614623

615624
runWithShellPermissionIdentity(() -> {
616625
setWallpaperComponentAndWait(DEFAULT_COMPONENT_NAME, FLAG_SYSTEM);
617626
});
618627

619628
assertWithMessage("Home screen").that(
620629
mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM)).isNotNull();
621-
assertWithMessage("Lock screen").that(
622-
mWallpaperManager.getWallpaperInfo(FLAG_LOCK)).isNull();
630+
assertNullOrDefaultWallpaper(FLAG_LOCK);
623631
}
624632

625633
@Test
@@ -641,15 +649,14 @@ public void setLiveWallpaper_lockScreen_singleEngine_setsHomeWallpaperInfo() {
641649
@Test
642650
public void setLiveWallpaper_lockScreen_multiEngine_setsLockWallpaperInfo() {
643651
assumeTrue(mWallpaperManager.isLockscreenLiveWallpaperEnabled());
644-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM)).isNull();
645-
assertThat(mWallpaperManager.getWallpaperInfo(FLAG_LOCK)).isNull();
652+
assertNullOrDefaultWallpaper(FLAG_SYSTEM);
653+
assertNullOrDefaultWallpaper(FLAG_LOCK);
646654

647655
runWithShellPermissionIdentity(() -> {
648656
setWallpaperComponentAndWait(DEFAULT_COMPONENT_NAME, FLAG_LOCK);
649657
});
650658

651-
assertWithMessage("Home screen").that(
652-
mWallpaperManager.getWallpaperInfo(FLAG_SYSTEM)).isNull();
659+
assertNullOrDefaultWallpaper(FLAG_SYSTEM);
653660
assertWithMessage("Lock screen").that(
654661
mWallpaperManager.getWallpaperInfo(FLAG_LOCK)).isNotNull();
655662
}
@@ -1696,6 +1703,13 @@ private void ensureCleanState(int flags) {
16961703
}
16971704
}
16981705

1706+
private void assertNullOrDefaultWallpaper(int which) {
1707+
WallpaperInfo wallpaperInfo = mWallpaperManager.getWallpaperInfo(which);
1708+
if (mDefaultWallpaperInfo == null) assertThat(wallpaperInfo).isNull();
1709+
if (wallpaperInfo == null) return;
1710+
assertThat(wallpaperInfo.getComponent()).isEqualTo(mDefaultWallpaperInfo.getComponent());
1711+
}
1712+
16991713
private void setWallpaperComponentAndWait(ComponentName component, int which) {
17001714
mWallpaperManager.setWallpaperComponentWithFlags(component, which);
17011715
try {

0 commit comments

Comments
 (0)