Add a few UI tests

- Verify storage setting display items
- Battery

Test: atest
Change-Id: Ia892e0e3265aa8bebda74df26dd67e6b12f5cb67
Fixes: 72461383
This commit is contained in:
Fan Zhang
2018-01-30 12:03:13 -08:00
parent 4b1f25ada4
commit 9a465f3f7f
4 changed files with 154 additions and 2 deletions

View File

@@ -0,0 +1,74 @@
/*
* Copyright (C) 2018 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.content.Intent;
import android.os.RemoteException;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.MediumTest;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.UiDevice;
import android.system.helpers.SettingsHelper;
import com.android.settings.ui.testutils.SettingsTestUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@MediumTest
@RunWith(AndroidJUnit4.class)
public class BatterySettingsUITest {
// Items we really want to always show
private static final String[] CATEGORIES = new String[] {
"Battery Saver",
"Battery percentage",
"Battery usage data is approximate and can change based on usage",
};
private UiDevice mDevice;
private SettingsHelper mHelper;
@Before
public void setUp() throws Exception {
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
mHelper = SettingsHelper.getInstance();
try {
mDevice.setOrientationNatural();
} catch (RemoteException e) {
throw new RuntimeException("failed to freeze device orientaion", e);
}
}
@After
public void tearDown() throws Exception {
// Go back to home for next test.
mDevice.pressHome();
}
@Test
public void launchSecuritySettings() throws Exception {
// Launch Settings
SettingsHelper.launchSettingsPage(
InstrumentationRegistry.getTargetContext(), Intent.ACTION_POWER_USAGE_SUMMARY);
mHelper.scrollVert(false);
for (String category : CATEGORIES) {
SettingsTestUtils.assertTitleMatch(mDevice, category);
}
}
}

View File

@@ -38,7 +38,7 @@ import android.util.Log;
/**
* Additional tests for Wifi Settings.
*/
public class WirelessNetworkSettingsAdditionalTests extends InstrumentationTestCase {
public class MoreWirelessSettingsTest2 extends InstrumentationTestCase {
// These back button presses are performed in tearDown() to exit Wifi
// Settings sub-menus that a test might finish in. This number should be
// high enough to account for the deepest sub-menu a test might enter.

View File

@@ -0,0 +1,79 @@
/*
* Copyright (C) 2018 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.os.RemoteException;
import android.provider.Settings;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.UiDevice;
import android.system.helpers.SettingsHelper;
import android.test.suitebuilder.annotation.MediumTest;
import com.android.settings.ui.testutils.SettingsTestUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@MediumTest
public class StorageSettingsUITest {
private static final String[] TITLES = {
"Photos & videos",
"Music & audio",
"Games",
"Movie & TV apps",
"Other apps",
"Files",
"System",
};
private UiDevice mDevice;
private SettingsHelper mHelper;
@Before
public void setUp() throws Exception {
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
mHelper = SettingsHelper.getInstance();
try {
mDevice.setOrientationNatural();
} catch (RemoteException e) {
throw new RuntimeException("failed to freeze device orientation", e);
}
}
@After
public void tearDown() {
mDevice.pressHome();
}
@Test
public void launchStorageSettings() throws Exception {
// Launch Settings
SettingsHelper.launchSettingsPage(
InstrumentationRegistry.getTargetContext(),
Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
mHelper.scrollVert(false);
for (String category : TITLES) {
SettingsTestUtils.assertTitleMatch(mDevice, category);
}
}
}

View File

@@ -61,7 +61,6 @@ public class WirelessNetworkSettingsTests {
@Before
public void setUp() throws Exception {
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
try {
mDevice.setOrientationNatural();