diff options
author | Anil Dahiya <anil_dahiya@infosys.com> | 2016-08-02 18:52:53 +0530 |
---|---|---|
committer | Anil Dahiya <anil_dahiya@infosys.com> | 2016-08-02 18:52:53 +0530 |
commit | 2c0d0e0026cce92e14d16560b07a42742cb280e3 (patch) | |
tree | ecdd697d99843f66acf14cf3ba2a3c3d69db9368 | |
parent | e57550022596435a5e53523b5cb879ba2b031ea3 (diff) | |
download | sdl_android-2c0d0e0026cce92e14d16560b07a42742cb280e3.tar.gz |
Updating method for checking payload protected to isPayloadProtected instead of getPayloadProtected. Created constant instead of using hardcoded ints in SdlProxyBase. Also, added basic unit test case for testing SdlSecurityBase.
7 files changed, 187 insertions, 31 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/RPCStruct.java b/sdl_android_lib/src/com/smartdevicelink/proxy/RPCStruct.java index 7632cf6d3..4aea8e146 100644 --- a/sdl_android_lib/src/com/smartdevicelink/proxy/RPCStruct.java +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/RPCStruct.java @@ -82,7 +82,7 @@ public class RPCStruct { protectedPayload = bVal;
}
- public Boolean getPayloadProtected() {
+ public Boolean isPayloadProtected() {
return protectedPayload;
}
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java index 74376b7ed..85bc6312b 100644 --- a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java @@ -102,6 +102,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> public static final String TAG = "SdlProxy";
private static final String SDL_LIB_TRACE_KEY = "42baba60-eb57-11df-98cf-0800200c9a66";
private static final int PROX_PROT_VER_ONE = 1;
+ private static final int RESPONSE_WAIT_TIME = 2000;
private SdlSession sdlSession = null;
private proxyListenerType _proxyListener = null;
@@ -1648,7 +1649,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> pm.setMessageType(MessageType.RPC);
pm.setSessionType(SessionType.RPC);
pm.setFunctionID(FunctionID.getFunctionId(request.getFunctionName()));
- pm.setPayloadProtected(request.getPayloadProtected());
+ pm.setPayloadProtected(request.isPayloadProtected());
if (request.getCorrelationID() == null)
{
//Log error here
@@ -3441,7 +3442,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> sdlSession.startService(SessionType.NAV, sdlSession.getSessionId(), isEncrypted);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3474,7 +3475,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> navServiceStartResponse = false;
sdlSession.startService(SessionType.NAV, sdlSession.getSessionId(), isEncrypted);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3505,7 +3506,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> navServiceEndResponse = false;
sdlSession.stopVideoStream();
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3572,7 +3573,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> pcmServiceStartResponse = false;
sdlSession.startService(SessionType.PCM, sdlSession.getSessionId(), isEncrypted);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3604,7 +3605,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> pcmServiceStartResponse = false;
sdlSession.startService(SessionType.PCM, sdlSession.getSessionId(), isEncrypted);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3637,7 +3638,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> pcmServiceEndResponse = false;
sdlSession.stopAudioStream();
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3673,7 +3674,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> navServiceStartResponse = false;
sdlSession.startService(SessionType.NAV, sdlSession.getSessionId(), isEncrypted);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(2000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
@@ -3777,7 +3778,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> rpcProtectedStartResponse = false;
sdlSession.startService(SessionType.RPC, sdlSession.getSessionId(), true);
- FutureTask<Void> fTask = createFutureTask(new CallableMethod(10000));
+ FutureTask<Void> fTask = createFutureTask(new CallableMethod(RESPONSE_WAIT_TIME));
ScheduledExecutorService scheduler = createScheduler();
scheduler.execute(fTask);
diff --git a/sdl_android_lib/src/com/smartdevicelink/security/SdlSecurityBase.java b/sdl_android_lib/src/com/smartdevicelink/security/SdlSecurityBase.java index 6aab36635..8b7e6a12a 100644 --- a/sdl_android_lib/src/com/smartdevicelink/security/SdlSecurityBase.java +++ b/sdl_android_lib/src/com/smartdevicelink/security/SdlSecurityBase.java @@ -10,13 +10,13 @@ import com.smartdevicelink.protocol.enums.SessionType; public abstract class SdlSecurityBase {
- private SdlSession session = null;
- private String appId = null;
- private List<String> makeList = null;
- private boolean isInitSuccess = false;
- private byte sessionId = 0;
- private static Service appService = null;
- private List<SessionType> startServiceList = new ArrayList<SessionType>();
+ protected SdlSession session = null;
+ protected String appId = null;
+ protected List<String> makeList = null;
+ protected boolean isInitSuccess = false;
+ protected byte sessionId = 0;
+ protected static Service appService = null;
+ protected List<SessionType> startServiceList = new ArrayList<SessionType>();
public SdlSecurityBase() {
}
diff --git a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java index 0e00ecad7..2fc35a5a9 100644 --- a/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java +++ b/sdl_android_lib/src/com/smartdevicelink/streaming/StreamRPCPacketizer.java @@ -45,7 +45,7 @@ public class StreamRPCPacketizer extends AbstractPacketizer implements IPutFileR iInitialCorrID = request.getCorrelationID();
mPauseLock = new Object();
mPaused = false;
- isRPCProtected = request.getPayloadProtected();
+ isRPCProtected = request.isPayloadProtected();
if (proxy != null)
{
_proxy = proxy;
diff --git a/sdl_android_tests/src/com/smartdevicelink/SdlConnection/SdlConnectionTest.java b/sdl_android_tests/src/com/smartdevicelink/SdlConnection/SdlConnectionTest.java index 82dba7510..cf921541a 100644 --- a/sdl_android_tests/src/com/smartdevicelink/SdlConnection/SdlConnectionTest.java +++ b/sdl_android_tests/src/com/smartdevicelink/SdlConnection/SdlConnectionTest.java @@ -1,15 +1,14 @@ package com.smartdevicelink.SdlConnection; import android.test.AndroidTestCase; -import android.util.Log; +import com.smartdevicelink.test.SdlUnitTestContants; import com.smartdevicelink.transport.BTTransportConfig; import com.smartdevicelink.transport.BaseTransportConfig; import com.smartdevicelink.transport.MultiplexTransportConfig; import com.smartdevicelink.transport.RouterServiceValidator; import com.smartdevicelink.transport.USBTransportConfig; import com.smartdevicelink.transport.enums.TransportType; -import com.smartdevicelink.test.SdlUnitTestContants; public class SdlConnectionTest extends AndroidTestCase { diff --git a/sdl_android_tests/src/com/smartdevicelink/test/security/SdlSecurityBaseTest.java b/sdl_android_tests/src/com/smartdevicelink/test/security/SdlSecurityBaseTest.java new file mode 100644 index 000000000..56a482804 --- /dev/null +++ b/sdl_android_tests/src/com/smartdevicelink/test/security/SdlSecurityBaseTest.java @@ -0,0 +1,167 @@ +package com.smartdevicelink.test.security; + +import java.util.ArrayList; +import java.util.List; + +import android.test.AndroidTestCase; + +import com.smartdevicelink.SdlConnection.ISdlConnectionListener; +import com.smartdevicelink.SdlConnection.SdlSession; +import com.smartdevicelink.protocol.ProtocolMessage; +import com.smartdevicelink.protocol.enums.SessionType; +import com.smartdevicelink.security.SdlSecurityBase; +import com.smartdevicelink.test.Test; +import com.smartdevicelink.transport.BTTransportConfig; +import com.smartdevicelink.transport.BaseTransportConfig; + +public class SdlSecurityBaseTest extends AndroidTestCase { + + @Override + protected void setUp() throws Exception { + super.setUp(); + + } + + private class MockSdlSecurityBase extends SdlSecurityBase { + + @Override + public void initialize() { + + } + + @Override + public Integer runHandshake(byte[] inputData, byte[] outputData) { + return null; + } + + @Override + public Integer encryptData(byte[] inputData, byte[] outputData) { + return null; + } + + @Override + public Integer decryptData(byte[] inputData, byte[] outputData) { + return null; + } + + @Override + public void shutDown() { + + } + + public SdlSession getSdlSession() { + return session; + } + + public void setStartServiceList(List<SessionType> list) { + startServiceList = list; + } + } + + class MockInterfaceBroker implements ISdlConnectionListener { + public MockInterfaceBroker () { } + @Override + public void onTransportDisconnected(String info) { + + } + @Override + public void onTransportError(String info, Exception e) { + + } + @Override + public void onProtocolMessageReceived(ProtocolMessage msg) { + + } + @Override + public void onProtocolSessionStartedNACKed(SessionType sessionType, + byte sessionID, byte version, String correlationID) { + + } + @Override + public void onProtocolSessionStarted(SessionType sessionType, + byte sessionID, byte version, String correlationID, int hashID, + boolean isEncrypted) { + + } + @Override + public void onProtocolSessionEnded(SessionType sessionType, byte sessionID, + String correlationID) { + + } + @Override + public void onProtocolSessionEndedNACKed(SessionType sessionType, + byte sessionID, String correlationID) { + + } + @Override + public void onProtocolError(String info, Exception e) { + + } + @Override + public void onHeartbeatTimedOut(byte sessionID) { + + } + @Override + public void onProtocolServiceDataACK(SessionType sessionType, int dataSize, + byte sessionID) { + + } + + } + + public void testMakeListSetAndGet(){ + List<String> makeList = new ArrayList<String>(); + MockSdlSecurityBase mockSdlSecurityBase = new MockSdlSecurityBase(); + + String MAKE_1 = "SDL1"; + String MAKE_2 = "SDL2"; + makeList.add(MAKE_1); + makeList.add(MAKE_2); + + mockSdlSecurityBase.setMakeList(makeList); + + assertNotNull(Test.NOT_NULL, makeList); + assertEquals(Test.MATCH, makeList, mockSdlSecurityBase.getMakeList()); + } + + public void testHandleInitResult() { + byte testWiproVersion = (byte) 0x0B; + boolean testInitResult = true; + MockInterfaceBroker interfaceBroker = new MockInterfaceBroker(); + BaseTransportConfig transportConfig = new BTTransportConfig(true); + MockSdlSecurityBase mockSdlSecurityBase = new MockSdlSecurityBase(); + + SdlSession testSdlSession = SdlSession.createSession(testWiproVersion,interfaceBroker, transportConfig); + + assertNotNull(Test.NOT_NULL, mockSdlSecurityBase); + assertNotNull(Test.NOT_NULL, testSdlSession); + + testSdlSession.setSdlSecurity(mockSdlSecurityBase); + + mockSdlSecurityBase.handleSdlSession(testSdlSession); + + assertEquals(Test.MATCH, mockSdlSecurityBase.getSdlSession(), testSdlSession); + assertEquals(Test.MATCH, mockSdlSecurityBase.getSdlSession().getSessionId(), testSdlSession.getSessionId()); + + mockSdlSecurityBase.handleInitResult(testInitResult); + + assertEquals(Test.MATCH, testInitResult, mockSdlSecurityBase.getInitSuccess()); + } + + public void testStartServiceListSetAndGet() { + List<SessionType> startServiceList = new ArrayList<SessionType>(); + MockSdlSecurityBase mockSdlSecurityBase = new MockSdlSecurityBase(); + + startServiceList.add(SessionType.RPC); + startServiceList.add(SessionType.NAV); + startServiceList.add(SessionType.PCM); + startServiceList.add(SessionType.CONTROL); + + assertNotNull(Test.NOT_NULL, startServiceList); + + mockSdlSecurityBase.setStartServiceList(startServiceList); + + assertEquals(Test.MATCH, startServiceList, mockSdlSecurityBase.getServiceList()); + } + +} diff --git a/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java b/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java index 1de98acbd..6c5f663ba 100644 --- a/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java +++ b/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java @@ -9,7 +9,6 @@ import java.net.URLConnection; import junit.framework.TestCase; import com.smartdevicelink.SdlConnection.ISdlConnectionListener; -import com.smartdevicelink.SdlConnection.SdlConnection; import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.ProtocolMessage; import com.smartdevicelink.protocol.enums.SessionType; @@ -113,58 +112,48 @@ class MockInterfaceBroker implements ISdlConnectionListener { public MockInterfaceBroker () { } @Override public void onTransportDisconnected(String info) { - // TODO Auto-generated method stub } @Override public void onTransportError(String info, Exception e) { - // TODO Auto-generated method stub } @Override public void onProtocolMessageReceived(ProtocolMessage msg) { - // TODO Auto-generated method stub } @Override public void onProtocolSessionStartedNACKed(SessionType sessionType, byte sessionID, byte version, String correlationID) { - // TODO Auto-generated method stub } @Override public void onProtocolSessionStarted(SessionType sessionType, byte sessionID, byte version, String correlationID, int hashID, boolean isEncrypted) { - // TODO Auto-generated method stub } @Override public void onProtocolSessionEnded(SessionType sessionType, byte sessionID, String correlationID) { - // TODO Auto-generated method stub } @Override public void onProtocolSessionEndedNACKed(SessionType sessionType, byte sessionID, String correlationID) { - // TODO Auto-generated method stub } @Override public void onProtocolError(String info, Exception e) { - // TODO Auto-generated method stub } @Override public void onHeartbeatTimedOut(byte sessionID) { - // TODO Auto-generated method stub } @Override public void onProtocolServiceDataACK(SessionType sessionType, int dataSize, byte sessionID) { - // TODO Auto-generated method stub } } |