Merge "Prevent Kotlin NPE" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-24 18:46:15 +00:00
committed by Android (Google) Code Review
2 changed files with 26 additions and 0 deletions

View File

@@ -118,6 +118,7 @@ public class TileQueryHelper {
if (tile == null) {
continue;
} else if (!tile.isAvailable()) {
tile.setTileSpec(spec);
tile.destroy();
continue;
}

View File

@@ -23,6 +23,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doAnswer;
@@ -49,6 +50,10 @@ import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tiles.HotspotTile;
import com.android.systemui.statusbar.policy.DataSaverController;
import com.android.systemui.statusbar.policy.HotspotController;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;
@@ -94,6 +99,8 @@ public class TileQueryHelperTest extends SysuiTestCase {
private QSTileHost mQSTileHost;
@Mock
private PackageManager mPackageManager;
@Mock
private QSLogger mQSLogger;
@Captor
private ArgumentCaptor<List<TileQueryHelper.TileInfo>> mCaptor;
@@ -106,6 +113,7 @@ public class TileQueryHelperTest extends SysuiTestCase {
public void setup() {
MockitoAnnotations.initMocks(this);
mContext.setMockPackageManager(mPackageManager);
when(mQSTileHost.getQSLogger()).thenReturn(mQSLogger);
mState = new QSTile.State();
doAnswer(invocation -> {
@@ -269,4 +277,21 @@ public class TileQueryHelperTest extends SysuiTestCase {
STOCK_TILES);
mTileQueryHelper.queryTiles(mQSTileHost);
}
@Test
public void testQueryTiles_notAvailableDestroyed_isNotNullSpec() {
HotspotController mockHC = mock(HotspotController.class);
DataSaverController mockDSC = mock(DataSaverController.class);
when(mockHC.isHotspotSupported()).thenReturn(false);
HotspotTile t = new HotspotTile(mQSTileHost, mockHC, mockDSC);
when(mQSTileHost.createTile("hotspot")).thenReturn(t);
mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock,
"hotspot");
mTileQueryHelper.queryTiles(mQSTileHost);
FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor);
verify(mQSLogger).logTileDestroyed(eq("hotspot"), anyString());
}
}