112de25a6f806848952d8c334a90c5884aba4690fTom Taylor/* 212de25a6f806848952d8c334a90c5884aba4690fTom Taylor * Copyright (C) 2008 The Android Open Source Project 312de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 412de25a6f806848952d8c334a90c5884aba4690fTom Taylor * Licensed under the Apache License, Version 2.0 (the "License"); 512de25a6f806848952d8c334a90c5884aba4690fTom Taylor * you may not use this file except in compliance with the License. 612de25a6f806848952d8c334a90c5884aba4690fTom Taylor * You may obtain a copy of the License at 712de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 812de25a6f806848952d8c334a90c5884aba4690fTom Taylor * http://www.apache.org/licenses/LICENSE-2.0 912de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 1012de25a6f806848952d8c334a90c5884aba4690fTom Taylor * Unless required by applicable law or agreed to in writing, software 1112de25a6f806848952d8c334a90c5884aba4690fTom Taylor * distributed under the License is distributed on an "AS IS" BASIS, 1212de25a6f806848952d8c334a90c5884aba4690fTom Taylor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1312de25a6f806848952d8c334a90c5884aba4690fTom Taylor * See the License for the specific language governing permissions and 1412de25a6f806848952d8c334a90c5884aba4690fTom Taylor * limitations under the License. 1512de25a6f806848952d8c334a90c5884aba4690fTom Taylor */ 1612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 1712de25a6f806848952d8c334a90c5884aba4690fTom Taylorpackage com.android.basicsmsreceiver; 1812de25a6f806848952d8c334a90c5884aba4690fTom Taylor 1912de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport java.util.ArrayList; 2012de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport java.util.List; 2112de25a6f806848952d8c334a90c5884aba4690fTom Taylor 2212de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.app.Activity; 2312de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.app.PendingIntent; 2412de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.content.BroadcastReceiver; 2512de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.content.Context; 2612de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.content.Intent; 2712de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.content.IntentFilter; 2812de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.database.Cursor; 2912de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.graphics.Color; 3012de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.os.Bundle; 3112de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.provider.Telephony; 3212de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.telephony.SmsManager; 3312de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.telephony.SmsMessage; 3412de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.telephony.TelephonyManager; 3512de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.test.ActivityInstrumentationTestCase2; 3612de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.test.suitebuilder.annotation.MediumTest; 3712de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.test.suitebuilder.annotation.SmallTest; 3812de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.test.suitebuilder.annotation.LargeTest; 3912de25a6f806848952d8c334a90c5884aba4690fTom Taylorimport android.util.Log; 4012de25a6f806848952d8c334a90c5884aba4690fTom Taylor 4112de25a6f806848952d8c334a90c5884aba4690fTom Taylor/** 4212de25a6f806848952d8c334a90c5884aba4690fTom Taylor * Various instrumentation tests for BasicSmsReceiver. 4312de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 4412de25a6f806848952d8c334a90c5884aba4690fTom Taylor * To run this test: runtest basicsmsreceiver 4512de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 4612de25a6f806848952d8c334a90c5884aba4690fTom Taylor * TODO: write tests that verify that notifications get created. As of now, I don't see a way 4712de25a6f806848952d8c334a90c5884aba4690fTom Taylor * to query the NotificationManager for what notifications are there. I only see methods to 4812de25a6f806848952d8c334a90c5884aba4690fTom Taylor * post and cancel notifications. 4912de25a6f806848952d8c334a90c5884aba4690fTom Taylor * 5012de25a6f806848952d8c334a90c5884aba4690fTom Taylor */ 5112de25a6f806848952d8c334a90c5884aba4690fTom Taylorpublic class DialogSmsDisplayTests 5212de25a6f806848952d8c334a90c5884aba4690fTom Taylor extends ActivityInstrumentationTestCase2<DialogSmsDisplay> { 5312de25a6f806848952d8c334a90c5884aba4690fTom Taylor 5412de25a6f806848952d8c334a90c5884aba4690fTom Taylor private boolean mHasSms; 5512de25a6f806848952d8c334a90c5884aba4690fTom Taylor private String mMyNumber; // phone number of this device 5612de25a6f806848952d8c334a90c5884aba4690fTom Taylor public static final String ACTION_SMS_SENT = 5712de25a6f806848952d8c334a90c5884aba4690fTom Taylor "com.android.basicsmsreceiver.tests.SMS_SENT_ACTION"; 5812de25a6f806848952d8c334a90c5884aba4690fTom Taylor private static String TAG = "DialogSmsDisplayTests"; 5912de25a6f806848952d8c334a90c5884aba4690fTom Taylor private List<String> mReceivedMessages = new ArrayList<String>(); 6012de25a6f806848952d8c334a90c5884aba4690fTom Taylor private String mReceivedSender; 6112de25a6f806848952d8c334a90c5884aba4690fTom Taylor private DialogSmsDisplay dialogSmsDisplayActivity; 6212de25a6f806848952d8c334a90c5884aba4690fTom Taylor private int mMessageReceivedCount; 6312de25a6f806848952d8c334a90c5884aba4690fTom Taylor private BroadcastReceiver mSmsSenderReceiver; 6412de25a6f806848952d8c334a90c5884aba4690fTom Taylor private BroadcastReceiver mSmsReceiverReceiver; 6512de25a6f806848952d8c334a90c5884aba4690fTom Taylor 6612de25a6f806848952d8c334a90c5884aba4690fTom Taylor public DialogSmsDisplayTests() { 6712de25a6f806848952d8c334a90c5884aba4690fTom Taylor super("com.android.basicsmsreceiver", DialogSmsDisplay.class); 6812de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "DialogSmsDisplayTests"); 6912de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 7012de25a6f806848952d8c334a90c5884aba4690fTom Taylor 7112de25a6f806848952d8c334a90c5884aba4690fTom Taylor @Override 7212de25a6f806848952d8c334a90c5884aba4690fTom Taylor protected void setUp() throws Exception { 7312de25a6f806848952d8c334a90c5884aba4690fTom Taylor super.setUp(); 7412de25a6f806848952d8c334a90c5884aba4690fTom Taylor 7512de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity = (DialogSmsDisplay)getActivity(); 7612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 7712de25a6f806848952d8c334a90c5884aba4690fTom Taylor TelephonyManager telephonyManager = ((TelephonyManager)dialogSmsDisplayActivity 7812de25a6f806848952d8c334a90c5884aba4690fTom Taylor .getSystemService(Context.TELEPHONY_SERVICE)); 7912de25a6f806848952d8c334a90c5884aba4690fTom Taylor mHasSms = true; //telephonyManager.isSmsCapable(); 8012de25a6f806848952d8c334a90c5884aba4690fTom Taylor mMyNumber = telephonyManager.getLine1Number(); 8112de25a6f806848952d8c334a90c5884aba4690fTom Taylor 8212de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "hasSms: " + mHasSms + " my number: " + mMyNumber); 8312de25a6f806848952d8c334a90c5884aba4690fTom Taylor 8412de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertTrue("SMS must be enabled on the device", mHasSms); 8512de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertNotNull("Device does not have a phone number", mMyNumber); 8612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 8712de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (mHasSms) { 8812de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Register broadcast receivers for SMS sent and delivered intents 8912de25a6f806848952d8c334a90c5884aba4690fTom Taylor mSmsSenderReceiver = new BroadcastReceiver() { 9012de25a6f806848952d8c334a90c5884aba4690fTom Taylor @Override 9112de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void onReceive(Context context, Intent intent) { 9212de25a6f806848952d8c334a90c5884aba4690fTom Taylor String message = null; 9312de25a6f806848952d8c334a90c5884aba4690fTom Taylor boolean error = true; 9412de25a6f806848952d8c334a90c5884aba4690fTom Taylor switch (getResultCode()) { 9512de25a6f806848952d8c334a90c5884aba4690fTom Taylor case Activity.RESULT_OK: 9612de25a6f806848952d8c334a90c5884aba4690fTom Taylor message = "Message sent!"; 9712de25a6f806848952d8c334a90c5884aba4690fTom Taylor error = false; 9812de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 9912de25a6f806848952d8c334a90c5884aba4690fTom Taylor case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 10012de25a6f806848952d8c334a90c5884aba4690fTom Taylor message = "Error."; 10112de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 10212de25a6f806848952d8c334a90c5884aba4690fTom Taylor case SmsManager.RESULT_ERROR_NO_SERVICE: 10312de25a6f806848952d8c334a90c5884aba4690fTom Taylor message = "Error: No SMS service."; 10412de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 10512de25a6f806848952d8c334a90c5884aba4690fTom Taylor case SmsManager.RESULT_ERROR_NULL_PDU: 10612de25a6f806848952d8c334a90c5884aba4690fTom Taylor message = "Error: Null PDU."; 10712de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 10812de25a6f806848952d8c334a90c5884aba4690fTom Taylor case SmsManager.RESULT_ERROR_RADIO_OFF: 10912de25a6f806848952d8c334a90c5884aba4690fTom Taylor message = "Error: Radio off."; 11012de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 11112de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 11212de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertFalse(message, error); 11312de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 11412de25a6f806848952d8c334a90c5884aba4690fTom Taylor }; 11512de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity.registerReceiver(mSmsSenderReceiver, 11612de25a6f806848952d8c334a90c5884aba4690fTom Taylor new IntentFilter(ACTION_SMS_SENT)); 11712de25a6f806848952d8c334a90c5884aba4690fTom Taylor 11812de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Register broadcast receivers for received SMS 11912de25a6f806848952d8c334a90c5884aba4690fTom Taylor mSmsReceiverReceiver = new BroadcastReceiver() { 12012de25a6f806848952d8c334a90c5884aba4690fTom Taylor @Override 12112de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void onReceive(Context context, Intent intent) { 12212de25a6f806848952d8c334a90c5884aba4690fTom Taylor Bundle extras = intent.getExtras(); 12312de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "onReceive"); 12412de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (extras == null) 12512de25a6f806848952d8c334a90c5884aba4690fTom Taylor return; 12612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 12712de25a6f806848952d8c334a90c5884aba4690fTom Taylor Object[] pdus = (Object[]) extras.get("pdus"); 12812de25a6f806848952d8c334a90c5884aba4690fTom Taylor 12912de25a6f806848952d8c334a90c5884aba4690fTom Taylor for (int i = 0; i < pdus.length; i++) { 13012de25a6f806848952d8c334a90c5884aba4690fTom Taylor SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]); 13112de25a6f806848952d8c334a90c5884aba4690fTom Taylor String sender = message.getOriginatingAddress(); 13212de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (mReceivedSender != null) { 13312de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(mReceivedSender, sender); 13412de25a6f806848952d8c334a90c5884aba4690fTom Taylor } else { 13512de25a6f806848952d8c334a90c5884aba4690fTom Taylor mReceivedSender = sender; 13612de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 13712de25a6f806848952d8c334a90c5884aba4690fTom Taylor mReceivedMessages.add(message.getMessageBody().toString()); 13812de25a6f806848952d8c334a90c5884aba4690fTom Taylor 13912de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "From: " + mReceivedSender + " message: " + 14012de25a6f806848952d8c334a90c5884aba4690fTom Taylor mReceivedMessages.get(mReceivedMessages.size() - 1)); 14112de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 14212de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 14312de25a6f806848952d8c334a90c5884aba4690fTom Taylor }; 14412de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity.registerReceiver(mSmsReceiverReceiver, 14512de25a6f806848952d8c334a90c5884aba4690fTom Taylor new IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)); 14612de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 14712de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 14812de25a6f806848952d8c334a90c5884aba4690fTom Taylor 14912de25a6f806848952d8c334a90c5884aba4690fTom Taylor @Override 15012de25a6f806848952d8c334a90c5884aba4690fTom Taylor protected void tearDown() throws Exception { 15112de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (mSmsSenderReceiver != null) { 15212de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity.unregisterReceiver(mSmsSenderReceiver); 15312de25a6f806848952d8c334a90c5884aba4690fTom Taylor mSmsSenderReceiver = null; 15412de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 15512de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (mSmsReceiverReceiver != null) { 15612de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity.unregisterReceiver(mSmsReceiverReceiver); 15712de25a6f806848952d8c334a90c5884aba4690fTom Taylor mSmsReceiverReceiver = null; 15812de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 15912de25a6f806848952d8c334a90c5884aba4690fTom Taylor super.tearDown(); 16012de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 16112de25a6f806848952d8c334a90c5884aba4690fTom Taylor 16212de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Returns the broken up list of messages for long messages or the original message in 16312de25a6f806848952d8c334a90c5884aba4690fTom Taylor // element 0. 16412de25a6f806848952d8c334a90c5884aba4690fTom Taylor private List<String> sendSmsMessageInternal(String messageOut) { 16512de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (!mHasSms) { 16612de25a6f806848952d8c334a90c5884aba4690fTom Taylor fail("no sms on device"); 16712de25a6f806848952d8c334a90c5884aba4690fTom Taylor return null; 16812de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 16912de25a6f806848952d8c334a90c5884aba4690fTom Taylor SmsManager sms = SmsManager.getDefault(); 17012de25a6f806848952d8c334a90c5884aba4690fTom Taylor 17112de25a6f806848952d8c334a90c5884aba4690fTom Taylor List<String> messages = sms.divideMessage(messageOut); 17212de25a6f806848952d8c334a90c5884aba4690fTom Taylor mMessageReceivedCount = 0; 17312de25a6f806848952d8c334a90c5884aba4690fTom Taylor mReceivedSender = null; 17412de25a6f806848952d8c334a90c5884aba4690fTom Taylor mReceivedMessages.clear(); 17512de25a6f806848952d8c334a90c5884aba4690fTom Taylor 17612de25a6f806848952d8c334a90c5884aba4690fTom Taylor for (String message : messages) { 17712de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "sendSmsMessage: " + messageOut + " to: " + mMyNumber); 17812de25a6f806848952d8c334a90c5884aba4690fTom Taylor sms.sendTextMessage(mMyNumber, null, message, PendingIntent.getBroadcast( 17912de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity, 0, new Intent(ACTION_SMS_SENT), 0), null); 18012de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 18112de25a6f806848952d8c334a90c5884aba4690fTom Taylor return messages; 18212de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 18312de25a6f806848952d8c334a90c5884aba4690fTom Taylor 18412de25a6f806848952d8c334a90c5884aba4690fTom Taylor // returns true if "messageCount" sms messages are received, false if timeout 18512de25a6f806848952d8c334a90c5884aba4690fTom Taylor private boolean waitForSms(int messageCount) { 18612de25a6f806848952d8c334a90c5884aba4690fTom Taylor // wait up to two minutes for the sent message to be received 18712de25a6f806848952d8c334a90c5884aba4690fTom Taylor long now = System.currentTimeMillis(); 18812de25a6f806848952d8c334a90c5884aba4690fTom Taylor boolean success = true; 18912de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "waitForSms -- waiting for: " + messageCount + " parts"); 19012de25a6f806848952d8c334a90c5884aba4690fTom Taylor while (mReceivedMessages.size() < messageCount) { 19112de25a6f806848952d8c334a90c5884aba4690fTom Taylor try { 19212de25a6f806848952d8c334a90c5884aba4690fTom Taylor Thread.sleep(1000); 19312de25a6f806848952d8c334a90c5884aba4690fTom Taylor } catch (Exception e) { 19412de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 19512de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (System.currentTimeMillis() - now > 1000 * 2 * 60) { 19612de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Give up after two minutes 19712de25a6f806848952d8c334a90c5884aba4690fTom Taylor success = false; 19812de25a6f806848952d8c334a90c5884aba4690fTom Taylor break; 19912de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 20012de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 20112de25a6f806848952d8c334a90c5884aba4690fTom Taylor if (success) { 20212de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Wait 5 seconds for the dialog to launch and update 20312de25a6f806848952d8c334a90c5884aba4690fTom Taylor try { 20412de25a6f806848952d8c334a90c5884aba4690fTom Taylor Thread.sleep(5000); 20512de25a6f806848952d8c334a90c5884aba4690fTom Taylor } catch (Exception e) { 20612de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 20712de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 20812de25a6f806848952d8c334a90c5884aba4690fTom Taylor return success; 20912de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 21012de25a6f806848952d8c334a90c5884aba4690fTom Taylor 21112de25a6f806848952d8c334a90c5884aba4690fTom Taylor private void sendMessageTest(String message) { 21212de25a6f806848952d8c334a90c5884aba4690fTom Taylor List<String> messages = sendSmsMessageInternal(message); 21312de25a6f806848952d8c334a90c5884aba4690fTom Taylor Log.i(TAG, "sendMessageTest -- message broken into " + messages.size() + "parts"); 21412de25a6f806848952d8c334a90c5884aba4690fTom Taylor 21512de25a6f806848952d8c334a90c5884aba4690fTom Taylor boolean receivedSms = waitForSms(messages.size()); 21612de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertTrue("sms not received after two minutes", receivedSms); 21712de25a6f806848952d8c334a90c5884aba4690fTom Taylor 21812de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Check to see if message/# matches 21912de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(mMyNumber, mReceivedSender); 22012de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(messages.size(), mReceivedMessages.size()); 22112de25a6f806848952d8c334a90c5884aba4690fTom Taylor int i = 0; 22212de25a6f806848952d8c334a90c5884aba4690fTom Taylor for (String messageFrag : messages) { 22312de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(messageFrag, mReceivedMessages.get(i++)); 22412de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 22512de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 22612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 22712de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void testSendingSmallSmsMessage() { 22812de25a6f806848952d8c334a90c5884aba4690fTom Taylor sendMessageTest("This is a regular size message that might be sent"); 22912de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 23012de25a6f806848952d8c334a90c5884aba4690fTom Taylor 23112de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void testSendingLargeSmsMessage() { 23212de25a6f806848952d8c334a90c5884aba4690fTom Taylor sendMessageTest("This is a long long message. " + 23312de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23412de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23512de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23612de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23712de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23812de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 23912de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24012de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24112de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24212de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24312de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24412de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24512de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24612de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24712de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24812de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 24912de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25012de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25112de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25212de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25312de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25412de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25512de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25612de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25712de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25812de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. " + 25912de25a6f806848952d8c334a90c5884aba4690fTom Taylor "This is a long long message. "); 26012de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 26112de25a6f806848952d8c334a90c5884aba4690fTom Taylor 26212de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void testOnNewIntentSmall() { 26312de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Test a small message and a non-numeric phone number 26412de25a6f806848952d8c334a90c5884aba4690fTom Taylor sendOnNewIntent("this is a big fat test", "xyzzy", 2000); 26512de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 26612de25a6f806848952d8c334a90c5884aba4690fTom Taylor 26712de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void testOnNewIntentLarge() { 26812de25a6f806848952d8c334a90c5884aba4690fTom Taylor // A long message like this should never really happen because SMS messages are limited 26912de25a6f806848952d8c334a90c5884aba4690fTom Taylor // to about 140 characters. 27012de25a6f806848952d8c334a90c5884aba4690fTom Taylor sendOnNewIntent("now is the time for all good men to come to the aid of their country1" + 27112de25a6f806848952d8c334a90c5884aba4690fTom Taylor "now is the time for all good men to come to the aid of their country2" + 27212de25a6f806848952d8c334a90c5884aba4690fTom Taylor "now is the time for all good men to come to the aid of their country3", 27312de25a6f806848952d8c334a90c5884aba4690fTom Taylor "513-891-7823", 2001); 27412de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 27512de25a6f806848952d8c334a90c5884aba4690fTom Taylor 27612de25a6f806848952d8c334a90c5884aba4690fTom Taylor public void sendOnNewIntent(String message, String dest, int notificationId) { 27712de25a6f806848952d8c334a90c5884aba4690fTom Taylor Intent di = new Intent(); 27812de25a6f806848952d8c334a90c5884aba4690fTom Taylor di.setClass(dialogSmsDisplayActivity, DialogSmsDisplay.class); 27912de25a6f806848952d8c334a90c5884aba4690fTom Taylor di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | 28012de25a6f806848952d8c334a90c5884aba4690fTom Taylor Intent.FLAG_ACTIVITY_CLEAR_TOP); 28112de25a6f806848952d8c334a90c5884aba4690fTom Taylor di.putExtra(DialogSmsDisplay.SMS_FROM_ADDRESS_EXTRA, dest); 28212de25a6f806848952d8c334a90c5884aba4690fTom Taylor di.putExtra(DialogSmsDisplay.SMS_MESSAGE_EXTRA, message); 28312de25a6f806848952d8c334a90c5884aba4690fTom Taylor di.putExtra(DialogSmsDisplay.SMS_NOTIFICATION_ID_EXTRA, notificationId); 28412de25a6f806848952d8c334a90c5884aba4690fTom Taylor dialogSmsDisplayActivity.onNewIntent(di); 28512de25a6f806848952d8c334a90c5884aba4690fTom Taylor 28612de25a6f806848952d8c334a90c5884aba4690fTom Taylor // Check to see if message/# matches 28712de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(dest, dialogSmsDisplayActivity.mFromAddress); 28812de25a6f806848952d8c334a90c5884aba4690fTom Taylor assertEquals(message, dialogSmsDisplayActivity.mMessage); 28912de25a6f806848952d8c334a90c5884aba4690fTom Taylor } 29012de25a6f806848952d8c334a90c5884aba4690fTom Taylor} 291