Loading telephony/mockril/src/com/android/internal/telephony/mockril/MockRilController.java +68 −6 Original line number Diff line number Diff line Loading @@ -134,17 +134,15 @@ public class MockRilController { return curstate == state; } /** * Set an MT call * Start an incoming call for the given phone number * * @param phoneNumber for the number shown * @param phoneNumber is the number to show as incoming call * @return true if the incoming call is started successfully, false if it fails. */ public boolean setMTCall(String phoneNumber) { public boolean startIncomingCall(String phoneNumber) { RilCtrlCmds.CtrlReqSetMTCall req = new RilCtrlCmds.CtrlReqSetMTCall(); // Check whether it is a valid number req.setPhoneNumber(phoneNumber); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_MT_CALL, 0, 0, req)) { Log.v(TAG, "send CMD_SET_MT_CALL request failed"); Loading @@ -153,4 +151,68 @@ public class MockRilController { return true; } /** * Hang up a connection remotelly for the given call fail cause * * @param connectionID is the connection to be hung up * @param failCause is the call fail cause defined in ril.h * @return true if the hangup is successful, false if it fails */ public boolean hangupRemote(int connectionId, int failCause) { RilCtrlCmds.CtrlHangupConnRemote req = new RilCtrlCmds.CtrlHangupConnRemote(); req.setConnectionId(connectionId); req.setCallFailCause(failCause); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, req)) { Log.v(TAG, "send CTRL_CMD_HANGUP_CONN_REMOTE request failed"); return false; } return true; } /** * Set call transition flag to the Mock Ril * * @param flag is a boolean value for the call transiton flag * true: call transition: dialing->alert, alert->active is controlled * false: call transition is automatically handled by Mock Ril * @return true if the request is successful, false if it failed to set the flag */ public boolean setCallTransitionFlag(boolean flag) { RilCtrlCmds.CtrlSetCallTransitionFlag req = new RilCtrlCmds.CtrlSetCallTransitionFlag(); req.setFlag(flag); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, req)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_TRANSITION_FLAG request failed"); return false; } return true; } /** * Set the dialing call to alert if the call transition flag is true * * @return true if the call transition is successful, false if it fails */ public boolean setDialCallToAlert() { if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_ALERT, 0, 0, null)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_ALERT request failed"); return false; } return true; } /** * Set the alert call to active if the call transition flag is true * * @return true if the call transition is successful, false if it fails */ public boolean setAlertCallToActive() { if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_ACTIVE, 0, 0, null)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_ACTIVE request failed"); return false; } return true; } } telephony/tests/telephonytests/src/com/android/internal/telephony/mockril/MockRilTest.java +110 −3 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test protobuf serialization and deserialization * Test Case 1: Test protobuf serialization and deserialization * @throws InvalidProtocolBufferMicroException */ public void testProtobufSerDes() throws InvalidProtocolBufferMicroException { Loading @@ -77,7 +77,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test echo command works using writeMsg & readMsg * Test case 2: Test echo command works using writeMsg & readMsg */ public void testEchoMsg() throws IOException { log("testEchoMsg E"); Loading Loading @@ -110,7 +110,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test get as * Test case 3: Test get as */ public void testGetAs() { log("testGetAs E"); Loading Loading @@ -150,6 +150,9 @@ public class MockRilTest extends InstrumentationTestCase { log("testGetAs X"); } /** * Test case 3: test get radio state */ public void testGetRadioState() throws IOException { log("testGetRadioState E"); Loading @@ -175,6 +178,9 @@ public class MockRilTest extends InstrumentationTestCase { log("testGetRadioState X"); } /** * Test case 5: test set radio state */ public void testSetRadioState() throws IOException { log("testSetRadioState E"); Loading @@ -187,6 +193,9 @@ public class MockRilTest extends InstrumentationTestCase { Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_RADIO_STATE, 0, 0, cmdrs); Msg resp = Msg.recv(mMockRilChannel); log("get response status :" + resp.getStatus()); log("get response for command: " + resp.getCmd()); log("get command token: " + resp.getToken()); RilCtrlCmds.CtrlRspRadioState rsp = resp.getDataAs(RilCtrlCmds.CtrlRspRadioState.class); Loading @@ -194,4 +203,102 @@ public class MockRilTest extends InstrumentationTestCase { log("get response for testSetRadioState: " + state); assertTrue(RilCmds.RADIOSTATE_SIM_NOT_READY == state); } /** * Test case 6: test start incoming call and hangup it. */ public void testStartIncomingCallAndHangup() throws IOException { log("testStartIncomingCallAndHangup"); RilCtrlCmds.CtrlReqSetMTCall cmd = new RilCtrlCmds.CtrlReqSetMTCall(); String incomingCall = "6502889108"; // set the MT call cmd.setPhoneNumber(incomingCall); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_MT_CALL, 0, 0, cmd); // get response Msg resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("The ril is not in a proper state to set MT calls.", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // allow the incoming call alerting for some time try { Thread.sleep(5000); } catch (InterruptedException e) {} // we are playing a trick to assume the current is 1 RilCtrlCmds.CtrlHangupConnRemote hangupCmd = new RilCtrlCmds.CtrlHangupConnRemote(); hangupCmd.setConnectionId(1); hangupCmd.setCallFailCause(16); // normal hangup Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, hangupCmd); // get response resp = Msg.recv(mMockRilChannel); log("Get response for hangup connection: " + resp.getStatus()); assertTrue("CTRL_CMD_HANGUP_CONN_REMOTE failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); } /** * Test case 7: test set call transition flag */ public void testSetCallTransitionFlag() throws IOException { log("testSetCallTransitionFlag"); // Set flag to true: RilCtrlCmds.CtrlSetCallTransitionFlag cmd = new RilCtrlCmds.CtrlSetCallTransitionFlag(); cmd.setFlag(true); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, cmd); Msg resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call transition flag failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // add a dialing call RilCtrlCmds.CtrlReqAddDialingCall cmdDialCall = new RilCtrlCmds.CtrlReqAddDialingCall(); String phoneNumber = "5102345678"; cmdDialCall.setPhoneNumber(phoneNumber); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_ADD_DIALING_CALL, 0, 0, cmdDialCall); resp = Msg.recv(mMockRilChannel); log("Get response status for adding a dialing call: " + resp.getStatus()); assertTrue("add dialing call failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); try { Thread.sleep(5000); } catch (InterruptedException e) {} // send command to force call state change Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_ALERT, 0, 0, null); resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call alert failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); try { Thread.sleep(2000); } catch (InterruptedException e) {} // send command to force call state change Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_ACTIVE, 0, 0, null); resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call active failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // hangup the active all remotely RilCtrlCmds.CtrlHangupConnRemote hangupCmd = new RilCtrlCmds.CtrlHangupConnRemote(); hangupCmd.setConnectionId(1); hangupCmd.setCallFailCause(16); // normal hangup Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, hangupCmd); resp = Msg.recv(mMockRilChannel); log("Get response for hangup connection: " + resp.getStatus()); assertTrue("CTRL_CMD_HANGUP_CONN_REMOTE failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // set the flag to false cmd.setFlag(false); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, cmd); resp = Msg.recv(mMockRilChannel); assertTrue("Set call transition flag failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); } } Loading
telephony/mockril/src/com/android/internal/telephony/mockril/MockRilController.java +68 −6 Original line number Diff line number Diff line Loading @@ -134,17 +134,15 @@ public class MockRilController { return curstate == state; } /** * Set an MT call * Start an incoming call for the given phone number * * @param phoneNumber for the number shown * @param phoneNumber is the number to show as incoming call * @return true if the incoming call is started successfully, false if it fails. */ public boolean setMTCall(String phoneNumber) { public boolean startIncomingCall(String phoneNumber) { RilCtrlCmds.CtrlReqSetMTCall req = new RilCtrlCmds.CtrlReqSetMTCall(); // Check whether it is a valid number req.setPhoneNumber(phoneNumber); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_MT_CALL, 0, 0, req)) { Log.v(TAG, "send CMD_SET_MT_CALL request failed"); Loading @@ -153,4 +151,68 @@ public class MockRilController { return true; } /** * Hang up a connection remotelly for the given call fail cause * * @param connectionID is the connection to be hung up * @param failCause is the call fail cause defined in ril.h * @return true if the hangup is successful, false if it fails */ public boolean hangupRemote(int connectionId, int failCause) { RilCtrlCmds.CtrlHangupConnRemote req = new RilCtrlCmds.CtrlHangupConnRemote(); req.setConnectionId(connectionId); req.setCallFailCause(failCause); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, req)) { Log.v(TAG, "send CTRL_CMD_HANGUP_CONN_REMOTE request failed"); return false; } return true; } /** * Set call transition flag to the Mock Ril * * @param flag is a boolean value for the call transiton flag * true: call transition: dialing->alert, alert->active is controlled * false: call transition is automatically handled by Mock Ril * @return true if the request is successful, false if it failed to set the flag */ public boolean setCallTransitionFlag(boolean flag) { RilCtrlCmds.CtrlSetCallTransitionFlag req = new RilCtrlCmds.CtrlSetCallTransitionFlag(); req.setFlag(flag); if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, req)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_TRANSITION_FLAG request failed"); return false; } return true; } /** * Set the dialing call to alert if the call transition flag is true * * @return true if the call transition is successful, false if it fails */ public boolean setDialCallToAlert() { if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_ALERT, 0, 0, null)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_ALERT request failed"); return false; } return true; } /** * Set the alert call to active if the call transition flag is true * * @return true if the call transition is successful, false if it fails */ public boolean setAlertCallToActive() { if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_CALL_ACTIVE, 0, 0, null)) { Log.v(TAG, "send CTRL_CMD_SET_CALL_ACTIVE request failed"); return false; } return true; } }
telephony/tests/telephonytests/src/com/android/internal/telephony/mockril/MockRilTest.java +110 −3 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test protobuf serialization and deserialization * Test Case 1: Test protobuf serialization and deserialization * @throws InvalidProtocolBufferMicroException */ public void testProtobufSerDes() throws InvalidProtocolBufferMicroException { Loading @@ -77,7 +77,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test echo command works using writeMsg & readMsg * Test case 2: Test echo command works using writeMsg & readMsg */ public void testEchoMsg() throws IOException { log("testEchoMsg E"); Loading Loading @@ -110,7 +110,7 @@ public class MockRilTest extends InstrumentationTestCase { } /** * Test get as * Test case 3: Test get as */ public void testGetAs() { log("testGetAs E"); Loading Loading @@ -150,6 +150,9 @@ public class MockRilTest extends InstrumentationTestCase { log("testGetAs X"); } /** * Test case 3: test get radio state */ public void testGetRadioState() throws IOException { log("testGetRadioState E"); Loading @@ -175,6 +178,9 @@ public class MockRilTest extends InstrumentationTestCase { log("testGetRadioState X"); } /** * Test case 5: test set radio state */ public void testSetRadioState() throws IOException { log("testSetRadioState E"); Loading @@ -187,6 +193,9 @@ public class MockRilTest extends InstrumentationTestCase { Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_RADIO_STATE, 0, 0, cmdrs); Msg resp = Msg.recv(mMockRilChannel); log("get response status :" + resp.getStatus()); log("get response for command: " + resp.getCmd()); log("get command token: " + resp.getToken()); RilCtrlCmds.CtrlRspRadioState rsp = resp.getDataAs(RilCtrlCmds.CtrlRspRadioState.class); Loading @@ -194,4 +203,102 @@ public class MockRilTest extends InstrumentationTestCase { log("get response for testSetRadioState: " + state); assertTrue(RilCmds.RADIOSTATE_SIM_NOT_READY == state); } /** * Test case 6: test start incoming call and hangup it. */ public void testStartIncomingCallAndHangup() throws IOException { log("testStartIncomingCallAndHangup"); RilCtrlCmds.CtrlReqSetMTCall cmd = new RilCtrlCmds.CtrlReqSetMTCall(); String incomingCall = "6502889108"; // set the MT call cmd.setPhoneNumber(incomingCall); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_MT_CALL, 0, 0, cmd); // get response Msg resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("The ril is not in a proper state to set MT calls.", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // allow the incoming call alerting for some time try { Thread.sleep(5000); } catch (InterruptedException e) {} // we are playing a trick to assume the current is 1 RilCtrlCmds.CtrlHangupConnRemote hangupCmd = new RilCtrlCmds.CtrlHangupConnRemote(); hangupCmd.setConnectionId(1); hangupCmd.setCallFailCause(16); // normal hangup Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, hangupCmd); // get response resp = Msg.recv(mMockRilChannel); log("Get response for hangup connection: " + resp.getStatus()); assertTrue("CTRL_CMD_HANGUP_CONN_REMOTE failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); } /** * Test case 7: test set call transition flag */ public void testSetCallTransitionFlag() throws IOException { log("testSetCallTransitionFlag"); // Set flag to true: RilCtrlCmds.CtrlSetCallTransitionFlag cmd = new RilCtrlCmds.CtrlSetCallTransitionFlag(); cmd.setFlag(true); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, cmd); Msg resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call transition flag failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // add a dialing call RilCtrlCmds.CtrlReqAddDialingCall cmdDialCall = new RilCtrlCmds.CtrlReqAddDialingCall(); String phoneNumber = "5102345678"; cmdDialCall.setPhoneNumber(phoneNumber); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_ADD_DIALING_CALL, 0, 0, cmdDialCall); resp = Msg.recv(mMockRilChannel); log("Get response status for adding a dialing call: " + resp.getStatus()); assertTrue("add dialing call failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); try { Thread.sleep(5000); } catch (InterruptedException e) {} // send command to force call state change Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_ALERT, 0, 0, null); resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call alert failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); try { Thread.sleep(2000); } catch (InterruptedException e) {} // send command to force call state change Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_ACTIVE, 0, 0, null); resp = Msg.recv(mMockRilChannel); log("Get response status: " + resp.getStatus()); assertTrue("Set call active failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // hangup the active all remotely RilCtrlCmds.CtrlHangupConnRemote hangupCmd = new RilCtrlCmds.CtrlHangupConnRemote(); hangupCmd.setConnectionId(1); hangupCmd.setCallFailCause(16); // normal hangup Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_HANGUP_CONN_REMOTE, 0, 0, hangupCmd); resp = Msg.recv(mMockRilChannel); log("Get response for hangup connection: " + resp.getStatus()); assertTrue("CTRL_CMD_HANGUP_CONN_REMOTE failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); // set the flag to false cmd.setFlag(false); Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_CALL_TRANSITION_FLAG, 0, 0, cmd); resp = Msg.recv(mMockRilChannel); assertTrue("Set call transition flag failed", resp.getStatus() == RilCtrlCmds.CTRL_STATUS_OK); } }