UiDevice.openNotification() не работает с windowFullscreen=true

Один из моих тестов UiAutomator не проходит на одном из моих тестовых устройств, потому что

_uiDevice.openNotification()

не удается открыть область уведомлений. Вопреки документации этой функции, я получаю true в результате.

Если я установлю <item name="android:windowFullscreen">false</item> (ранее это было true), уведомления открываются правильно.

Но эта проблема возникает только на одном из моих устройств (Sony Xperia Z3), в то время как другому (Samsung Galaxy S5) удается открыть уведомление, независимо от того, полноэкранный режим или нет.

Мой (начальный) стиль:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowFullscreen">true</item>
    <item name="colorAccent">@color/ioxp_yellow</item>
</style>

В моем манифесте:

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:launchMode="singleTask"
        android:screenOrientation="landscape"
        android:theme="@style/AppTheme" >

Выдержка из моего теста:

@RunWith(AndroidJUnit4.class)
public class MainActivityAutomatorTest {

    @Test
    public void testNotifications() throws UiObjectNotFoundException, NoSuchMethodException,
            NoSuchFieldException, IllegalAccessException,
            InvocationTargetException, ClassNotFoundException
    {
        //...
        Assert.assertTrue("Could not open device notifications", _uiDevice.openNotification());
        String notificationString = context.getString(R.string.downloadService_title_workspace, serverWsId);
        UiObject2 notification = _uiDevice.wait(Until.findObject(By.text(notificationString)),
                UI_TIMEOUT);
        Assert.assertNotNull(notification); // THIS FAILS
    }

    @Before
    public void startMainActivityFromHomeScreen() {
        // Initialize UiDevice instance

        _uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());

        // Start from the home screen
        _uiDevice.pressHome();

        // Wait for launcher
        final String launcherPackage = _uiDevice.getLauncherPackageName();
        Assert.assertNotNull(launcherPackage);
        _uiDevice.wait(Until.hasObject(By.pkg(launcherPackage).depth(0)), UI_TIMEOUT);

        // Launch the app
        Context context = InstrumentationRegistry.getContext();
        final Intent intent = context.getPackageManager()
                .getLaunchIntentForPackage(BuildConfig.APPLICATION_ID);
        Assert.assertNotNull(intent);
        // Clear out any previous instances
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        context.startActivity(intent);

        // Wait for the app to appear
        _uiDevice.wait(Until.hasObject(By.pkg(BuildConfig.APPLICATION_ID).depth(0)), UI_TIMEOUT);
    }
}

Это ошибка в рамках Automator или я делаю что-то не так?

0 ответов

Другие вопросы по тегам