Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af5017c6 authored by c's avatar c Committed by Hui Kang
Browse files

Add launch assistant method.

Test: manual atest

Local test with atest on cf_x86_64_phone: 100/100 PASS.
ABTD 100/100 PASS: https://android-build.googleplex.com/builds/abtd/run/L71100000956341271

Change-Id: Ib9276d1cc395f134d77ba0237d94f4f23a3485b3
parent c9be6ca8
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -15,18 +15,56 @@
 */
package com.android.launcher3.tapl;

import androidx.annotation.NonNull;
import androidx.test.uiautomator.By;
import androidx.test.uiautomator.BySelector;
import androidx.test.uiautomator.UiObject2;
import androidx.test.uiautomator.Until;

/**
 * Operations on home screen qsb.
 */
public class HomeQsb {

    private final LauncherInstrumentation mLauncher;
    private static final String ASSISTANT_APP_PACKAGE = "com.google.android.googlequicksearchbox";
    private static final String ASSISTANT_ICON_RES_ID = "mic_icon";


    HomeQsb(LauncherInstrumentation launcher) {
        mLauncher = launcher;
        mLauncher.waitForLauncherObject("search_container_hotseat");
    }

    /**
     * Launch assistant app by tapping mic icon on qsb.
     */
    @NonNull
    public LaunchedAppState launchAssistant() {
        try (LauncherInstrumentation.Closable c = mLauncher.addContextLayer(
                "want to click assistant mic icon button");
             LauncherInstrumentation.Closable e = mLauncher.eventsCheck()) {
            UiObject2 assistantIcon = mLauncher.waitForLauncherObject(ASSISTANT_ICON_RES_ID);

            LauncherInstrumentation.log("HomeQsb.launchAssistant before click "
                    + assistantIcon.getVisibleCenter() + " in "
                    + mLauncher.getVisibleBounds(assistantIcon));

            mLauncher.clickLauncherObject(assistantIcon);

            try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
                // assert Assistant App Launched
                BySelector selector = By.pkg(ASSISTANT_APP_PACKAGE);
                mLauncher.assertTrue(
                        "assistant app didn't start: (" + selector + ")",
                        mLauncher.getDevice().wait(Until.hasObject(selector),
                                LauncherInstrumentation.WAIT_TIME_MS)
                );
                return new LaunchedAppState(mLauncher);
            }
        }
    }

    /**
     * Show search result page from tapping qsb.
     */