Revert "Revert "add apn setting parameters, and set apn parameters to bp""
[android/platform/frameworks/opt/telephony.git] / tests / telephonytests / src / com / android / internal / telephony / gsm / UsimDataDownloadCommands.java
1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.internal.telephony.gsm;
18
19 import android.content.Context;
20 import android.os.AsyncResult;
21 import android.os.Message;
22 import android.os.SystemClock;
23 import android.telephony.Rlog;
24
25 import com.android.internal.telephony.BaseCommands;
26 import com.android.internal.telephony.UUSInfo;
27 import com.android.internal.telephony.uicc.IccIoResult;
28 import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
29
30 import junit.framework.Assert;
31
32 /**
33  * Dummy BaseCommands for UsimDataDownloadTest. Only implements UICC envelope and
34  * SMS acknowledgement commands.
35  */
36 class UsimDataDownloadCommands extends BaseCommands {
37     private static final String TAG = "UsimDataDownloadCommands";
38
39     private boolean mExpectingAcknowledgeGsmSms;        // true if expecting ack GSM SMS
40     private boolean mExpectingAcknowledgeGsmSmsSuccess; // true if expecting ack SMS success
41     private int mExpectingAcknowledgeGsmSmsFailureCause;    // expecting ack SMS failure cause
42     private String mExpectingAcknowledgeGsmSmsPdu;          // expecting ack SMS PDU
43
44     private boolean mExpectingSendEnvelope;         // true to expect a send envelope command
45     private String mExpectingSendEnvelopeContents;  // expected string for send envelope
46     private int mExpectingSendEnvelopeResponseSw1;  // SW1/SW2 response status
47     private int mExpectingSendEnvelopeResponseSw2;  // SW1/SW2 response status
48     private String mExpectingSendEnvelopeResponse;  // Response string for Send Envelope
49
50     UsimDataDownloadCommands(Context context) {
51         super(context);
52     }
53
54     /**
55      * Expect a call to acknowledgeLastIncomingGsmSms with success flag and failure cause.
56      * @param success true if expecting success; false if expecting failure
57      * @param cause the failure cause, if success is false
58      */
59     synchronized void expectAcknowledgeGsmSms(boolean success, int cause) {
60         Assert.assertFalse("expectAcknowledgeGsmSms called twice", mExpectingAcknowledgeGsmSms);
61         mExpectingAcknowledgeGsmSms = true;
62         mExpectingAcknowledgeGsmSmsSuccess = success;
63         mExpectingAcknowledgeGsmSmsFailureCause = cause;
64     }
65
66     /**
67      * Expect a call to acknowledgeLastIncomingGsmSmsWithPdu with success flag and PDU.
68      * @param success true if expecting success; false if expecting failure
69      * @param ackPdu the acknowledgement PDU to expect
70      */
71     synchronized void expectAcknowledgeGsmSmsWithPdu(boolean success, String ackPdu) {
72         Assert.assertFalse("expectAcknowledgeGsmSms called twice", mExpectingAcknowledgeGsmSms);
73         mExpectingAcknowledgeGsmSms = true;
74         mExpectingAcknowledgeGsmSmsSuccess = success;
75         mExpectingAcknowledgeGsmSmsPdu = ackPdu;
76     }
77
78     /**
79      * Expect a call to sendEnvelopeWithStatus().
80      * @param contents expected envelope contents to send
81      * @param sw1 simulated SW1 status to return
82      * @param sw2 simulated SW2 status to return
83      * @param response simulated envelope response to return
84      */
85     synchronized void expectSendEnvelope(String contents, int sw1, int sw2, String response) {
86         Assert.assertFalse("expectSendEnvelope called twice", mExpectingSendEnvelope);
87         mExpectingSendEnvelope = true;
88         mExpectingSendEnvelopeContents = contents;
89         mExpectingSendEnvelopeResponseSw1 = sw1;
90         mExpectingSendEnvelopeResponseSw2 = sw2;
91         mExpectingSendEnvelopeResponse = response;
92     }
93
94     synchronized void assertExpectedMethodsCalled() {
95         long stopTime = SystemClock.elapsedRealtime() + 5000;
96         while ((mExpectingAcknowledgeGsmSms || mExpectingSendEnvelope)
97                 && SystemClock.elapsedRealtime() < stopTime) {
98             try {
99                 wait();
100             } catch (InterruptedException ignored) {}
101         }
102         Assert.assertFalse("expecting SMS acknowledge call", mExpectingAcknowledgeGsmSms);
103         Assert.assertFalse("expecting send envelope call", mExpectingSendEnvelope);
104     }
105
106     @Override
107     public synchronized void acknowledgeLastIncomingGsmSms(boolean success, int cause,
108             Message response) {
109         Rlog.d(TAG, "acknowledgeLastIncomingGsmSms: success=" + success + ", cause=" + cause);
110         Assert.assertTrue("unexpected call to acknowledge SMS", mExpectingAcknowledgeGsmSms);
111         Assert.assertEquals(mExpectingAcknowledgeGsmSmsSuccess, success);
112         Assert.assertEquals(mExpectingAcknowledgeGsmSmsFailureCause, cause);
113         mExpectingAcknowledgeGsmSms = false;
114         if (response != null) {
115             AsyncResult.forMessage(response);
116             response.sendToTarget();
117         }
118         notifyAll();    // wake up assertExpectedMethodsCalled()
119     }
120
121     @Override
122     public synchronized void acknowledgeIncomingGsmSmsWithPdu(boolean success, String ackPdu,
123             Message response) {
124         Rlog.d(TAG, "acknowledgeLastIncomingGsmSmsWithPdu: success=" + success
125                 + ", ackPDU= " + ackPdu);
126         Assert.assertTrue("unexpected call to acknowledge SMS", mExpectingAcknowledgeGsmSms);
127         Assert.assertEquals(mExpectingAcknowledgeGsmSmsSuccess, success);
128         Assert.assertEquals(mExpectingAcknowledgeGsmSmsPdu, ackPdu);
129         mExpectingAcknowledgeGsmSms = false;
130         if (response != null) {
131             AsyncResult.forMessage(response);
132             response.sendToTarget();
133         }
134         notifyAll();    // wake up assertExpectedMethodsCalled()
135     }
136
137     @Override
138     public synchronized void sendEnvelopeWithStatus(String contents, Message response) {
139         // Add spaces between hex bytes for readability
140         StringBuilder builder = new StringBuilder();
141         for (int i = 0; i < contents.length(); i += 2) {
142             builder.append(contents.charAt(i)).append(contents.charAt(i+1)).append(' ');
143         }
144         Rlog.d(TAG, "sendEnvelopeWithStatus: " + builder.toString());
145
146         Assert.assertTrue("unexpected call to send envelope", mExpectingSendEnvelope);
147         Assert.assertEquals(mExpectingSendEnvelopeContents, contents);
148         mExpectingSendEnvelope = false;
149
150         IccIoResult result = new IccIoResult(mExpectingSendEnvelopeResponseSw1,
151                 mExpectingSendEnvelopeResponseSw2, mExpectingSendEnvelopeResponse);
152
153         if (response != null) {
154             AsyncResult.forMessage(response, result, null);
155             response.sendToTarget();
156         }
157         notifyAll();    // wake up assertExpectedMethodsCalled()
158     }
159
160     @Override
161     public void setSuppServiceNotifications(boolean enable, Message result) {
162     }
163
164     @Override
165     public void supplyIccPin(String pin, Message result) {
166     }
167
168     @Override
169     public void supplyIccPinForApp(String pin, String aid, Message result) {
170     }
171
172     @Override
173     public void supplyIccPuk(String puk, String newPin, Message result) {
174     }
175
176     @Override
177     public void supplyIccPukForApp(String puk, String newPin, String aid, Message result) {
178     }
179
180     @Override
181     public void supplyIccPin2(String pin2, Message result) {
182     }
183
184     @Override
185     public void supplyIccPin2ForApp(String pin2, String aid, Message result) {
186     }
187
188     @Override
189     public void supplyIccPuk2(String puk2, String newPin2, Message result) {
190     }
191
192     @Override
193     public void supplyIccPuk2ForApp(String puk2, String newPin2, String aid, Message result) {
194     }
195
196     @Override
197     public void changeIccPin(String oldPin, String newPin, Message result) {
198     }
199
200     @Override
201     public void changeIccPinForApp(String oldPin, String newPin, String aidPtr, Message result) {
202     }
203
204     @Override
205     public void changeIccPin2(String oldPin2, String newPin2, Message result) {
206     }
207
208     @Override
209     public void changeIccPin2ForApp(String oldPin2, String newPin2, String aidPtr, Message result) {
210     }
211
212     @Override
213     public void changeBarringPassword(String facility, String oldPwd, String newPwd,
214             Message result) {
215     }
216
217     @Override
218     public void supplyNetworkDepersonalization(String netpin, Message result) {
219     }
220
221     @Override
222     public void getCurrentCalls(Message result) {
223     }
224
225     @Override
226     public void getPDPContextList(Message result) {
227     }
228
229     @Override
230     public void getDataCallList(Message result) {
231     }
232
233     @Override
234     public void dial(String address, int clirMode, Message result) {
235     }
236
237     @Override
238     public void dial(String address, int clirMode, UUSInfo uusInfo, Message result) {
239     }
240
241     @Override
242     public void getIMSI(Message result) {
243     }
244
245     @Override
246     public void getIMEI(Message result) {
247     }
248
249     @Override
250     public void getIMEISV(Message result) {
251     }
252
253     @Override
254     public void hangupConnection(int gsmIndex, Message result) {
255     }
256
257     @Override
258     public void hangupWaitingOrBackground(Message result) {
259     }
260
261     @Override
262     public void hangupForegroundResumeBackground(Message result) {
263     }
264
265     @Override
266     public void switchWaitingOrHoldingAndActive(Message result) {
267     }
268
269     @Override
270     public void conference(Message result) {
271     }
272
273     @Override
274     public void setPreferredVoicePrivacy(boolean enable, Message result) {
275     }
276
277     @Override
278     public void getPreferredVoicePrivacy(Message result) {
279     }
280
281     @Override
282     public void separateConnection(int gsmIndex, Message result) {
283     }
284
285     @Override
286     public void acceptCall(Message result) {
287     }
288
289     @Override
290     public void rejectCall(Message result) {
291     }
292
293     @Override
294     public void explicitCallTransfer(Message result) {
295     }
296
297     @Override
298     public void getLastCallFailCause(Message result) {
299     }
300
301     @Override
302     public void getLastPdpFailCause(Message result) {
303     }
304
305     @Override
306     public void getLastDataCallFailCause(Message result) {
307     }
308
309     @Override
310     public void setMute(boolean enableMute, Message response) {
311     }
312
313     @Override
314     public void getMute(Message response) {
315     }
316
317     @Override
318     public void getSignalStrength(Message response) {
319     }
320
321     @Override
322     public void getVoiceRegistrationState(Message response) {
323     }
324
325     @Override
326     public void getDataRegistrationState(Message response) {
327     }
328
329     @Override
330     public void getOperator(Message response) {
331     }
332
333     @Override
334     public void sendDtmf(char c, Message result) {
335     }
336
337     @Override
338     public void startDtmf(char c, Message result) {
339     }
340
341     @Override
342     public void stopDtmf(Message result) {
343     }
344
345     @Override
346     public void sendBurstDtmf(String dtmfString, int on, int off, Message result) {
347     }
348
349     @Override
350     public void sendSMS(String smscPDU, String pdu, Message response) {
351     }
352
353     @Override
354     public void sendCdmaSms(byte[] pdu, Message response) {
355     }
356
357     @Override
358     public void sendImsGsmSms (String smscPDU, String pdu,
359             int retry, int messageRef, Message response) {
360     }
361
362     @Override
363     public void sendImsCdmaSms(byte[] pdu, int retry, int messageRef,
364             Message response) {
365     }
366
367     @Override
368     public void deleteSmsOnSim(int index, Message response) {
369     }
370
371     @Override
372     public void deleteSmsOnRuim(int index, Message response) {
373     }
374
375     @Override
376     public void writeSmsToSim(int status, String smsc, String pdu, Message response) {
377     }
378
379     @Override
380     public void writeSmsToRuim(int status, String pdu, Message response) {
381     }
382
383     @Override
384     public void setRadioPower(boolean on, Message response) {
385     }
386
387     @Override
388     public void acknowledgeLastIncomingCdmaSms(boolean success, int cause, Message response) {
389     }
390
391     @Override
392     public void iccIO(int command, int fileid, String path, int p1, int p2, int p3, String data,
393             String pin2, Message response) {
394     }
395
396     @Override
397     public void queryCLIP(Message response) {
398     }
399
400     @Override
401     public void getCLIR(Message response) {
402     }
403
404     @Override
405     public void setCLIR(int clirMode, Message response) {
406     }
407
408     @Override
409     public void queryCallWaiting(int serviceClass, Message response) {
410     }
411
412     @Override
413     public void setCallWaiting(boolean enable, int serviceClass, Message response) {
414     }
415
416     @Override
417     public void setCallForward(int action, int cfReason, int serviceClass, String number,
418             int timeSeconds, Message response) {
419     }
420
421     @Override
422     public void queryCallForwardStatus(int cfReason, int serviceClass, String number,
423             Message response) {
424     }
425
426     @Override
427     public void setNetworkSelectionModeAutomatic(Message response) {
428     }
429
430     @Override
431     public void setNetworkSelectionModeManual(String operatorNumeric, Message response) {
432     }
433
434     @Override
435     public void getNetworkSelectionMode(Message response) {
436     }
437
438     @Override
439     public void getAvailableNetworks(Message response) {
440     }
441
442     @Override
443     public void getBasebandVersion(Message response) {
444     }
445
446     @Override
447     public void queryFacilityLock(String facility, String password, int serviceClass,
448             Message response) {
449     }
450
451     @Override
452     public void queryFacilityLockForApp(String facility, String password, int serviceClass,
453             String appId, Message response) {
454     }
455
456     @Override
457     public void setFacilityLock(String facility, boolean lockState, String password,
458             int serviceClass, Message response) {
459     }
460
461     @Override
462     public void setFacilityLockForApp(String facility, boolean lockState, String password,
463             int serviceClass, String appId, Message response) {
464     }
465
466     @Override
467     public void sendUSSD(String ussdString, Message response) {
468     }
469
470     @Override
471     public void cancelPendingUssd(Message response) {
472     }
473
474     @Override
475     public void resetRadio(Message result) {
476     }
477
478     @Override
479     public void setBandMode(int bandMode, Message response) {
480     }
481
482     @Override
483     public void queryAvailableBandMode(Message response) {
484     }
485
486     @Override
487     public void setPreferredNetworkType(int networkType, Message response) {
488     }
489
490     @Override
491     public void getPreferredNetworkType(Message response) {
492     }
493
494     @Override
495     public void getNeighboringCids(Message response) {
496     }
497
498     @Override
499     public void setLocationUpdates(boolean enable, Message response) {
500     }
501
502     @Override
503     public void getSmscAddress(Message result) {
504     }
505
506     @Override
507     public void setSmscAddress(String address, Message result) {
508     }
509
510     @Override
511     public void reportSmsMemoryStatus(boolean available, Message result) {
512     }
513
514     @Override
515     public void reportStkServiceIsRunning(Message result) {
516     }
517
518     @Override
519     public void invokeOemRilRequestRaw(byte[] data, Message response) {
520     }
521
522     @Override
523     public void invokeOemRilRequestStrings(String[] strings, Message response) {
524     }
525
526     @Override
527     public void sendTerminalResponse(String contents, Message response) {
528     }
529
530     @Override
531     public void sendEnvelope(String contents, Message response) {
532     }
533
534     @Override
535     public void handleCallSetupRequestFromSim(boolean accept, Message response) {
536     }
537
538     @Override
539     public void setGsmBroadcastActivation(boolean activate, Message result) {
540     }
541
542     @Override
543     public void setGsmBroadcastConfig(SmsBroadcastConfigInfo[] config, Message response) {
544     }
545
546     @Override
547     public void getGsmBroadcastConfig(Message response) {
548     }
549
550     @Override
551     public void getDeviceIdentity(Message response) {
552     }
553
554     @Override
555     public void getCDMASubscription(Message response) {
556     }
557
558     @Override
559     public void getImsRegistrationState (Message result) {
560     }
561
562     @Override
563     public void sendCDMAFeatureCode(String FeatureCode, Message response) {
564     }
565
566     @Override
567     public void setPhoneType(int phoneType) {
568     }
569
570     @Override
571     public void queryCdmaRoamingPreference(Message response) {
572     }
573
574     @Override
575     public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) {
576     }
577
578     @Override
579     public void setCdmaSubscriptionSource(int cdmaSubscriptionType, Message response) {
580     }
581
582     @Override
583     public void getCdmaSubscriptionSource(Message response) {
584     }
585
586     @Override
587     public void setTTYMode(int ttyMode, Message response) {
588     }
589
590     @Override
591     public void queryTTYMode(Message response) {
592     }
593
594     @Override
595     public void setupDataCall(String radioTechnology, String profile, String apn, String user,
596             String password, String authType, String protocol, Message result) {
597     }
598
599     @Override
600     public void deactivateDataCall(int cid, int reason, Message result) {
601     }
602
603     @Override
604     public void setCdmaBroadcastActivation(boolean activate, Message result) {
605     }
606
607     @Override
608     public void setCdmaBroadcastConfig(CdmaSmsBroadcastConfigInfo[] configs, Message response) {
609     }
610
611     @Override
612     public void getCdmaBroadcastConfig(Message result) {
613     }
614
615     @Override
616     public void exitEmergencyCallbackMode(Message response) {
617     }
618
619     @Override
620     public void getIccCardStatus(Message result) {
621     }
622
623     @Override
624     public void requestIsimAuthentication(String nonce, Message response) {
625     }
626
627     @Override
628     public void requestIccSimAuthentication(String data, Message response) {
629     }
630
631     @Override
632     public void getVoiceRadioTechnology(Message response) {
633     }
634
635     @Override
636     public void getCellInfoList(Message result) {
637     }
638
639     @Override
640     public void setCellInfoListRate(int rateInMillis, Message response) {
641     }
642
643     @Override
644     public void setInitialAttachApn(String apn, String protocol, int authType, String username,
645             String password, Message result) {
646     }
647
648     @Override
649     public void setDataProfile(DataProfile[] dps, Message result) {
650     }
651
652     @Override
653     public void getIMSIForApp(String aid, Message result) {
654     }
655
656     @Override
657     public void iccIOForApp(int command, int fileid, String path, int p1, int p2, int p3,
658             String data, String pin2, String aid, Message response) {
659     }
660
661     @Override
662     public void iccOpenLogicalChannel(String AID, Message response) {
663     }
664
665     @Override
666     public void iccCloseLogicalChannel(int channel, Message response) {
667     }
668
669     @Override
670     public void iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
671             int p1, int p2, int p3, String data, Message response) {
672     }
673
674     @Override
675     public void iccTransmitApduBasicChannel(int cla, int instruction, int p1, int p2,
676             int p3, String data, Message response) {
677     }
678
679     @Override
680     public void nvReadItem(int itemID, Message response) {
681     }
682
683     @Override
684     public void nvWriteItem(int itemID, String itemValue, Message response) {
685     }
686
687     @Override
688     public void nvWriteCdmaPrl(byte[] preferredRoamingList, Message response) {
689     }
690
691     @Override
692     public void nvResetConfig(int resetType, Message response) {
693     }
694 }