10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1991187d41b202273075a302a4fd4f8df719b5dee0Jake Hambyimport android.app.ActivityThread;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.os.ServiceManager;
210825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.MediumTest;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.test.suitebuilder.annotation.Suppress;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.List;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport junit.framework.TestCase;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic class SimSmsTest extends TestCase {
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @MediumTest
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Suppress // TODO: suppress this test for now since it doesn't work on the emulator
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testBasic() throws Exception {
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        ISms sms = ISms.Stub.asInterface(ServiceManager.getService("isms"));
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertNotNull(sms);
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3791187d41b202273075a302a4fd4f8df719b5dee0Jake Hamby        List<SmsRawData> records = sms.getAllMessagesFromIccEf(ActivityThread.currentPackageName());
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertNotNull(records);
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertTrue(records.size() >= 0);
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int firstNullIndex = -1;
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int firstValidIndex = -1;
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        byte[] pdu = null;
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        for (int i = 0; i < records.size(); i++) {
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            SmsRawData data = records.get(i);
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (data != null && firstValidIndex == -1) {
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                firstValidIndex = i;
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                pdu = data.getBytes();
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (data == null && firstNullIndex == -1) {
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                firstNullIndex = i;
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (firstNullIndex != -1 && firstValidIndex != -1) {
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        if (firstNullIndex == -1 || firstValidIndex == -1)
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return;
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        assertNotNull(pdu);
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
62