1fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang/*
2fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * Copyright (C) 2010, The Android Open Source Project
3fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *
4fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * Licensed under the Apache License, Version 2.0 (the "License");
5fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * you may not use this file except in compliance with the License.
6fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * You may obtain a copy of the License at
7fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *
8fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *      http://www.apache.org/licenses/LICENSE-2.0
9fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *
10fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * Unless required by applicable law or agreed to in writing, software
11fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * distributed under the License is distributed on an "AS IS" BASIS,
12fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * See the License for the specific language governing permissions and
14fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * limitations under the License.
15fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang */
16fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
17fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangpackage com.android.connectivitymanagertest;
18fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
19fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangimport android.os.Bundle;
20fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangimport android.test.InstrumentationTestRunner;
21fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangimport android.test.InstrumentationTestSuite;
22b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang
23fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangimport com.android.connectivitymanagertest.functional.ConnectivityManagerMobileTest;
24ca1f2b1a1e8cb785be5ebbcf7ded7c921cbf80a7Xia Wangimport com.android.connectivitymanagertest.functional.WifiConnectionTest;
25fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
26fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangimport junit.framework.TestSuite;
27fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
28fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang/**
29fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * Instrumentation Test Runner for all connectivity manager tests.
30fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *
31fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * To run the connectivity manager tests:
32fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *
33fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang * adb shell am instrument -e ssid <ssid> \
34fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang *     -w com.android.connectivitymanagertest/.ConnectivityManagerTestRunner
35fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang */
36fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
37fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wangpublic class ConnectivityManagerTestRunner extends InstrumentationTestRunner {
38b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang    public String TEST_SSID = null;
39b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang
40fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    @Override
41fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    public TestSuite getAllTests() {
42fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        TestSuite suite = new InstrumentationTestSuite(this);
43b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        if (!UtilHelper.isWifiOnly()) {
44b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            suite.addTestSuite(ConnectivityManagerMobileTest.class);
45b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        } else {
46b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            // create a new test suite
47b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            suite.setName("ConnectivityManagerWifiOnlyFunctionalTests");
48b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            String[] methodNames = {"testConnectToWifi", "testConnectToWifWithKnownAP",
49b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang                    "testDisconnectWifi", "testDataConnectionOverAMWithWifi",
50b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang                    "testDataConnectionWithWifiToAMToWifi", "testWifiStateChange"};
51b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            Class<ConnectivityManagerMobileTest> testClass = ConnectivityManagerMobileTest.class;
52b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            for (String method: methodNames) {
53b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang                suite.addTest(TestSuite.createTest(testClass, method));
54b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang            }
55b97435c94f4d35a70d63e5dcba5415b0110cf2c9Xia Wang        }
56ca1f2b1a1e8cb785be5ebbcf7ded7c921cbf80a7Xia Wang        suite.addTestSuite(WifiConnectionTest.class);
57fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        return suite;
58fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    }
59fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
60fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    @Override
61fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    public ClassLoader getLoader() {
62fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        return ConnectivityManagerTestRunner.class.getClassLoader();
63fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    }
64fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang
65fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    @Override
66fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    public void onCreate(Bundle icicle) {
67fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        super.onCreate(icicle);
68fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        String testSSID = (String) icicle.get("ssid");
69fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        if (testSSID != null) {
70fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang            TEST_SSID = testSSID;
71fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang        }
72fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang    }
73fc2dbd04005c32360eead803e29df3cc62209cd8Xia Wang}
74