18c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang/* 28c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * Copyright (C) 2011 The Android Open Source Project 38c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * 48c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * Licensed under the Apache License, Version 2.0 (the "License"); 58c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * you may not use this file except in compliance with the License. 68c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * You may obtain a copy of the License at 78c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * 88c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * http://www.apache.org/licenses/LICENSE-2.0 98c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * 108c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * Unless required by applicable law or agreed to in writing, software 118c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * distributed under the License is distributed on an "AS IS" BASIS, 128c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * See the License for the specific language governing permissions and 148c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * limitations under the License. 158c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang */ 168c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 178c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangpackage com.android.launcher2.stress; 188c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 198c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 208c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangimport com.android.launcher2.Launcher; 218c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 228c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangimport android.content.pm.ActivityInfo; 238c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangimport android.os.SystemClock; 248c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangimport android.test.ActivityInstrumentationTestCase2; 25ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuangimport android.test.RepetitiveTest; 268c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangimport android.util.Log; 278c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 288c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang/** 298c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang * Run rotation stress test using Launcher2 for 50 iterations. 308c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang */ 318c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuangpublic class LauncherRotationStressTest extends ActivityInstrumentationTestCase2<Launcher> { 328c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 338c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang private static final int NUM_ITERATIONS = 50; 34ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang private static final int WAIT_TIME_MS = 500; 358c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang private static final String LOG_TAG = "LauncherRotationStressTest"; 368c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 378c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang public LauncherRotationStressTest() { 388c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang super(Launcher.class); 398c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang } 408c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 418c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang @Override 428c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang protected void setUp() throws Exception { 438c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang super.setUp(); 448c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang } 458c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 468c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang @Override 478c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang protected void tearDown() throws Exception { 488c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang super.tearDown(); 498c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang } 508c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang 51ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang @RepetitiveTest(numIterations=NUM_ITERATIONS) 528c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang public void testLauncherRotationStress() throws Exception { 538c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang Launcher launcher = getActivity(); 54ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang getInstrumentation().waitForIdleSync(); 55ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang SystemClock.sleep(WAIT_TIME_MS); 56ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang launcher.setRequestedOrientation( 57ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 58ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang getInstrumentation().waitForIdleSync(); 59ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang SystemClock.sleep(WAIT_TIME_MS); 60ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang launcher.setRequestedOrientation( 61ee8caea24b3ac28f1074cebdaef43708a91538a7Tsu Chiang Chuang ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 628c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang } 638c7a2b7d023d9f24ff7db3ba2e02672aa006c45bTsu Chiang Chuang} 64