Loading src/java/com/android/internal/telephony/InboundSmsTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import java.util.Date; * This is similar to {@link com.android.internal.telephony.SMSDispatcher.SmsTracker} used for * outgoing messages. */ public final class InboundSmsTracker { public class InboundSmsTracker { // Fields for single and multi-part messages private final byte[] mPdu; Loading tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java +26 −3 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.util.Log; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Locale; Loading Loading @@ -252,7 +253,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading @@ -263,7 +266,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading @@ -275,7 +280,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading Loading @@ -336,6 +343,8 @@ public class ContextFixture implements TestFixture<Context> { ArrayListMultimap.create(); private final HashMap<String, Intent> mStickyBroadcastByAction = new HashMap<String, Intent>(); private final Multimap<Intent, BroadcastReceiver> mOrderedBroadcastReceivers = ArrayListMultimap.create(); // The application context is the most important object this class provides to the system // under test. Loading Loading @@ -442,6 +451,20 @@ public class ContextFixture implements TestFixture<Context> { return result; } public void sendBroadcastToOrderedBroadcastReceivers() { synchronized (mOrderedBroadcastReceivers) { // having a map separate from mOrderedBroadcastReceivers is helpful here as onReceive() // call within the loop may lead to sendOrderedBroadcast() which can add to // mOrderedBroadcastReceivers Collection<Map.Entry<Intent, BroadcastReceiver>> map = mOrderedBroadcastReceivers.entries(); for (Map.Entry<Intent, BroadcastReceiver> entry : map) { entry.getValue().onReceive(mContext, entry.getKey()); mOrderedBroadcastReceivers.remove(entry.getKey(), entry.getValue()); } } } private static void logd(String s) { Log.d(TAG, s); } Loading tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaInboundSmsHandlerTest.java +24 −25 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.InboundSmsHandler; import com.android.internal.telephony.SmsStorageMonitor; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTestUtils; import com.android.internal.telephony.cdma.sms.SmsEnvelope; import com.android.internal.util.IState; import com.android.internal.util.StateMachine; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.junit.Assert.*; import static org.mockito.Mockito.*; Loading @@ -41,12 +41,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; public class CdmaInboundSmsHandlerTest extends TelephonyTest { @Mock Loading Loading @@ -109,16 +106,21 @@ public class CdmaInboundSmsHandlerTest extends TelephonyTest { super.tearDown(); } @Test @SmallTest public void testNewSms() { private void transitionFromStartupToIdle() { // verify initially in StartupState assertEquals("StartupState", getCurrentState().getName()); // trigger transition to IdleState mCdmaInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_START_ACCEPTING_SMS); TelephonyTestUtils.waitForMs(50); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } @Test @SmallTest public void testNewSms() { transitionFromStartupToIdle(); // send new SMS to state machine and verify that triggers SMS_DELIVER_ACTION byte[] smsPdu = new byte[]{(byte)0xFF, (byte)0xFF, (byte)0xFF}; Loading @@ -130,28 +132,25 @@ public class CdmaInboundSmsHandlerTest extends TelephonyTest { doReturn(true).when(userManager).isUserUnlocked(); mCdmaInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_NEW_SMS, new AsyncResult(null, mSmsMessage, null)); TelephonyTestUtils.waitForMs(100); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext, times(2)).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION, intentArgumentCaptor.getAllValues().get(1).getAction()); assertEquals("WaitingState", getCurrentState().getName()); List<Intent> list = intentArgumentCaptor.getAllValues(); /* logd("list.size() " + list.size()); for (int i = 0; i < list.size(); i++) { logd("list.get(i) " + list.get(i)); } */ //todo: seems to be some issue with ArgumentCaptor. Both DELIVER and RECEIVED broadcasts //can be seen in logs but according to list both are RECEIVED //assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, // list.get(0).getAction()); boolean smsReceivedAction = false; for (Intent i : list) { if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(i.getAction())) { smsReceivedAction = true; break; } } assertTrue(smsReceivedAction); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } Loading tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java +52 −26 Original line number Diff line number Diff line Loading @@ -26,12 +26,13 @@ import android.telephony.*; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.InboundSmsHandler; import com.android.internal.telephony.InboundSmsTracker; import com.android.internal.telephony.SmsStorageMonitor; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTestUtils; import com.android.internal.util.IState; import com.android.internal.util.StateMachine; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.junit.Assert.*; import static org.mockito.Mockito.*; Loading @@ -40,12 +41,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; public class GsmInboundSmsHandlerTest extends TelephonyTest { @Mock Loading @@ -54,6 +51,8 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { private android.telephony.SmsMessage mSmsMessage; @Mock private SmsMessage mGsmSmsMessage; @Mock private InboundSmsTracker mInboundSmsTracker; private GsmInboundSmsHandler mGsmInboundSmsHandler; private TelephonyManager mTelephonyManager; Loading Loading @@ -103,16 +102,21 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { super.tearDown(); } @Test @SmallTest public void testNewSms() { private void transitionFromStartupToIdle() { // verify initially in StartupState assertEquals("StartupState", getCurrentState().getName()); // trigger transition to IdleState mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_START_ACCEPTING_SMS); TelephonyTestUtils.waitForMs(50); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } @Test @SmallTest public void testNewSms() { transitionFromStartupToIdle(); // send new SMS to state machine and verify that triggers SMS_DELIVER_ACTION byte[] smsPdu = new byte[]{(byte)0xFF, (byte)0xFF, (byte)0xFF}; Loading @@ -123,28 +127,50 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { doReturn(true).when(userManager).isUserUnlocked(); mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_NEW_SMS, new AsyncResult(null, mSmsMessage, null)); TelephonyTestUtils.waitForMs(100); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext, times(2)).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION, intentArgumentCaptor.getAllValues().get(1).getAction()); assertEquals("WaitingState", getCurrentState().getName()); List<Intent> list = intentArgumentCaptor.getAllValues(); /* logd("list.size() " + list.size()); for (int i = 0; i < list.size(); i++) { logd("list.get(i) " + list.get(i)); } */ //todo: seems to be some issue with ArgumentCaptor. Both DELIVER and RECEIVED broadcasts //can be seen in logs but according to list both are RECEIVED //assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, // list.get(0).getAction()); boolean smsReceivedAction = false; for (Intent i : list) { if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(i.getAction())) { smsReceivedAction = true; break; } mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } assertTrue(smsReceivedAction); @Test @SmallTest public void testBroadcastSms() { transitionFromStartupToIdle(); UserManager userManager = (UserManager)mContext.getSystemService(Context.USER_SERVICE); doReturn(1).when(mInboundSmsTracker).getMessageCount(); doReturn(0).when(mInboundSmsTracker).getDestPort(); doReturn(true).when(userManager).isUserUnlocked(); mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_BROADCAST_SMS, mInboundSmsTracker); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.DATA_SMS_RECEIVED_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } Loading Loading
src/java/com/android/internal/telephony/InboundSmsTracker.java +1 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import java.util.Date; * This is similar to {@link com.android.internal.telephony.SMSDispatcher.SmsTracker} used for * outgoing messages. */ public final class InboundSmsTracker { public class InboundSmsTracker { // Fields for single and multi-part messages private final byte[] mPdu; Loading
tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java +26 −3 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.util.Log; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Locale; Loading Loading @@ -252,7 +253,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading @@ -263,7 +266,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading @@ -275,7 +280,9 @@ public class ContextFixture implements TestFixture<Context> { logd("sendOrderedBroadcastAsUser called for " + intent.getAction()); sendBroadcast(intent); if (resultReceiver != null) { resultReceiver.onReceive(this, intent); synchronized (mOrderedBroadcastReceivers) { mOrderedBroadcastReceivers.put(intent, resultReceiver); } } } Loading Loading @@ -336,6 +343,8 @@ public class ContextFixture implements TestFixture<Context> { ArrayListMultimap.create(); private final HashMap<String, Intent> mStickyBroadcastByAction = new HashMap<String, Intent>(); private final Multimap<Intent, BroadcastReceiver> mOrderedBroadcastReceivers = ArrayListMultimap.create(); // The application context is the most important object this class provides to the system // under test. Loading Loading @@ -442,6 +451,20 @@ public class ContextFixture implements TestFixture<Context> { return result; } public void sendBroadcastToOrderedBroadcastReceivers() { synchronized (mOrderedBroadcastReceivers) { // having a map separate from mOrderedBroadcastReceivers is helpful here as onReceive() // call within the loop may lead to sendOrderedBroadcast() which can add to // mOrderedBroadcastReceivers Collection<Map.Entry<Intent, BroadcastReceiver>> map = mOrderedBroadcastReceivers.entries(); for (Map.Entry<Intent, BroadcastReceiver> entry : map) { entry.getValue().onReceive(mContext, entry.getKey()); mOrderedBroadcastReceivers.remove(entry.getKey(), entry.getValue()); } } } private static void logd(String s) { Log.d(TAG, s); } Loading
tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaInboundSmsHandlerTest.java +24 −25 Original line number Diff line number Diff line Loading @@ -28,11 +28,11 @@ import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.InboundSmsHandler; import com.android.internal.telephony.SmsStorageMonitor; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTestUtils; import com.android.internal.telephony.cdma.sms.SmsEnvelope; import com.android.internal.util.IState; import com.android.internal.util.StateMachine; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.junit.Assert.*; import static org.mockito.Mockito.*; Loading @@ -41,12 +41,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; public class CdmaInboundSmsHandlerTest extends TelephonyTest { @Mock Loading Loading @@ -109,16 +106,21 @@ public class CdmaInboundSmsHandlerTest extends TelephonyTest { super.tearDown(); } @Test @SmallTest public void testNewSms() { private void transitionFromStartupToIdle() { // verify initially in StartupState assertEquals("StartupState", getCurrentState().getName()); // trigger transition to IdleState mCdmaInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_START_ACCEPTING_SMS); TelephonyTestUtils.waitForMs(50); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } @Test @SmallTest public void testNewSms() { transitionFromStartupToIdle(); // send new SMS to state machine and verify that triggers SMS_DELIVER_ACTION byte[] smsPdu = new byte[]{(byte)0xFF, (byte)0xFF, (byte)0xFF}; Loading @@ -130,28 +132,25 @@ public class CdmaInboundSmsHandlerTest extends TelephonyTest { doReturn(true).when(userManager).isUserUnlocked(); mCdmaInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_NEW_SMS, new AsyncResult(null, mSmsMessage, null)); TelephonyTestUtils.waitForMs(100); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext, times(2)).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION, intentArgumentCaptor.getAllValues().get(1).getAction()); assertEquals("WaitingState", getCurrentState().getName()); List<Intent> list = intentArgumentCaptor.getAllValues(); /* logd("list.size() " + list.size()); for (int i = 0; i < list.size(); i++) { logd("list.get(i) " + list.get(i)); } */ //todo: seems to be some issue with ArgumentCaptor. Both DELIVER and RECEIVED broadcasts //can be seen in logs but according to list both are RECEIVED //assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, // list.get(0).getAction()); boolean smsReceivedAction = false; for (Intent i : list) { if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(i.getAction())) { smsReceivedAction = true; break; } } assertTrue(smsReceivedAction); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } Loading
tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java +52 −26 Original line number Diff line number Diff line Loading @@ -26,12 +26,13 @@ import android.telephony.*; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.InboundSmsHandler; import com.android.internal.telephony.InboundSmsTracker; import com.android.internal.telephony.SmsStorageMonitor; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.TelephonyTestUtils; import com.android.internal.util.IState; import com.android.internal.util.StateMachine; import static com.android.internal.telephony.TelephonyTestUtils.waitForMs; import static org.junit.Assert.*; import static org.mockito.Mockito.*; Loading @@ -40,12 +41,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.Spy; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.List; public class GsmInboundSmsHandlerTest extends TelephonyTest { @Mock Loading @@ -54,6 +51,8 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { private android.telephony.SmsMessage mSmsMessage; @Mock private SmsMessage mGsmSmsMessage; @Mock private InboundSmsTracker mInboundSmsTracker; private GsmInboundSmsHandler mGsmInboundSmsHandler; private TelephonyManager mTelephonyManager; Loading Loading @@ -103,16 +102,21 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { super.tearDown(); } @Test @SmallTest public void testNewSms() { private void transitionFromStartupToIdle() { // verify initially in StartupState assertEquals("StartupState", getCurrentState().getName()); // trigger transition to IdleState mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_START_ACCEPTING_SMS); TelephonyTestUtils.waitForMs(50); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } @Test @SmallTest public void testNewSms() { transitionFromStartupToIdle(); // send new SMS to state machine and verify that triggers SMS_DELIVER_ACTION byte[] smsPdu = new byte[]{(byte)0xFF, (byte)0xFF, (byte)0xFF}; Loading @@ -123,28 +127,50 @@ public class GsmInboundSmsHandlerTest extends TelephonyTest { doReturn(true).when(userManager).isUserUnlocked(); mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_NEW_SMS, new AsyncResult(null, mSmsMessage, null)); TelephonyTestUtils.waitForMs(100); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext, times(2)).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION, intentArgumentCaptor.getAllValues().get(1).getAction()); assertEquals("WaitingState", getCurrentState().getName()); List<Intent> list = intentArgumentCaptor.getAllValues(); /* logd("list.size() " + list.size()); for (int i = 0; i < list.size(); i++) { logd("list.get(i) " + list.get(i)); } */ //todo: seems to be some issue with ArgumentCaptor. Both DELIVER and RECEIVED broadcasts //can be seen in logs but according to list both are RECEIVED //assertEquals(Telephony.Sms.Intents.SMS_DELIVER_ACTION, // list.get(0).getAction()); boolean smsReceivedAction = false; for (Intent i : list) { if (Telephony.Sms.Intents.SMS_RECEIVED_ACTION.equals(i.getAction())) { smsReceivedAction = true; break; } mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } assertTrue(smsReceivedAction); @Test @SmallTest public void testBroadcastSms() { transitionFromStartupToIdle(); UserManager userManager = (UserManager)mContext.getSystemService(Context.USER_SERVICE); doReturn(1).when(mInboundSmsTracker).getMessageCount(); doReturn(0).when(mInboundSmsTracker).getDestPort(); doReturn(true).when(userManager).isUserUnlocked(); mGsmInboundSmsHandler.sendMessage(InboundSmsHandler.EVENT_BROADCAST_SMS, mInboundSmsTracker); waitForMs(50); ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); verify(mContext).sendBroadcast(intentArgumentCaptor.capture()); assertEquals(Telephony.Sms.Intents.DATA_SMS_RECEIVED_ACTION, intentArgumentCaptor.getValue().getAction()); assertEquals("WaitingState", getCurrentState().getName()); mContextFixture.sendBroadcastToOrderedBroadcastReceivers(); waitForMs(50); assertEquals("IdleState", getCurrentState().getName()); } Loading