1 /* 2 * Copyright (C) 2022 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 17 package com.android.systemui.complication; 18 19 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_AIR_QUALITY; 20 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_CAST_INFO; 21 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_DATE; 22 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_HOME_CONTROLS; 23 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_MEDIA_ENTRY; 24 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_SMARTSPACE; 25 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_TIME; 26 import static com.android.systemui.complication.Complication.COMPLICATION_TYPE_WEATHER; 27 import static com.android.systemui.complication.ComplicationUtils.convertComplicationType; 28 import static com.android.systemui.complication.ComplicationUtils.convertComplicationTypes; 29 30 31 import static com.google.common.truth.Truth.assertThat; 32 33 import android.testing.AndroidTestingRunner; 34 35 import androidx.test.filters.SmallTest; 36 37 import com.android.settingslib.dream.DreamBackend; 38 import com.android.systemui.SysuiTestCase; 39 40 import org.junit.Test; 41 import org.junit.runner.RunWith; 42 43 import java.util.Arrays; 44 import java.util.Collections; 45 import java.util.HashSet; 46 import java.util.Set; 47 48 @SmallTest 49 @RunWith(AndroidTestingRunner.class) 50 public class ComplicationUtilsTest extends SysuiTestCase { 51 @Test testConvertComplicationType()52 public void testConvertComplicationType() { 53 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_TIME)) 54 .isEqualTo(COMPLICATION_TYPE_TIME); 55 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_DATE)) 56 .isEqualTo(COMPLICATION_TYPE_DATE); 57 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_WEATHER)) 58 .isEqualTo(COMPLICATION_TYPE_WEATHER); 59 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_AIR_QUALITY)) 60 .isEqualTo(COMPLICATION_TYPE_AIR_QUALITY); 61 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_CAST_INFO)) 62 .isEqualTo(COMPLICATION_TYPE_CAST_INFO); 63 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_HOME_CONTROLS)) 64 .isEqualTo(COMPLICATION_TYPE_HOME_CONTROLS); 65 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_SMARTSPACE)) 66 .isEqualTo(COMPLICATION_TYPE_SMARTSPACE); 67 assertThat(convertComplicationType(DreamBackend.COMPLICATION_TYPE_MEDIA_ENTRY)) 68 .isEqualTo(COMPLICATION_TYPE_MEDIA_ENTRY); 69 } 70 71 @Test testConvertComplicationTypesEmpty()72 public void testConvertComplicationTypesEmpty() { 73 final Set<Integer> input = new HashSet<>(); 74 final int expected = Complication.COMPLICATION_TYPE_NONE; 75 76 assertThat(convertComplicationTypes(input)).isEqualTo(expected); 77 } 78 79 @Test testConvertComplicationTypesSingleValue()80 public void testConvertComplicationTypesSingleValue() { 81 final Set<Integer> input = new HashSet<>( 82 Collections.singleton(DreamBackend.COMPLICATION_TYPE_WEATHER)); 83 final int expected = Complication.COMPLICATION_TYPE_WEATHER; 84 85 assertThat(convertComplicationTypes(input)).isEqualTo(expected); 86 } 87 88 @Test testConvertComplicationTypesSingleValueMultipleValues()89 public void testConvertComplicationTypesSingleValueMultipleValues() { 90 final Set<Integer> input = new HashSet<>( 91 Arrays.asList(DreamBackend.COMPLICATION_TYPE_TIME, 92 DreamBackend.COMPLICATION_TYPE_DATE, 93 DreamBackend.COMPLICATION_TYPE_WEATHER, 94 DreamBackend.COMPLICATION_TYPE_AIR_QUALITY, 95 DreamBackend.COMPLICATION_TYPE_CAST_INFO)); 96 final int expected = 97 Complication.COMPLICATION_TYPE_TIME | Complication.COMPLICATION_TYPE_DATE 98 | Complication.COMPLICATION_TYPE_WEATHER | COMPLICATION_TYPE_AIR_QUALITY 99 | COMPLICATION_TYPE_CAST_INFO; 100 101 assertThat(convertComplicationTypes(input)).isEqualTo(expected); 102 } 103 } 104