1afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang/*
2afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * Copyright (C) 2010, The Android Open Source Project
3afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang *
4afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * Licensed under the Apache License, Version 2.0 (the "License");
5afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * you may not use this file except in compliance with the License.
6afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * You may obtain a copy of the License at
7afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang *
8afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang *      http://www.apache.org/licenses/LICENSE-2.0
9afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang *
10afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * Unless required by applicable law or agreed to in writing, software
11afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * distributed under the License is distributed on an "AS IS" BASIS,
12afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * See the License for the specific language governing permissions and
14afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang * limitations under the License.
15afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang */
16afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
17afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangpackage com.android.frameworks.telephonytests;
18afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
19afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport android.os.Bundle;
20afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
21afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport android.test.InstrumentationTestRunner;
22afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport android.test.InstrumentationTestSuite;
23afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport android.util.Log;
24afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
25afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport java.io.IOException;
26afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
27afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport com.android.internal.telephony.RilChannel;
28afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport com.android.internal.telephony.mockril.MockRilTest;
29afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
30afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangimport junit.framework.TestSuite;
31afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
32afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wangpublic class TelephonyMockRilTestRunner extends InstrumentationTestRunner {
33afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
34afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public RilChannel mMockRilChannel;
35afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
36afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
37afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public TestSuite getAllTests() {
38afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("getAllTests E");
39afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        TestSuite suite = new InstrumentationTestSuite(this);
40afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        suite.addTestSuite(MockRilTest.class);
41afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("getAllTests X");
42afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        return suite;
43afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
44afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
45afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
46afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public ClassLoader getLoader() {
47afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("getLoader EX");
48afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        return TelephonyMockRilTestRunner.class.getClassLoader();
49afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
50afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
51afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
52afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public void onCreate(Bundle icicle) {
53afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("onCreate E");
54afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        try {
55afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang            mMockRilChannel = RilChannel.makeRilChannel();
56afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        } catch (IOException e) {
57afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang            // TODO Auto-generated catch block
58afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang            e.printStackTrace();
59afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        }
60afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("onCreate X");
61afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
62afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        super.onCreate(icicle);
63afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
64afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
65afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
66afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public void onDestroy() {
67afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        // I've not seen this called
68afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("onDestroy EX");
69afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        super.onDestroy();
70afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
71afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
72afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
73afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public void onStart() {
74afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        // Called when the instrumentation thread is started.
75afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        // At the moment we don't need the thread so return
76afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        // which will shut down this unused thread.
77afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("onStart EX");
78afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        super.onStart();
79afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
80afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
81afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    @Override
82afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    public void finish(int resultCode, Bundle results) {
83afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        // Called when complete so I ask the mMockRilChannel to quit.
84afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("finish E");
85afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        mMockRilChannel.close();
86afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        log("finish X");
87afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        super.finish(resultCode, results);
88afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
89afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang
90afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    private void log(String s) {
91afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang        Log.e("TelephonyMockRilTestRunner", s);
92afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang    }
93afeeaf351a6d48ff218b31775de9b73c8848eba5Xia Wang}
94