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