15d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan/* 29c96807d990cdd3f4bb2d3f0fd56a1e78a95b353Jack Yu * Copyright (C) 2016 The Android Open Source Project 35d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * 45d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * Licensed under the Apache License, Version 2.0 (the "License"); 55d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * you may not use this file except in compliance with the License. 65d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * You may obtain a copy of the License at 75d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * 85d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * http://www.apache.org/licenses/LICENSE-2.0 95d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * 105d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * Unless required by applicable law or agreed to in writing, software 115d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * distributed under the License is distributed on an "AS IS" BASIS, 125d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * See the License for the specific language governing permissions and 145d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan * limitations under the License. 155d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan */ 165d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 175d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanpackage com.android.internal.telephony.cdma; 185d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 195d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport android.os.HandlerThread; 205d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport android.os.Message; 215d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport android.test.suitebuilder.annotation.SmallTest; 225d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 235d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport com.android.internal.telephony.ImsSMSDispatcher; 245d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport com.android.internal.telephony.SMSDispatcher; 2532b5fbb1a340fa16e2c37c276517ef10a4934500Amit Mahajanimport com.android.internal.telephony.TelephonyTest; 265d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 275d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport static org.mockito.Mockito.*; 285d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 295d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport org.junit.After; 305d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport org.junit.Before; 315d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport org.junit.Test; 325d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajanimport org.mockito.Mock; 335d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 3432b5fbb1a340fa16e2c37c276517ef10a4934500Amit Mahajanpublic class CdmaSmsDispatcherTest extends TelephonyTest { 355d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Mock 365d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private android.telephony.SmsMessage mSmsMessage; 375d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Mock 385d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private SmsMessage mCdmaSmsMessage; 395d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Mock 405d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private ImsSMSDispatcher mImsSmsDispatcher; 415d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Mock 425d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private SMSDispatcher.SmsTracker mSmsTracker; 435d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 445d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private CdmaSMSDispatcher mCdmaSmsDispatcher; 457e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan private CdmaSmsDispatcherTestHandler mCdmaSmsDispatcherTestHandler; 465d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 475d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private class CdmaSmsDispatcherTestHandler extends HandlerThread { 485d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 495d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan private CdmaSmsDispatcherTestHandler(String name) { 505d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan super(name); 515d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 525d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 535d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Override 545d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan public void onLooperPrepared() { 5532b5fbb1a340fa16e2c37c276517ef10a4934500Amit Mahajan mCdmaSmsDispatcher = new CdmaSMSDispatcher(mPhone, mSmsUsageMonitor, 5632b5fbb1a340fa16e2c37c276517ef10a4934500Amit Mahajan mImsSmsDispatcher); 5732b5fbb1a340fa16e2c37c276517ef10a4934500Amit Mahajan setReady(true); 585d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 595d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 605d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 615d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Before 625d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan public void setUp() throws Exception { 636ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu super.setUp(this.getClass().getSimpleName()); 645d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 656ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu setupMockPackagePermissionChecks(); 665d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 677e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan mCdmaSmsDispatcherTestHandler = new CdmaSmsDispatcherTestHandler(TAG); 687e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan mCdmaSmsDispatcherTestHandler.start(); 695d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan waitUntilReady(); 705d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 715d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 725d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @After 735d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan public void tearDown() throws Exception { 745d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan mCdmaSmsDispatcher = null; 75ae6e8f99bdb297f906d6dcdc0a385ba27eee47fdJack Yu mCdmaSmsDispatcherTestHandler.quit(); 76f152b32a20be664788536a223b9ac7a52f69e4ddAmit Mahajan super.tearDown(); 775d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 785d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan 795d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan @Test @SmallTest 805d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan public void testSendSms() { 815d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan doReturn(mServiceState).when(mPhone).getServiceState(); 825d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan mCdmaSmsDispatcher.sendSms(mSmsTracker); 83b1fdcf01045090315c5b91d7539007d79f34c9ecAmit Mahajan verify(mSimulatedCommandsVerifier).sendCdmaSms(nullable(byte[].class), any(Message.class)); 845d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan } 856ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu 866ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu @Test @SmallTest 876ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu public void testSendText() { 886ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu mCdmaSmsDispatcher.sendText("111"/* desAddr*/, "222" /*scAddr*/, TAG, 896ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu null, null, null, null, false); 906ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu verify(mSimulatedCommandsVerifier).sendCdmaSms(any(byte[].class), any(Message.class)); 916ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu } 926ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu 936ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu @Test @SmallTest 946ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu public void testSendTextWithOutDesAddr() { 956ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu mCdmaSmsDispatcher.sendText(null, "222" /*scAddr*/, TAG, 966ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu null, null, null, null, false); 976ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu verify(mSimulatedCommandsVerifier, times(0)).sendImsGsmSms(anyString(), anyString(), 986ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu anyInt(), anyInt(), any(Message.class)); 996ba18ef5f3733709f16ef03b3d2b2de076b63c3efionaxu } 1005d5ca33a24e6b73a48b575a0e1a5e790784d0bb7Amit Mahajan} 101