public void testAppInfo() throws Exception { AppInfo info = new AppInfo("app_name"); assertEquals("app_name", info.getName()); assertEquals("app_name", info.getOutputKey()); assertEquals("app_name", info.getPostKey()); info = new AppInfo("AppName"); assertEquals("AppName", info.getName()); assertEquals("appname", info.getOutputKey()); assertEquals("appname", info.getPostKey()); info = new AppInfo("App Name"); assertEquals("App Name", info.getName()); assertEquals("appname", info.getOutputKey()); assertEquals("appname", info.getPostKey()); info = new AppInfo("App & Name"); assertEquals("App & Name", info.getName()); assertEquals("app&name", info.getOutputKey()); assertEquals("app&name", info.getPostKey()); assertEquals("App & Name,app&name\n", info.getAppListEntry()); info = new AppInfo("App Name", "key"); assertEquals("App Name", info.getName()); assertEquals("appname", info.getOutputKey()); assertEquals("key", info.getPostKey()); assertNull(info.getTime()); info.setTime(0); assertEquals(new Integer(0), info.getTime()); assertEquals("App Name,key\n", info.getAppListEntry()); }
/** * If a bugreport should be taken after the run. * * @return true if any of the apps have a {@code null} launch time. */ private boolean shouldTakeBugreport() { for (AppInfo appInfo : mAppInfos.values()) { if (appInfo.getTime() == null) { return true; } } return false; }
/** * Report the metrics and attach it to the listener. * * <p>If any of the app times are {@code null}, that app is assumed to not have launched and will * be marked as failed. * * @param listener the {@link ITestInvocationListener} */ private void reportMetrics(ITestInvocationListener listener) { listener.testRunStarted(TEST_KEY, 0); Map<String, String> metrics = new HashMap<String, String>(); for (AppInfo appInfo : mAppInfos.values()) { TestIdentifier testId = new TestIdentifier(getClass().getCanonicalName(), appInfo.getPostKey()); listener.testStarted(testId); if (appInfo.getTime() != null) { metrics.put(appInfo.getPostKey(), Integer.toString(appInfo.getTime())); } else { listener.testFailed(TestFailure.FAILURE, testId, "No app launch time"); } Map<String, String> empty = Collections.emptyMap(); listener.testEnded(testId, empty); } CLog.d("About to report app launch metrics: %s", metrics); listener.testRunEnded(0, metrics); }