Loading tests/src/com/android/launcher3/ui/DefaultLayoutProviderTest.java +8 −21 Original line number Diff line number Diff line Loading @@ -25,26 +25,23 @@ import android.net.Uri; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor.AutoCloseOutputStream; import androidx.test.InstrumentationRegistry; import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.testcomponent.TestCommandReceiver; import com.android.launcher3.util.LauncherLayoutBuilder; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.LauncherAppWidgetHostView; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import java.io.OutputStreamWriter; import androidx.test.InstrumentationRegistry; import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.UiSelector; @MediumTest @RunWith(AndroidJUnit4.class) public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { Loading @@ -71,7 +68,6 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_icon_on_hotseat() throws Exception { writeLayout(new LauncherLayoutBuilder().atHotseat(0).putApp(SETTINGS_APP, SETTINGS_APP)); Loading @@ -79,14 +75,10 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .description(getSettingsApp().getLabel().toString()); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); mLauncher.getWorkspace().getHotseatAppIcon(getSettingsApp().getLabel().toString()); } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_widget() throws Exception { // A non-restored widget with no config screen gets restored automatically. LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false); Loading @@ -100,13 +92,11 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .className(LauncherAppWidgetHostView.class).description(info.label); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); assertTrue("Widget is not present", mLauncher.getWorkspace().tryGetWidget(info.label, DEFAULT_UI_TIMEOUT) != null); } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_folder() throws Exception { writeLayout(new LauncherLayoutBuilder().atHotseat(0).putFolder(android.R.string.copy) .addApp(SETTINGS_APP, SETTINGS_APP) Loading @@ -118,10 +108,7 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .descriptionContains(mTargetContext.getString(android.R.string.copy)); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); mLauncher.getWorkspace().getHotseatFolder("Folder: Copy"); } @After Loading tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java +3 −7 Original line number Diff line number Diff line Loading @@ -28,8 +28,6 @@ import android.view.View; import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.By; import androidx.test.uiautomator.Until; import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; Loading @@ -38,6 +36,7 @@ import com.android.launcher3.Utilities; import com.android.launcher3.Workspace.ItemOperator; import com.android.launcher3.WorkspaceItemInfo; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.tapl.AddToHomeScreenPrompt; import com.android.launcher3.testcomponent.AppWidgetNoConfig; import com.android.launcher3.testcomponent.AppWidgetWithConfig; import com.android.launcher3.testcomponent.RequestPinItemActivity; Loading @@ -45,7 +44,6 @@ import com.android.launcher3.ui.AbstractLauncherUiTest; import com.android.launcher3.util.Condition; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.WidgetCell; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -159,13 +157,11 @@ public class RequestPinItemTest extends AbstractLauncherUiTest { // call the requested method to start the flow mTargetContext.sendBroadcast(RequestPinItemActivity.getCommandIntent( RequestPinItemActivity.class, activityMethod)); mLauncher.getWidgetCell(); final AddToHomeScreenPrompt addToHomeScreenPrompt = mLauncher.getAddToHomeScreenPrompt(); // Accept confirmation: BlockingBroadcastReceiver resultReceiver = new BlockingBroadcastReceiver(mCallbackAction); mDevice.wait(Until.findObject( By.text(mLauncher.isAvd() ? "ADD AUTOMATICALLY" : "Add automatically")), DEFAULT_UI_TIMEOUT).click(); addToHomeScreenPrompt.addAutomatically(); Intent result = resultReceiver.blockingGetIntent(); assertNotNull(result); mAppWidgetId = result.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1); Loading tests/tapl/com/android/launcher3/tapl/AddToHomeScreenPrompt.java 0 → 100644 +41 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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.tapl; import androidx.test.uiautomator.By; import androidx.test.uiautomator.UiObject2; public class AddToHomeScreenPrompt { private final LauncherInstrumentation mLauncher; private final UiObject2 mWidgetCell; AddToHomeScreenPrompt(LauncherInstrumentation launcher) { mLauncher = launcher; mWidgetCell = launcher.waitForLauncherObject(By.clazz( "com.android.launcher3.widget.WidgetCell")); mLauncher.assertNotNull("Can't find widget cell object", mWidgetCell); } public void addAutomatically() { mLauncher.waitForObjectInContainer( mWidgetCell.getParent().getParent().getParent().getParent(), By.text(LauncherInstrumentation.isAvd() ? "ADD AUTOMATICALLY" : "Add automatically")). click(); } } tests/tapl/com/android/launcher3/tapl/WidgetCell.java→tests/tapl/com/android/launcher3/tapl/Folder.java +12 −5 Original line number Diff line number Diff line Loading @@ -16,13 +16,20 @@ package com.android.launcher3.tapl; import android.widget.FrameLayout; import androidx.test.uiautomator.By; import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.UiObject2; public class WidgetCell { WidgetCell(LauncherInstrumentation launcher) { final UiObject2 widgetCell = launcher.waitForLauncherObject(By.clazz( "com.android.launcher3.widget.WidgetCell")); launcher.assertNotNull("Can't find widget cell object", widgetCell); /** * App folder in workspace/ */ public final class Folder { Folder(LauncherInstrumentation launcher, UiObject2 icon) { } static BySelector getSelector(String folderName, LauncherInstrumentation launcher) { return By.clazz(FrameLayout.class).desc(folderName).pkg(launcher.getLauncherPackageName()); } } tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +2 −2 Original line number Diff line number Diff line Loading @@ -503,9 +503,9 @@ public final class LauncherInstrumentation { } @NonNull public WidgetCell getWidgetCell() { public AddToHomeScreenPrompt getAddToHomeScreenPrompt() { try (LauncherInstrumentation.Closable c = addContextLayer("want to get widget cell")) { return new WidgetCell(this); return new AddToHomeScreenPrompt(this); } } Loading Loading
tests/src/com/android/launcher3/ui/DefaultLayoutProviderTest.java +8 −21 Original line number Diff line number Diff line Loading @@ -25,26 +25,23 @@ import android.net.Uri; import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor.AutoCloseOutputStream; import androidx.test.InstrumentationRegistry; import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.testcomponent.TestCommandReceiver; import com.android.launcher3.util.LauncherLayoutBuilder; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.LauncherAppWidgetHostView; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import java.io.OutputStreamWriter; import androidx.test.InstrumentationRegistry; import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.UiSelector; @MediumTest @RunWith(AndroidJUnit4.class) public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { Loading @@ -71,7 +68,6 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_icon_on_hotseat() throws Exception { writeLayout(new LauncherLayoutBuilder().atHotseat(0).putApp(SETTINGS_APP, SETTINGS_APP)); Loading @@ -79,14 +75,10 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .description(getSettingsApp().getLabel().toString()); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); mLauncher.getWorkspace().getHotseatAppIcon(getSettingsApp().getLabel().toString()); } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_widget() throws Exception { // A non-restored widget with no config screen gets restored automatically. LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false); Loading @@ -100,13 +92,11 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .className(LauncherAppWidgetHostView.class).description(info.label); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); assertTrue("Widget is not present", mLauncher.getWorkspace().tryGetWidget(info.label, DEFAULT_UI_TIMEOUT) != null); } @Test // Convert test to TAPL; b/131116002 public void testCustomProfileLoaded_with_folder() throws Exception { writeLayout(new LauncherLayoutBuilder().atHotseat(0).putFolder(android.R.string.copy) .addApp(SETTINGS_APP, SETTINGS_APP) Loading @@ -118,10 +108,7 @@ public class DefaultLayoutProviderTest extends AbstractLauncherUiTest { mActivityMonitor.startLauncher(); waitForModelLoaded(); // Verify widget present UiSelector selector = new UiSelector().packageName(mTargetContext.getPackageName()) .descriptionContains(mTargetContext.getString(android.R.string.copy)); assertTrue(mDevice.findObject(selector).waitForExists(DEFAULT_UI_TIMEOUT)); mLauncher.getWorkspace().getHotseatFolder("Folder: Copy"); } @After Loading
tests/src/com/android/launcher3/ui/widget/RequestPinItemTest.java +3 −7 Original line number Diff line number Diff line Loading @@ -28,8 +28,6 @@ import android.view.View; import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; import androidx.test.uiautomator.By; import androidx.test.uiautomator.Until; import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; Loading @@ -38,6 +36,7 @@ import com.android.launcher3.Utilities; import com.android.launcher3.Workspace.ItemOperator; import com.android.launcher3.WorkspaceItemInfo; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.tapl.AddToHomeScreenPrompt; import com.android.launcher3.testcomponent.AppWidgetNoConfig; import com.android.launcher3.testcomponent.AppWidgetWithConfig; import com.android.launcher3.testcomponent.RequestPinItemActivity; Loading @@ -45,7 +44,6 @@ import com.android.launcher3.ui.AbstractLauncherUiTest; import com.android.launcher3.util.Condition; import com.android.launcher3.util.Wait; import com.android.launcher3.util.rule.ShellCommandRule; import com.android.launcher3.widget.WidgetCell; import org.junit.Before; import org.junit.Rule; Loading Loading @@ -159,13 +157,11 @@ public class RequestPinItemTest extends AbstractLauncherUiTest { // call the requested method to start the flow mTargetContext.sendBroadcast(RequestPinItemActivity.getCommandIntent( RequestPinItemActivity.class, activityMethod)); mLauncher.getWidgetCell(); final AddToHomeScreenPrompt addToHomeScreenPrompt = mLauncher.getAddToHomeScreenPrompt(); // Accept confirmation: BlockingBroadcastReceiver resultReceiver = new BlockingBroadcastReceiver(mCallbackAction); mDevice.wait(Until.findObject( By.text(mLauncher.isAvd() ? "ADD AUTOMATICALLY" : "Add automatically")), DEFAULT_UI_TIMEOUT).click(); addToHomeScreenPrompt.addAutomatically(); Intent result = resultReceiver.blockingGetIntent(); assertNotNull(result); mAppWidgetId = result.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1); Loading
tests/tapl/com/android/launcher3/tapl/AddToHomeScreenPrompt.java 0 → 100644 +41 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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.tapl; import androidx.test.uiautomator.By; import androidx.test.uiautomator.UiObject2; public class AddToHomeScreenPrompt { private final LauncherInstrumentation mLauncher; private final UiObject2 mWidgetCell; AddToHomeScreenPrompt(LauncherInstrumentation launcher) { mLauncher = launcher; mWidgetCell = launcher.waitForLauncherObject(By.clazz( "com.android.launcher3.widget.WidgetCell")); mLauncher.assertNotNull("Can't find widget cell object", mWidgetCell); } public void addAutomatically() { mLauncher.waitForObjectInContainer( mWidgetCell.getParent().getParent().getParent().getParent(), By.text(LauncherInstrumentation.isAvd() ? "ADD AUTOMATICALLY" : "Add automatically")). click(); } }
tests/tapl/com/android/launcher3/tapl/WidgetCell.java→tests/tapl/com/android/launcher3/tapl/Folder.java +12 −5 Original line number Diff line number Diff line Loading @@ -16,13 +16,20 @@ package com.android.launcher3.tapl; import android.widget.FrameLayout; import androidx.test.uiautomator.By; import androidx.test.uiautomator.BySelector; import androidx.test.uiautomator.UiObject2; public class WidgetCell { WidgetCell(LauncherInstrumentation launcher) { final UiObject2 widgetCell = launcher.waitForLauncherObject(By.clazz( "com.android.launcher3.widget.WidgetCell")); launcher.assertNotNull("Can't find widget cell object", widgetCell); /** * App folder in workspace/ */ public final class Folder { Folder(LauncherInstrumentation launcher, UiObject2 icon) { } static BySelector getSelector(String folderName, LauncherInstrumentation launcher) { return By.clazz(FrameLayout.class).desc(folderName).pkg(launcher.getLauncherPackageName()); } }
tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +2 −2 Original line number Diff line number Diff line Loading @@ -503,9 +503,9 @@ public final class LauncherInstrumentation { } @NonNull public WidgetCell getWidgetCell() { public AddToHomeScreenPrompt getAddToHomeScreenPrompt() { try (LauncherInstrumentation.Closable c = addContextLayer("want to get widget cell")) { return new WidgetCell(this); return new AddToHomeScreenPrompt(this); } } Loading