• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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