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

Commit e94baee9 authored by Pinyao Ting's avatar Pinyao Ting
Browse files

include integration test for open settings menu from workspace

Bug: 146432215
Change-Id: I2d42984dd77506385230744361ae74944cc9b3bd
parent 28a28762
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ import com.android.launcher3.widget.WidgetsFullSheet;
import java.util.ArrayList;
import java.util.List;


/**
 * Popup shown on long pressing an empty space in launcher
 */
+14 −0
Original line number Diff line number Diff line
@@ -18,6 +18,9 @@ package com.android.launcher3.ui;

import static androidx.test.InstrumentationRegistry.getInstrumentation;

import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL;
import static com.android.launcher3.util.rule.TestStabilityRule.UNBUNDLED_POSTSUBMIT;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -36,6 +39,7 @@ import com.android.launcher3.tapl.AppIconMenu;
import com.android.launcher3.tapl.AppIconMenuItem;
import com.android.launcher3.tapl.Widgets;
import com.android.launcher3.tapl.Workspace;
import com.android.launcher3.util.rule.TestStabilityRule.Stability;
import com.android.launcher3.views.OptionsPopupView;
import com.android.launcher3.widget.WidgetsFullSheet;
import com.android.launcher3.widget.WidgetsRecyclerView;
@@ -100,6 +104,16 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest {
        mLauncher.pressHome();
    }

    // b/146432215: remove @Stability after 1/1/2020 if this test doesn't flake
    @Test
    @Stability(flavors = LOCAL | UNBUNDLED_POSTSUBMIT)
    public void testOpenHomeSettingsFromWorkspace() {
        mDevice.pressMenu();
        mDevice.waitForIdle();
        mLauncher.getWorkspace().getMenu().getMenuItem("Home settings").launch(
                "com.google.android.apps.nexuslauncher");
    }

    @Test
    @Ignore
    public void testPressHomeOnAllAppsContextMenu() throws Exception {
+2 −11
Original line number Diff line number Diff line
@@ -16,9 +16,6 @@

package com.android.launcher3.tapl;

import android.graphics.Point;
import android.os.SystemClock;
import android.view.MotionEvent;
import android.widget.TextView;

import androidx.test.uiautomator.By;
@@ -41,14 +38,8 @@ public final class AppIcon extends Launchable {
     * Long-clicks the icon to open its menu.
     */
    public AppIconMenu openMenu() {
        final Point iconCenter = mObject.getVisibleCenter();
        final long downTime = SystemClock.uptimeMillis();
        mLauncher.sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, iconCenter);
        final UiObject2 deepShortcutsContainer = mLauncher.waitForLauncherObject(
                "deep_shortcuts_container");
        mLauncher.sendPointer(
                downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, iconCenter);
        return new AppIconMenu(mLauncher, deepShortcutsContainer);
        return new AppIconMenu(mLauncher, mLauncher.clickAndGet(
                mObject, "deep_shortcuts_container"));
    }

    @Override
+10 −0
Original line number Diff line number Diff line
@@ -989,6 +989,16 @@ public final class LauncherInstrumentation {
        return getSystemIntegerRes(context, "config_navBarInteractionMode");
    }

    @NonNull
    public UiObject2 clickAndGet(@NonNull final UiObject2 target, @NonNull String resName) {
        final Point targetCenter = target.getVisibleCenter();
        final long downTime = SystemClock.uptimeMillis();
        sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, targetCenter);
        final UiObject2 result = waitForLauncherObject(resName);
        sendPointer(downTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, targetCenter);
        return result;
    }

    private static int getSystemIntegerRes(Context context, String resName) {
        Resources res = context.getResources();
        int resId = res.getIdentifier(resName, "integer", "android");
+43 −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.annotation.NonNull;
import androidx.test.uiautomator.UiObject2;

public class OptionsPopupMenu {

    private final LauncherInstrumentation mLauncher;
    private final UiObject2 mDeepShortcutsContainer;

    OptionsPopupMenu(LauncherInstrumentation launcher,
                UiObject2 deepShortcutsContainer) {
        mLauncher = launcher;
        mDeepShortcutsContainer = deepShortcutsContainer;
    }

    /**
     * Returns a menu item with a given label. Fails if it doesn't exist.
     */
    @NonNull
    public OptionsPopupMenuItem getMenuItem(@NonNull final String label) {
        final UiObject2 obj = mLauncher
                .getObjectsInContainer(mDeepShortcutsContainer, "bubble_text").stream()
                .filter(menuItem -> label.equals(menuItem.getText())).findFirst().orElseThrow(() ->
                        new IllegalStateException("Cannot find option with label: " + label));
        return new OptionsPopupMenuItem(mLauncher, obj);
    }
}
Loading