/* * Copyright (C) 2008 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 android.cts.refapp; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import android.util.Log; import java.lang.InterruptedException; import java.lang.Thread; /** * Base Class that provides common functionality for all Reference Application Tests. */ public class ReferenceAppTestCase extends ActivityInstrumentationTestCase2 { /** The time to wait for the test host to finish taking the snapshot. */ private static final int SNAPSHOT_TIMEOUT_MS = 1000; /** The default time that the applicaiton has to start in. */ private static final int DEFAULT_MAX_STATUP_TIME_MS = 5000; private int maxStartupTimeMs; /** * Create a ReferenceAppTestCase for the specified activity. * * @param pkg the java package the class is contained in. * @param activityClass the class of the activity to instrument. * @param maxStartupTimeMs the startup time the activity should start in. */ public ReferenceAppTestCase(String pkg, Class activityClass, int maxStartupTimeMs) { super(pkg, activityClass); this.maxStartupTimeMs = maxStartupTimeMs; } /** * Create a ReferenceAppTestCase for the specified activity. * * @param pkg the java package the class is contained in. * @param activityClass the class of the activity to instrument. */ public ReferenceAppTestCase(String pkg, Class activityClass) { this(pkg, activityClass, DEFAULT_MAX_STATUP_TIME_MS); } public void testActivityStartupTime() { // Test activity startup time. long start = System.currentTimeMillis(); Activity activity = getActivity(); long end = System.currentTimeMillis(); long startupTime = end - start; assertTrue("Activity Startup took more than " + maxStartupTimeMs + " ms", startupTime <= maxStartupTimeMs); } /** * Allows tests to record screen snapshots for inclusion in the * CTS test report. * * @param name the name to save the snapshot under */ public void takeSnapshot(String name) { // request a snapshot from the CTS host Log.d("ReferenceAppTestCase", "takeSnapshot:" + name); // Give the host enough time to take the picture try { Thread.sleep(SNAPSHOT_TIMEOUT_MS); } catch (InterruptedException e) { // ok } } }