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

Commit e2e0af28 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Add DevelopmentSettingsTest

Bug: 290684887
Test: atest SettingsUITests
Change-Id: I3acda74c96679fcdb531990848e456d5da0ae239
parent a35c6bc1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ class AppsSettingsTests {
    @Test
    fun testAppSettingsListForCalculator() {
        device.clickObject(By.text("Calculator"))
        device.waitObject(By.text("Open"))
        device.assertHasTexts(ON_SCREEN_TEXTS)
    }

@@ -63,7 +64,7 @@ class AppsSettingsTests {
            "Screen time",
            "App battery usage",
            "Language",
            "Open by default"
            "Unused app settings",
        )
    }
}
+53 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.settings.ui

import android.provider.Settings
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import androidx.test.uiautomator.UiDevice
import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
@SmallTest
class DevelopmentSettingsTest {
    private lateinit var device: UiDevice

    @Before
    fun setUp() {
        device = startMainActivityFromHomeScreen(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)
    }

    @Test
    fun hasTexts() {
        device.assertHasTexts(ON_SCREEN_TEXTS)
    }

    private companion object {
        val ON_SCREEN_TEXTS = listOf(
            "Use developer options",
            "Memory",
            "Stay awake",
            "USB debugging",
            "App Compatibility Changes",
        )
    }
}
+6 −2
Original line number Diff line number Diff line
@@ -69,8 +69,12 @@ object SettingsTestUtils {
    fun UiDevice.assertHasTexts(texts: List<String>) {
        val scrollableObj = findObject(By.scrollable(true))
        for (text in texts) {
            scrollableObj.scrollUntil(Direction.DOWN, Until.findObject(By.text(text)))
            assertWithMessage("Missing text: $text").that(waitObject(By.text(text))).isNotNull()
            val selector = By.text(text)
            assertWithMessage("Missing text: $text").that(
                findObject(selector)
                    ?: scrollableObj.scrollUntil(Direction.DOWN, Until.findObject(selector))
                    ?: waitObject(selector)
            ).isNotNull()
        }
    }
}