diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2018-10-05 16:19:38 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2018-10-09 14:25:01 -0700 |
commit | 4ed58d6c03aa8e158ef3435598b5ecfd44460fbe (patch) | |
tree | 96e502d1f646bb62cd700fca6e8149f540586a1a /tests/src/com/android/launcher3/testcomponent | |
parent | 972045236311f884b61486954b4dce4f5ed7ac60 (diff) | |
download | android_packages_apps_Trebuchet-4ed58d6c03aa8e158ef3435598b5ecfd44460fbe.tar.gz android_packages_apps_Trebuchet-4ed58d6c03aa8e158ef3435598b5ecfd44460fbe.tar.bz2 android_packages_apps_Trebuchet-4ed58d6c03aa8e158ef3435598b5ecfd44460fbe.zip |
Adding tests for fallback recents when a 3rd party launcher is installed
Change-Id: I1d4da13cc779f49832008b12b9628d01631faffe
Diffstat (limited to 'tests/src/com/android/launcher3/testcomponent')
-rw-r--r-- | tests/src/com/android/launcher3/testcomponent/TestCommandReceiver.java | 96 | ||||
-rw-r--r-- | tests/src/com/android/launcher3/testcomponent/TestLauncherActivity.java | 34 |
2 files changed, 130 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/testcomponent/TestCommandReceiver.java b/tests/src/com/android/launcher3/testcomponent/TestCommandReceiver.java new file mode 100644 index 000000000..04c04f5b1 --- /dev/null +++ b/tests/src/com/android/launcher3/testcomponent/TestCommandReceiver.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2018 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.testcomponent; + +import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED; +import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED; +import static android.content.pm.PackageManager.DONT_KILL_APP; + +import android.app.Instrumentation; +import android.content.ComponentName; +import android.content.ContentProvider; +import android.content.ContentValues; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; + +import androidx.test.InstrumentationRegistry; + +/** + * Content provider to receive commands from tests + */ +public class TestCommandReceiver extends ContentProvider { + + public static final String ENABLE_TEST_LAUNCHER = "enable-test-launcher"; + public static final String DISABLE_TEST_LAUNCHER = "disable-test-launcher"; + + @Override + public boolean onCreate() { + return true; + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + throw new UnsupportedOperationException("unimplemented mock method"); + } + + @Override + public String getType(Uri uri) { + throw new UnsupportedOperationException("unimplemented mock method"); + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + throw new UnsupportedOperationException("unimplemented mock method"); + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + String sortOrder) { + throw new UnsupportedOperationException("unimplemented mock method"); + } + + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + throw new UnsupportedOperationException("unimplemented mock method"); + } + + @Override + public Bundle call(String method, String arg, Bundle extras) { + switch (method) { + case ENABLE_TEST_LAUNCHER: { + getContext().getPackageManager().setComponentEnabledSetting( + new ComponentName(getContext(), TestLauncherActivity.class), + COMPONENT_ENABLED_STATE_ENABLED, DONT_KILL_APP); + return null; + } + case DISABLE_TEST_LAUNCHER: { + getContext().getPackageManager().setComponentEnabledSetting( + new ComponentName(getContext(), TestLauncherActivity.class), + COMPONENT_ENABLED_STATE_DISABLED, DONT_KILL_APP); + return null; + } + + } + return super.call(method, arg, extras); + } + + public static Bundle callCommand(String command) { + Instrumentation inst = InstrumentationRegistry.getInstrumentation(); + Uri uri = Uri.parse("content://" + inst.getContext().getPackageName() + ".commands"); + return inst.getTargetContext().getContentResolver().call(uri, command, null, null); + } +} diff --git a/tests/src/com/android/launcher3/testcomponent/TestLauncherActivity.java b/tests/src/com/android/launcher3/testcomponent/TestLauncherActivity.java new file mode 100644 index 000000000..357a2322d --- /dev/null +++ b/tests/src/com/android/launcher3/testcomponent/TestLauncherActivity.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2018 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.testcomponent; + +import static android.content.Intent.ACTION_MAIN; +import static android.content.Intent.CATEGORY_LAUNCHER; +import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; +import static android.content.Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED; + +import android.app.LauncherActivity; +import android.content.Intent; + +public class TestLauncherActivity extends LauncherActivity { + + @Override + protected Intent getTargetIntent() { + return new Intent(ACTION_MAIN, null) + .addCategory(CATEGORY_LAUNCHER) + .addFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); + } +} |