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