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