From ca60facfdc0aea84051b47d7dc93d6d961bf2516 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Wed, 2 Nov 2016 15:54:53 -0700 Subject: [PATCH] Filter external setting intents using IA_SETTING keyword. Also add test for CategoryKey Bug: 32382487 Bug: 32460089 Test: make RunSettingsLibRoboTests Change-Id: I0ed6278344a545b5fc952f5811322857382e4b60 --- .../com/android/settingslib/drawer/TileUtils.java | 8 +++ packages/SettingsLib/tests/robotests/readme.md | 6 ++ .../settingslib/drawer/CategoryKeyTest.java | 64 ++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 packages/SettingsLib/tests/robotests/readme.md create mode 100644 packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java index ac10ca8d53a9..944245802d7b 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java @@ -65,6 +65,13 @@ public class TileUtils { "com.android.settings.action.EXTRA_SETTINGS"; /** + * @See {@link #EXTRA_SETTINGS_ACTION}. + */ + private static final String IA_SETTINGS_ACTION = + "com.android.settings.action.IA_SETTINGS"; + + + /** * Same as #EXTRA_SETTINGS_ACTION but used for the platform Settings activities. */ private static final String SETTINGS_ACTION = @@ -148,6 +155,7 @@ public class TileUtils { } if (setup) { getTilesForAction(context, user, EXTRA_SETTINGS_ACTION, cache, null, tiles, false); + getTilesForAction(context, user, IA_SETTINGS_ACTION, cache, null, tiles, false); } } diff --git a/packages/SettingsLib/tests/robotests/readme.md b/packages/SettingsLib/tests/robotests/readme.md new file mode 100644 index 000000000000..fefe3bf6000a --- /dev/null +++ b/packages/SettingsLib/tests/robotests/readme.md @@ -0,0 +1,6 @@ +Unit test suite for SettingsLib using Robolectric. + +``` +$ croot +$ make RunSettingsLibRoboTests -j40 +``` \ No newline at end of file diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java new file mode 100644 index 000000000000..f93c56607ced --- /dev/null +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2016 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.settingslib.drawer; + +import android.util.ArraySet; + +import com.android.settingslib.TestConfig; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +import java.util.Set; + +import static com.google.common.truth.Truth.assertThat; + +@RunWith(RobolectricTestRunner.class) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +public class CategoryKeyTest { + + @Test + public void testKeyCompatMap_allOldCategoryKeyAreMapped() { + assertThat(CategoryKey.KEY_COMPAT_MAP.size()).isEqualTo(4); + } + + @Test + public void removingAnyKeyBreaksCompiler() { + // The keys in this test can be added but cannot be removed. Removing any key will remove + // categories from Settings app. Bad things will happen. + final Set allKeys = new ArraySet<>(); + + // DO NOT REMOVE ANYTHING BELOW + allKeys.add(CategoryKey.CATEGORY_HOMEPAGE); + allKeys.add(CategoryKey.CATEGORY_DEVICE); + allKeys.add(CategoryKey.CATEGORY_APPS); + allKeys.add(CategoryKey.CATEGORY_APPS_DEFAULT); + allKeys.add(CategoryKey.CATEGORY_BATTERY); + allKeys.add(CategoryKey.CATEGORY_DISPLAY); + allKeys.add(CategoryKey.CATEGORY_SOUND); + allKeys.add(CategoryKey.CATEGORY_STORAGE); + allKeys.add(CategoryKey.CATEGORY_SECURITY); + allKeys.add(CategoryKey.CATEGORY_ACCOUNT); + allKeys.add(CategoryKey.CATEGORY_SYSTEM); + // DO NOT REMOVE ANYTHING ABOVE + + assertThat(allKeys.size()).isEqualTo(11); + } + +} -- 2.11.0