From 696d3f48f7959a981b117b71e962817033b251d5 Mon Sep 17 00:00:00 2001 From: Anushree Ganjam Date: Wed, 17 Jul 2024 18:34:40 -0700 Subject: [PATCH 01/11] Add SEARCH_TARGET_UTIL_LOG for debugging searchtargetutil logs Bug: 352067203 Test: Manual Flag: EXEMPT bugfix Change-Id: I27b7c29ae0400f2ff3fb8336cee0eec0d962ac1b --- src/com/android/launcher3/util/LogConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/android/launcher3/util/LogConfig.java b/src/com/android/launcher3/util/LogConfig.java index 3d4b409cf8..f183f18050 100644 --- a/src/com/android/launcher3/util/LogConfig.java +++ b/src/com/android/launcher3/util/LogConfig.java @@ -76,4 +76,5 @@ public class LogConfig { * When turned on, we enable zero state web data loader related logging. */ public static final String ZERO_WEB_DATA_LOADER = "ZeroStateWebDataLoaderLog"; + public static final String SEARCH_TARGET_UTIL_LOG = "SearchTargetUtilLog"; } From 85392b745f0f572aa25363fa20d28b7733172423 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Fri, 19 Jul 2024 16:56:53 -0700 Subject: [PATCH 02/11] Add unit test for FolderNameInfosTest Bug: 353588686 Flag: TEST_ONLY Test: FolderNameInfosTest Change-Id: I77b703548be5d45669800946874c5245e96e9b37 --- .../launcher3/folder/FolderNameInfosTest.kt | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 tests/src/com/android/launcher3/folder/FolderNameInfosTest.kt diff --git a/tests/src/com/android/launcher3/folder/FolderNameInfosTest.kt b/tests/src/com/android/launcher3/folder/FolderNameInfosTest.kt new file mode 100644 index 0000000000..b491f17f5f --- /dev/null +++ b/tests/src/com/android/launcher3/folder/FolderNameInfosTest.kt @@ -0,0 +1,201 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3.folder + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.filters.SmallTest +import com.android.launcher3.folder.FolderNameInfos.* +import org.junit.Test +import org.junit.runner.RunWith + +data class Label(val index: Int, val label: String, val score: Float) + +@SmallTest +@RunWith(AndroidJUnit4::class) +class FolderNameInfosTest { + + companion object { + val statusList = + listOf( + SUCCESS, + HAS_PRIMARY, + HAS_SUGGESTIONS, + ERROR_NO_PROVIDER, + ERROR_APP_LOOKUP_FAILED, + ERROR_ALL_APP_LOOKUP_FAILED, + ERROR_NO_LABELS_GENERATED, + ERROR_LABEL_LOOKUP_FAILED, + ERROR_ALL_LABEL_LOOKUP_FAILED, + ERROR_NO_PACKAGES, + ) + } + + @Test + fun status() { + assertStatus(statusList) + assertStatus( + listOf( + ERROR_NO_PROVIDER, + ERROR_APP_LOOKUP_FAILED, + ERROR_ALL_APP_LOOKUP_FAILED, + ERROR_NO_LABELS_GENERATED, + ERROR_LABEL_LOOKUP_FAILED, + ERROR_ALL_LABEL_LOOKUP_FAILED, + ERROR_NO_PACKAGES, + ) + ) + assertStatus( + listOf( + SUCCESS, + HAS_PRIMARY, + HAS_SUGGESTIONS, + ) + ) + assertStatus( + listOf( + SUCCESS, + HAS_PRIMARY, + HAS_SUGGESTIONS, + ) + ) + } + + fun assertStatus(statusList: List) { + var infos = FolderNameInfos() + statusList.forEach { infos.setStatus(it) } + assert(infos.status() == statusList.sum()) { + "There is an overlap on the status constants!" + } + } + + @Test + fun hasPrimary() { + assertHasPrimary( + createNameInfos(listOf(Label(0, "label", 1f)), statusList), + hasPrimary = true + ) + assertHasPrimary( + createNameInfos(listOf(Label(1, "label", 1f)), statusList), + hasPrimary = false + ) + assertHasPrimary( + createNameInfos( + listOf(Label(0, "label", 1f)), + listOf( + ERROR_NO_PROVIDER, + ERROR_APP_LOOKUP_FAILED, + ERROR_ALL_APP_LOOKUP_FAILED, + ERROR_NO_LABELS_GENERATED, + ERROR_LABEL_LOOKUP_FAILED, + ERROR_ALL_LABEL_LOOKUP_FAILED, + ERROR_NO_PACKAGES, + ) + ), + hasPrimary = false + ) + } + + private fun assertHasPrimary(nameInfos: FolderNameInfos, hasPrimary: Boolean) = + assert(nameInfos.hasPrimary() == hasPrimary) + + private fun createNameInfos(labels: List