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

Commit a318ec54 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fixed flaky testRoamingPhoneTypeSwitch"

parents 759e2e5f 44fc41e5
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 {
@@ -982,14 +984,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);
@@ -1001,20 +1003,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