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 f6eac3a1514..309771591d8 100644 --- a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java +++ b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java @@ -79,6 +79,7 @@ public class LaunchSettingsTest { private Instrumentation mInstrumentation; private Map> mResult; private String mDefaultScreenTimeout; + private String mDefaultAirplaneModeStatus; @Before public void setUp() throws Exception { @@ -88,7 +89,9 @@ public class LaunchSettingsTest { mResult = new LinkedHashMap<>(); mDefaultScreenTimeout = mDevice.executeShellCommand( "settings get system screen_off_timeout"); + mDefaultAirplaneModeStatus = getAirplaneModeStatus(); setScreenTimeOut(SCREEN_TIME_OUT); + setAirplaneMode(); mDevice.pressHome(); mDevice.waitForIdle(TIME_OUT); @@ -102,6 +105,7 @@ public class LaunchSettingsTest { putResultToBundle(); mInstrumentation.sendStatus(0, mBundle); resetScreenTimeout(); + resetAirplaneMode(); closeApp(); } @@ -123,12 +127,12 @@ public class LaunchSettingsTest { handleLaunchResult(title, mString); } - private void handleLaunchResult(String title, String s) { - Matcher mMatcher = PATTERN.matcher(s); + private void handleLaunchResult(String title, String shellCommandResult) { + Matcher mMatcher = PATTERN.matcher(shellCommandResult); if (mMatcher.find()) { mResult.get(title).add(Integer.valueOf(mMatcher.group().split("\\s")[1])); } else { - fail("Some pages can't be found"); + fail(String.format("Not found %s.\n %s", title, shellCommandResult)); } } @@ -145,6 +149,10 @@ public class LaunchSettingsTest { getMin(mResult.get(string))); mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "avg"), getAvg(mResult.get(string))); + mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "all_results"), + mResult.get(string).toString()); + mBundle.putString(String.format("LaunchSettingsTest_%s_%s", string, "results_count"), + String.valueOf(mResult.get(string).size())); } } @@ -171,4 +179,27 @@ public class LaunchSettingsTest { } setScreenTimeOut(timeout); } + + private void setAirplaneMode() throws Exception { + if (mDefaultAirplaneModeStatus.equals("0\n")) { + clickAirplaneMode(); + } + } + + private void resetAirplaneMode() throws Exception { + if (!getAirplaneModeStatus().equals(mDefaultAirplaneModeStatus)) { + clickAirplaneMode(); + } + } + + private void clickAirplaneMode() throws Exception { + mDevice.executeShellCommand("am start -W -a android.settings.AIRPLANE_MODE_SETTINGS"); + mDevice.waitForIdle(TIME_OUT); + mDevice.findObject(By.textContains("Airplane")).click(); + mDevice.waitForIdle(TIME_OUT); + } + + private String getAirplaneModeStatus() throws Exception { + return mDevice.executeShellCommand("settings get global airplane_mode_on"); + } } \ No newline at end of file