Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0606893 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixed flaky testRoamingPhoneTypeSwitch"

parents 8500c109 3b2da52f
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.nullable;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.spy;
@@ -70,6 +71,7 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

public class ServiceStateTrackerTest extends TelephonyTest {
@@ -989,14 +991,14 @@ public class ServiceStateTrackerTest extends TelephonyTest {
    @Test
    @MediumTest
    public void testRoamingPhoneTypeSwitch() {

        // Enable roaming
        doReturn(true).when(mPhone).isPhoneTypeGsm();

        mSimulatedCommands.setVoiceRegState(ServiceState.RIL_REG_STATE_ROAMING);
        mSimulatedCommands.setDataRegState(ServiceState.RIL_REG_STATE_ROAMING);
        mSimulatedCommands.notifyNetworkStateChanged();

        waitForMs(100);
        waitForMs(200);

        sst.registerForDataRoamingOff(mTestHandler, EVENT_DATA_ROAMING_OFF, null);
        sst.registerForVoiceRoamingOff(mTestHandler, EVENT_VOICE_ROAMING_OFF, null);
@@ -1008,20 +1010,16 @@ public class ServiceStateTrackerTest extends TelephonyTest {

        // verify if registered handler has message posted to it
        ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
        verify(mTestHandler, times(3)).sendMessageAtTime(
        verify(mTestHandler, atLeast(3)).sendMessageAtTime(
                messageArgumentCaptor.capture(), anyLong());
        List<Message> messages = messageArgumentCaptor.getAllValues();
        assertEquals(EVENT_VOICE_ROAMING_OFF, messages.get(0).what);
        assertEquals(EVENT_DATA_ROAMING_OFF, messages.get(1).what);
        assertEquals(EVENT_DATA_CONNECTION_DETACHED, messages.get(2).what);

        HashSet<Integer> messageSet = new HashSet<>();
        for (Message m : messageArgumentCaptor.getAllValues()) {
            messageSet.add(m.what);
        }

        // Switch the phone type again
        doReturn(true).when(mPhone).isPhoneTypeGsm();
        sst.updatePhoneType();
        // Make sure we don't get more events.
        verify(mTestHandler, times(3)).sendMessageAtTime(
                messageArgumentCaptor.capture(), anyLong());
        assertTrue(messageSet.contains(EVENT_DATA_ROAMING_OFF));
        assertTrue(messageSet.contains(EVENT_VOICE_ROAMING_OFF));
        assertTrue(messageSet.contains(EVENT_DATA_CONNECTION_DETACHED));
    }

    @Test