1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.launcher3.celllayout; 17 18 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP; 19 import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT; 20 21 import static com.google.common.truth.Truth.assertThat; 22 23 import androidx.test.ext.junit.runners.AndroidJUnit4; 24 import androidx.test.filters.SmallTest; 25 26 import com.android.launcher3.celllayout.CellPosMapper.CellPos; 27 import com.android.launcher3.celllayout.CellPosMapper.TwoPanelCellPosMapper; 28 import com.android.launcher3.model.data.ItemInfo; 29 30 import org.junit.Test; 31 import org.junit.runner.RunWith; 32 33 /** 34 * Tests for {@link CellPosMapper} 35 */ 36 @SmallTest 37 @RunWith(AndroidJUnit4.class) 38 public class CellPosMapperTest { 39 40 @Test testMapModelToPresenter_default()41 public void testMapModelToPresenter_default() { 42 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 43 createInfo(0, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 0)); 44 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 45 createInfo(0, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 1)); 46 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 47 createInfo(5, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 1)); 48 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 49 createInfo(5, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 0)); 50 51 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 52 createInfo(0, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 0)); 53 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 54 createInfo(0, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 1)); 55 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 56 createInfo(5, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 1)); 57 assertThat(CellPosMapper.DEFAULT.mapModelToPresenter( 58 createInfo(5, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 0)); 59 } 60 61 @Test testMapPresenterToModel_default()62 public void testMapPresenterToModel_default() { 63 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 64 0, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 0)); 65 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 66 0, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 1)); 67 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 68 5, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 1)); 69 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 70 5, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 0)); 71 72 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 73 0, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 0)); 74 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 75 0, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 1)); 76 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 77 5, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 1)); 78 assertThat(CellPosMapper.DEFAULT.mapPresenterToModel( 79 5, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 0)); 80 } 81 82 @Test testMapModelToPresenter_twoPanel()83 public void testMapModelToPresenter_twoPanel() { 84 CellPosMapper mapper = new TwoPanelCellPosMapper(8); 85 assertThat(mapper.mapModelToPresenter( 86 createInfo(0, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(0, 0, 0)); 87 assertThat(mapper.mapModelToPresenter( 88 createInfo(0, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(8, 0, 0)); 89 assertThat(mapper.mapModelToPresenter( 90 createInfo(5, 0, 1, CONTAINER_DESKTOP))).isEqualTo(new CellPos(13, 0, 0)); 91 assertThat(mapper.mapModelToPresenter( 92 createInfo(5, 0, 0, CONTAINER_DESKTOP))).isEqualTo(new CellPos(5, 0, 0)); 93 94 assertThat(mapper.mapModelToPresenter( 95 createInfo(0, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 0)); 96 assertThat(mapper.mapModelToPresenter( 97 createInfo(0, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(0, 0, 1)); 98 assertThat(mapper.mapModelToPresenter( 99 createInfo(5, 0, 1, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 1)); 100 assertThat(mapper.mapModelToPresenter( 101 createInfo(5, 0, 0, CONTAINER_HOTSEAT))).isEqualTo(new CellPos(5, 0, 0)); 102 } 103 104 @Test testMapPresenterToModel_twoPanel()105 public void testMapPresenterToModel_twoPanel() { 106 CellPosMapper mapper = new TwoPanelCellPosMapper(3); 107 assertThat(mapper.mapPresenterToModel( 108 0, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 0)); 109 assertThat(mapper.mapPresenterToModel( 110 0, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(0, 0, 1)); 111 assertThat(mapper.mapPresenterToModel( 112 5, 0, 1, CONTAINER_DESKTOP)).isEqualTo(new CellPos(5, 0, 1)); 113 assertThat(mapper.mapPresenterToModel( 114 5, 0, 0, CONTAINER_DESKTOP)).isEqualTo(new CellPos(2, 0, 1)); 115 116 assertThat(mapper.mapPresenterToModel( 117 0, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 0)); 118 assertThat(mapper.mapPresenterToModel( 119 0, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(0, 0, 1)); 120 assertThat(mapper.mapPresenterToModel( 121 5, 0, 1, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 1)); 122 assertThat(mapper.mapPresenterToModel( 123 5, 0, 0, CONTAINER_HOTSEAT)).isEqualTo(new CellPos(5, 0, 0)); 124 } 125 createInfo(int cellX, int cellY, int screen, int container)126 private ItemInfo createInfo(int cellX, int cellY, int screen, int container) { 127 ItemInfo info = new ItemInfo(); 128 info.cellX = cellX; 129 info.cellY = cellY; 130 info.screenId = screen; 131 info.container = container; 132 return info; 133 } 134 } 135