/* * Copyright 2012-2014 eBay Software Foundation and selendroid committers. * * 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 io.selendroid.nativetests; import io.selendroid.support.BaseAndroidTest; import org.junit.Assert; import org.junit.Test; import java.util.List; public class BackgroundAppTest extends BaseAndroidTest { /** * Requires ANDROID_HOME to be set in enviroment. * @throws Exception */ @Test public void testBackgroundAppFunctionality() throws Exception { openStartActivity(); driver().backgroundApp(); String currentActivity = adbCurrentActivity(); Assert.assertTrue(currentActivity.contains("com.android.launcher2.Launcher")); driver().resumeApp(); currentActivity = adbCurrentActivity(); Assert.assertTrue(currentActivity.contains("io.selendroid.testapp.HomeScreenActivity")); } private String adbCurrentActivity() throws Exception { String adbPath = System.getenv("ANDROID_HOME")+"/platform-tools/"+"adb"; String output = execCmd(adbPath + " shell dumpsys window windows"); String activityLines = ""; String[] lines = output.split("\n"); for (int i = 0; i < lines.length; i++) { if (lines[i].contains("mCurrentFocus") || lines[i].contains("mFocusedApp")) { activityLines += lines[i]; } } return activityLines; } public String execCmd(String cmd) throws java.io.IOException { Process proc = Runtime.getRuntime().exec(cmd); java.io.InputStream is = proc.getInputStream(); java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A"); String val = ""; if (s.hasNext()) { val = s.next(); } else { val = ""; } return val; } }