Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt +8 −2 Original line number Diff line number Diff line Loading @@ -67,19 +67,25 @@ class IconTilesInteractorTest : SysuiTestCase() { } } @OptIn(ExperimentalCoroutinesApi::class) @Test fun resize_updatesSharedPreferences() = with(kosmos) { testScope.runTest { qsPreferencesRepository.setLargeTilesSpecs(setOf()) runCurrent() val latest by collectLastValue(qsPreferencesRepository.largeTilesSpecs) val spec = TileSpec.create("large") // Assert that the tile is added to the large tiles after resizing underTest.resize(spec, toIcon = false) underTest.resize(spec) runCurrent() assertThat(latest).contains(spec) // Assert that the tile is removed from the large tiles after resizing underTest.resize(spec, toIcon = true) underTest.resize(spec) runCurrent() assertThat(latest).doesNotContain(spec) } } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt +23 −16 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading @@ -37,15 +39,15 @@ class DragAndDropStateTest : SysuiTestCase() { @Test fun isMoving_returnsCorrectValue() { // Asserts no tiles is moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)).isFalse() } TestEditTiles.forEach { assertThat(underTest.isMoving(it.tile.tileSpec)).isFalse() } // Start the drag movement underTest.onStarted(TestEditTiles[0]) // Assert that the correct tile is marked as moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)) .isEqualTo(TestEditTiles[0].tileSpec == it.tileSpec) assertThat(underTest.isMoving(it.tile.tileSpec)) .isEqualTo(TestEditTiles[0].tile.tileSpec == it.tile.tileSpec) } } Loading @@ -55,11 +57,11 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.onStarted(TestEditTiles[0]) // Move the tile to the end of the list underTest.onMoved(listState.tiles[5].tileSpec) underTest.onMoved(listState.tiles[5].tile.tileSpec) assertThat(underTest.currentPosition()).isEqualTo(5) // Move the tile to the middle of the list underTest.onMoved(listState.tiles[2].tileSpec) underTest.onMoved(listState.tiles[2].tile.tileSpec) assertThat(underTest.currentPosition()).isEqualTo(2) } Loading @@ -69,13 +71,13 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.onStarted(TestEditTiles[0]) // Move the tile to the end of the list underTest.onMoved(listState.tiles[5].tileSpec) underTest.onMoved(listState.tiles[5].tile.tileSpec) // Drop the tile underTest.onDrop() // Asserts no tiles is moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)).isFalse() } TestEditTiles.forEach { assertThat(underTest.isMoving(it.tile.tileSpec)).isFalse() } } @Test Loading @@ -87,19 +89,24 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.movedOutOfBounds() // Asserts the moving tile is not current assertThat(listState.tiles.firstOrNull { it.tileSpec == TestEditTiles[0].tileSpec }) assertThat( listState.tiles.firstOrNull { it.tile.tileSpec == TestEditTiles[0].tile.tileSpec } ) .isNull() } companion object { private fun createEditTile(tileSpec: String): EditTileViewModel { return EditTileViewModel( private fun createEditTile(tileSpec: String): SizedTile<EditTileViewModel> { return SizedTileImpl( EditTileViewModel( tileSpec = TileSpec.create(tileSpec), icon = Icon.Resource(0, null), label = Text.Loaded("unused"), appName = null, isCurrent = true, availableEditActions = emptySet(), ), 1, ) } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt +20 −12 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading @@ -35,7 +37,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingNonExistentTile_tileAdded() { val newTile = createEditTile("other_tile", false) underTest.move(newTile, TestEditTiles[0].tileSpec) underTest.move(newTile, TestEditTiles[0].tile.tileSpec) assertThat(underTest.tiles[0]).isEqualTo(newTile) assertThat(underTest.tiles.subList(1, underTest.tiles.size)) Loading @@ -51,7 +53,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingTileToItself_listUnchanged() { underTest.move(TestEditTiles[0], TestEditTiles[0].tileSpec) underTest.move(TestEditTiles[0], TestEditTiles[0].tile.tileSpec) assertThat(underTest.tiles).containsExactly(*TestEditTiles.toTypedArray()) } Loading @@ -59,7 +61,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingTileToSameSection_listUpdates() { // Move tile at index 0 to index 1. Tile 0 should remain current. underTest.move(TestEditTiles[0], TestEditTiles[1].tileSpec) underTest.move(TestEditTiles[0], TestEditTiles[1].tile.tileSpec) // Assert the tiles 0 and 1 have changed places. assertThat(underTest.tiles[0]).isEqualTo(TestEditTiles[1]) Loading @@ -72,21 +74,27 @@ class EditTileListStateTest : SysuiTestCase() { fun removingTile_listUpdates() { // Remove tile at index 0 underTest.remove(TestEditTiles[0].tileSpec) underTest.remove(TestEditTiles[0].tile.tileSpec) // Assert the tile was removed assertThat(underTest.tiles).containsExactly(*TestEditTiles.subList(1, 6).toTypedArray()) } companion object { private fun createEditTile(tileSpec: String, isCurrent: Boolean): EditTileViewModel { return EditTileViewModel( private fun createEditTile( tileSpec: String, isCurrent: Boolean ): SizedTile<EditTileViewModel> { return SizedTileImpl( EditTileViewModel( tileSpec = TileSpec.create(tileSpec), icon = Icon.Resource(0, null), label = Text.Loaded("unused"), appName = null, isCurrent = isCurrent, availableEditActions = emptySet(), ), 1, ) } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/PaginatableGridLayoutTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.qs.panels.ui.compose import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.MockTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading Loading @@ -72,10 +72,10 @@ class PaginatableGridLayoutTest : SysuiTestCase() { } companion object { fun extraLargeTile() = SizedTile(MockTileViewModel(TileSpec.create("XLarge")), 3) fun extraLargeTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("XLarge")), 3) fun largeTile() = SizedTile(MockTileViewModel(TileSpec.create("large")), 2) fun largeTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("large")), 2) fun smallTile() = SizedTile(MockTileViewModel(TileSpec.create("small")), 1) fun smallTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("small")), 1) } } packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt +3 −3 Original line number Diff line number Diff line Loading @@ -40,15 +40,15 @@ constructor( @Application private val applicationScope: CoroutineScope ) { private val largeTilesSpecs = val largeTilesSpecs = preferencesInteractor.largeTilesSpecs .onEach { logChange(it) } .stateIn(applicationScope, SharingStarted.Eagerly, repo.defaultLargeTiles) fun isIconTile(spec: TileSpec): Boolean = !largeTilesSpecs.value.contains(spec) fun resize(spec: TileSpec, toIcon: Boolean) { if (toIcon) { fun resize(spec: TileSpec) { if (largeTilesSpecs.value.contains(spec)) { preferencesInteractor.setLargeTilesSpecs(largeTilesSpecs.value - spec) } else { preferencesInteractor.setLargeTilesSpecs(largeTilesSpecs.value + spec) Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractorTest.kt +8 −2 Original line number Diff line number Diff line Loading @@ -67,19 +67,25 @@ class IconTilesInteractorTest : SysuiTestCase() { } } @OptIn(ExperimentalCoroutinesApi::class) @Test fun resize_updatesSharedPreferences() = with(kosmos) { testScope.runTest { qsPreferencesRepository.setLargeTilesSpecs(setOf()) runCurrent() val latest by collectLastValue(qsPreferencesRepository.largeTilesSpecs) val spec = TileSpec.create("large") // Assert that the tile is added to the large tiles after resizing underTest.resize(spec, toIcon = false) underTest.resize(spec) runCurrent() assertThat(latest).contains(spec) // Assert that the tile is removed from the large tiles after resizing underTest.resize(spec, toIcon = true) underTest.resize(spec) runCurrent() assertThat(latest).doesNotContain(spec) } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/DragAndDropStateTest.kt +23 −16 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading @@ -37,15 +39,15 @@ class DragAndDropStateTest : SysuiTestCase() { @Test fun isMoving_returnsCorrectValue() { // Asserts no tiles is moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)).isFalse() } TestEditTiles.forEach { assertThat(underTest.isMoving(it.tile.tileSpec)).isFalse() } // Start the drag movement underTest.onStarted(TestEditTiles[0]) // Assert that the correct tile is marked as moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)) .isEqualTo(TestEditTiles[0].tileSpec == it.tileSpec) assertThat(underTest.isMoving(it.tile.tileSpec)) .isEqualTo(TestEditTiles[0].tile.tileSpec == it.tile.tileSpec) } } Loading @@ -55,11 +57,11 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.onStarted(TestEditTiles[0]) // Move the tile to the end of the list underTest.onMoved(listState.tiles[5].tileSpec) underTest.onMoved(listState.tiles[5].tile.tileSpec) assertThat(underTest.currentPosition()).isEqualTo(5) // Move the tile to the middle of the list underTest.onMoved(listState.tiles[2].tileSpec) underTest.onMoved(listState.tiles[2].tile.tileSpec) assertThat(underTest.currentPosition()).isEqualTo(2) } Loading @@ -69,13 +71,13 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.onStarted(TestEditTiles[0]) // Move the tile to the end of the list underTest.onMoved(listState.tiles[5].tileSpec) underTest.onMoved(listState.tiles[5].tile.tileSpec) // Drop the tile underTest.onDrop() // Asserts no tiles is moving TestEditTiles.forEach { assertThat(underTest.isMoving(it.tileSpec)).isFalse() } TestEditTiles.forEach { assertThat(underTest.isMoving(it.tile.tileSpec)).isFalse() } } @Test Loading @@ -87,19 +89,24 @@ class DragAndDropStateTest : SysuiTestCase() { underTest.movedOutOfBounds() // Asserts the moving tile is not current assertThat(listState.tiles.firstOrNull { it.tileSpec == TestEditTiles[0].tileSpec }) assertThat( listState.tiles.firstOrNull { it.tile.tileSpec == TestEditTiles[0].tile.tileSpec } ) .isNull() } companion object { private fun createEditTile(tileSpec: String): EditTileViewModel { return EditTileViewModel( private fun createEditTile(tileSpec: String): SizedTile<EditTileViewModel> { return SizedTileImpl( EditTileViewModel( tileSpec = TileSpec.create(tileSpec), icon = Icon.Resource(0, null), label = Text.Loaded("unused"), appName = null, isCurrent = true, availableEditActions = emptySet(), ), 1, ) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/EditTileListStateTest.kt +20 −12 Original line number Diff line number Diff line Loading @@ -21,6 +21,8 @@ import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.EditTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading @@ -35,7 +37,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingNonExistentTile_tileAdded() { val newTile = createEditTile("other_tile", false) underTest.move(newTile, TestEditTiles[0].tileSpec) underTest.move(newTile, TestEditTiles[0].tile.tileSpec) assertThat(underTest.tiles[0]).isEqualTo(newTile) assertThat(underTest.tiles.subList(1, underTest.tiles.size)) Loading @@ -51,7 +53,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingTileToItself_listUnchanged() { underTest.move(TestEditTiles[0], TestEditTiles[0].tileSpec) underTest.move(TestEditTiles[0], TestEditTiles[0].tile.tileSpec) assertThat(underTest.tiles).containsExactly(*TestEditTiles.toTypedArray()) } Loading @@ -59,7 +61,7 @@ class EditTileListStateTest : SysuiTestCase() { @Test fun movingTileToSameSection_listUpdates() { // Move tile at index 0 to index 1. Tile 0 should remain current. underTest.move(TestEditTiles[0], TestEditTiles[1].tileSpec) underTest.move(TestEditTiles[0], TestEditTiles[1].tile.tileSpec) // Assert the tiles 0 and 1 have changed places. assertThat(underTest.tiles[0]).isEqualTo(TestEditTiles[1]) Loading @@ -72,21 +74,27 @@ class EditTileListStateTest : SysuiTestCase() { fun removingTile_listUpdates() { // Remove tile at index 0 underTest.remove(TestEditTiles[0].tileSpec) underTest.remove(TestEditTiles[0].tile.tileSpec) // Assert the tile was removed assertThat(underTest.tiles).containsExactly(*TestEditTiles.subList(1, 6).toTypedArray()) } companion object { private fun createEditTile(tileSpec: String, isCurrent: Boolean): EditTileViewModel { return EditTileViewModel( private fun createEditTile( tileSpec: String, isCurrent: Boolean ): SizedTile<EditTileViewModel> { return SizedTileImpl( EditTileViewModel( tileSpec = TileSpec.create(tileSpec), icon = Icon.Resource(0, null), label = Text.Loaded("unused"), appName = null, isCurrent = isCurrent, availableEditActions = emptySet(), ), 1, ) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/qs/panels/ui/compose/PaginatableGridLayoutTest.kt +4 −4 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.qs.panels.ui.compose import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.qs.panels.shared.model.SizedTile import com.android.systemui.qs.panels.shared.model.SizedTileImpl import com.android.systemui.qs.panels.ui.viewmodel.MockTileViewModel import com.android.systemui.qs.pipeline.shared.TileSpec import com.google.common.truth.Truth.assertThat Loading Loading @@ -72,10 +72,10 @@ class PaginatableGridLayoutTest : SysuiTestCase() { } companion object { fun extraLargeTile() = SizedTile(MockTileViewModel(TileSpec.create("XLarge")), 3) fun extraLargeTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("XLarge")), 3) fun largeTile() = SizedTile(MockTileViewModel(TileSpec.create("large")), 2) fun largeTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("large")), 2) fun smallTile() = SizedTile(MockTileViewModel(TileSpec.create("small")), 1) fun smallTile() = SizedTileImpl(MockTileViewModel(TileSpec.create("small")), 1) } }
packages/SystemUI/src/com/android/systemui/qs/panels/domain/interactor/IconTilesInteractor.kt +3 −3 Original line number Diff line number Diff line Loading @@ -40,15 +40,15 @@ constructor( @Application private val applicationScope: CoroutineScope ) { private val largeTilesSpecs = val largeTilesSpecs = preferencesInteractor.largeTilesSpecs .onEach { logChange(it) } .stateIn(applicationScope, SharingStarted.Eagerly, repo.defaultLargeTiles) fun isIconTile(spec: TileSpec): Boolean = !largeTilesSpecs.value.contains(spec) fun resize(spec: TileSpec, toIcon: Boolean) { if (toIcon) { fun resize(spec: TileSpec) { if (largeTilesSpecs.value.contains(spec)) { preferencesInteractor.setLargeTilesSpecs(largeTilesSpecs.value - spec) } else { preferencesInteractor.setLargeTilesSpecs(largeTilesSpecs.value + spec) Loading