diff --git a/tests/perftests/AndroidManifest.xml b/tests/perftests/AndroidManifest.xml
index 4ce6a54048c..8aae24af5fb 100644
--- a/tests/perftests/AndroidManifest.xml
+++ b/tests/perftests/AndroidManifest.xml
@@ -22,7 +22,7 @@
diff --git a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
index a91589b5406..ec2a311b1af 100644
--- a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
+++ b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
@@ -44,12 +44,33 @@ import java.util.regex.Pattern;
@RunWith(AndroidJUnit4.class)
public class LaunchSettingsTest {
+ private static class Page {
+ String action;
+ String displayName;
+ String title;
+
+ Page(String action, String displayName, String title) {
+ this.action = action;
+ this.displayName = displayName;
+ this.title = title;
+ }
+ }
private static final int TIME_OUT = 5000;
private static final int TEST_TIME = 10;
private static final Pattern PATTERN = Pattern.compile("TotalTime:\\s[0-9]*");
- private static final String[] PAGES =
- {"Settings", "Wi-Fi", "BlueTooth", "Application", "Battery"};
+ private static final Page[] PAGES;
+
+ static {
+ PAGES = new Page[]{
+ new Page("android.settings.SETTINGS", "Search settings", "Settings"),
+ new Page("android.settings.WIFI_SETTINGS", "Use Wi‑Fi", "Wi-Fi"),
+ new Page("android.settings.BLUETOOTH_SETTINGS", "Connected devices", "BlueTooth"),
+ new Page("android.settings.APPLICATION_SETTINGS", "App info", "Application"),
+ new Page("android.intent.action.POWER_USAGE_SUMMARY", "Battery", "Battery")
+ };
+ }
+
private Bundle mBundle;
private UiDevice mDevice;
private Instrumentation mInstrumentation;
@@ -64,53 +85,50 @@ public class LaunchSettingsTest {
mDevice.pressHome();
mDevice.waitForIdle(TIME_OUT);
- for (String string : PAGES) {
- mResult.put(string, new ArrayList());
+ for (Page page : PAGES) {
+ mResult.put(page.title, new ArrayList());
}
}
@After
public void tearDown() throws Exception {
- sendResult();
+ putResultToBundle();
mInstrumentation.sendStatus(0, mBundle);
}
@Test
public void settingsPerformanceTest() throws Exception {
for (int i = 0; i < TEST_TIME; i++) {
- executePreformanceTest("android.settings.SETTINGS", "Search settings", 0);
- executePreformanceTest("android.settings.WIFI_SETTINGS", "Use Wi‑Fi", 1);
- executePreformanceTest("android.settings.BLUETOOTH_SETTINGS", "Connected devices", 2);
- executePreformanceTest("android.settings.APPLICATION_SETTINGS", "App info", 3);
- executePreformanceTest("android.intent.action.POWER_USAGE_SUMMARY", "Battery", 4);
+ for (Page page : PAGES) {
+ executePreformanceTest(page.action, page.displayName, page.title);
+ }
}
-
}
- private void executePreformanceTest(String activity, String text, int page) throws Exception {
- final String mString = mDevice.executeShellCommand("am start -W -a" + activity);
- mDevice.wait(Until.findObject(By.text(text)), TIME_OUT);
- handleLaunchResult(page, mString);
+ private void executePreformanceTest(String action, String displayName, String title)
+ throws Exception {
+ final String mString = mDevice.executeShellCommand("am start -W -a" + action);
+ mDevice.wait(Until.findObject(By.text(displayName)), TIME_OUT);
+ handleLaunchResult(title, mString);
closeApp();
mDevice.waitForIdle(TIME_OUT);
}
- private void handleLaunchResult(int page, String s) {
+ private void handleLaunchResult(String title, String s) {
Matcher mMatcher = PATTERN.matcher(s);
if (mMatcher.find()) {
- mResult.get(PAGES[page]).add(Integer.valueOf(mMatcher.group().split("\\s")[1]));
+ mResult.get(title).add(Integer.valueOf(mMatcher.group().split("\\s")[1]));
} else {
fail("Some pages can't be found");
}
}
private void closeApp() throws Exception {
- mDevice.pressRecentApps();
- mDevice.findObject(new UiSelector().resourceId("com.android.launcher3:id/snapshot"))
- .swipeUp(10);
+ mDevice.executeShellCommand("am force-stop com.android.settings");
+ Thread.sleep(1000);
}
- private void sendResult() {
+ private void putResultToBundle() {
for (String string : mResult.keySet()) {
mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "max"),
getMax(mResult.get(string)));