diff options
author | Joey Grover <joeygrover@gmail.com> | 2016-10-07 13:57:04 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2016-10-07 13:57:04 -0400 |
commit | 724fa5214bf9bb224228a250457696c7e0943caf (patch) | |
tree | eb50ac6e9c54cf4232a65542114e64cae4470f58 | |
parent | 880150a03e366b998f66e439176085df225ab919 (diff) | |
parent | da33f2f80a41293c24d8da0faaf1f0d46dc17845 (diff) | |
download | sdl_android-feature/unit_tests.tar.gz |
Merge branch 'feature/unit_tests_security' of https://github.com/smartdevicelink/sdl_android into feature/unit_testsfeature/unit_tests
# Conflicts:
# sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyALM.java
5 files changed, 260 insertions, 11 deletions
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 0b9ce6cd2..6c5f663ba 100644 --- a/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java +++ b/sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java @@ -8,12 +8,16 @@ import java.net.URLConnection; import junit.framework.TestCase; +import com.smartdevicelink.SdlConnection.ISdlConnectionListener; +import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.ProtocolMessage; import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.streaming.AbstractPacketizer; import com.smartdevicelink.streaming.IStreamListener; import com.smartdevicelink.test.Test; +import com.smartdevicelink.transport.BTTransportConfig; +import com.smartdevicelink.transport.BaseTransportConfig; /** * This is a unit test class for the SmartDeviceLink library project class : @@ -33,6 +37,7 @@ public class AbstractPacketizerTests extends TestCase { byte testWiproVersion = (byte) 0x0B; RPCRequest testRpcRequest = new RPCRequest("test"); SessionType testSessionType = SessionType.RPC; + SdlSession testSdlSession = null; InputStream testInputStream = null; MockPacketizer testPacketizer1 = null; MockPacketizer testPacketizer2 = null; @@ -46,10 +51,15 @@ public class AbstractPacketizerTests extends TestCase { URLConnection urlConnection = url.openConnection(); testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - testPacketizer1 = new MockPacketizer(testListener, testInputStream, testSessionType, testSessionId); - testPacketizer2 = new MockPacketizer(null, null, null, testSessionId); - testPacketizer3 = new MockPacketizer(testListener, testInputStream, testRpcRequest, testSessionType, testSessionId, testWiproVersion); - testPacketizer4 = new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion); + MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); + BaseTransportConfig _transportConfig = new BTTransportConfig(true); + + testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); + + testPacketizer1 = new MockPacketizer(testListener, testInputStream, testSessionType, testSessionId, testSdlSession); + testPacketizer2 = new MockPacketizer(null, null, null, testSessionId, testSdlSession); + testPacketizer3 = new MockPacketizer(testListener, testInputStream, testRpcRequest, testSessionType, testSessionId, testWiproVersion, testSdlSession); + testPacketizer4 = new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion, null); // Valid Tests assertNotNull(Test.NOT_NULL, testPacketizer1); @@ -67,6 +77,7 @@ public class AbstractPacketizerTests extends TestCase { assertEquals(Test.MATCH, testSessionId, testPacketizer3.getSessionId()); assertEquals(Test.MATCH, testWiproVersion, testPacketizer3.getWiproVersion()); assertEquals(Test.MATCH, testRpcRequest.getFunctionName(), testPacketizer3.getRPCRequest().getFunctionName()); + assertEquals(Test.MATCH, testSdlSession, testPacketizer3.getSdlSession()); // Invalid/Null Tests assertNull(Test.NULL, testPacketizer2.getListener()); @@ -76,6 +87,7 @@ public class AbstractPacketizerTests extends TestCase { assertNull(Test.NULL, testPacketizer4.getInputStream()); assertNull(Test.NULL, testPacketizer4.getSessionType()); assertNull(Test.NULL, testPacketizer4.getRPCRequest()); + assertNull(Test.NULL, testPacketizer4.getSdlSession()); } catch (IOException e) { fail("IOException was thrown."); @@ -96,16 +108,71 @@ class MockStreamListener implements IStreamListener { * This is a mock class for testing the following : * {@link com.smartdevicelink.streaming.AbstractPacketizer} */ +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) { + + } +} + +/** + * This is a mock class for testing the following : + * {@link com.smartdevicelink.streaming.AbstractPacketizer} + */ class MockPacketizer extends AbstractPacketizer { - public MockPacketizer (IStreamListener l, InputStream i, SessionType s, byte sid) throws IOException { super (l, i, s, sid); } - public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, byte w) throws IOException { super (l, i, r, s, sid, w); } + public MockPacketizer (IStreamListener l, InputStream i, SessionType s, byte sid, SdlSession sdlsession) throws IOException { super (l, i, s, sid, sdlsession); } + public MockPacketizer (IStreamListener l, InputStream i, RPCRequest r, SessionType s, byte sid, byte w, SdlSession sdlsession) throws IOException { super (l, i, r, s, sid, w, sdlsession); } @Override public void start() throws IOException { } @Override public void stop() { } public IStreamListener getListener () { return _streamListener; } public InputStream getInputStream () { return is; } - public SessionType getSessionType () { return _session; } + public SessionType getSessionType () { return _serviceType; } + public SdlSession getSdlSession () { return _session; } public byte getSessionId () { return _rpcSessionID; } public RPCRequest getRPCRequest () { return _request; } public byte getWiproVersion () { return _wiproVersion; } diff --git a/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamPacketizerTests.java b/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamPacketizerTests.java index e4019a77f..2f4661aa8 100644 --- a/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamPacketizerTests.java +++ b/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamPacketizerTests.java @@ -6,10 +6,13 @@ import java.io.InputStream; import java.net.URL; import java.net.URLConnection; +import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.streaming.IStreamListener; import com.smartdevicelink.streaming.StreamPacketizer; import com.smartdevicelink.test.Test; +import com.smartdevicelink.transport.BTTransportConfig; +import com.smartdevicelink.transport.BaseTransportConfig; import junit.framework.TestCase; @@ -29,14 +32,19 @@ public class StreamPacketizerTests extends TestCase { byte testSessionId = (byte) 0x0A; SessionType testSessionType = SessionType.RPC; InputStream testInputStream = null; + byte testWiproVersion = (byte) 0x0B; IStreamListener testListener = new MockStreamListener(); + MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); + BaseTransportConfig _transportConfig = new BTTransportConfig(true); + + SdlSession testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); try { URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html"); URLConnection urlConnection = url.openConnection(); testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - StreamPacketizer testStreamPacketizer = new StreamPacketizer(testListener, testInputStream, testSessionType, testSessionId); + StreamPacketizer testStreamPacketizer = new StreamPacketizer(testListener, testInputStream, testSessionType, testSessionId, testSdlSession); assertNotNull(Test.NOT_NULL, testStreamPacketizer); // NOTE: Cannot test thread handling methods currently. diff --git a/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java b/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java index 2c4904989..63fb437f7 100644 --- a/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java +++ b/sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java @@ -6,11 +6,14 @@ import java.io.InputStream; import java.net.URL; import java.net.URLConnection; +import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.protocol.enums.SessionType; import com.smartdevicelink.proxy.RPCRequest; import com.smartdevicelink.streaming.IStreamListener; import com.smartdevicelink.streaming.StreamRPCPacketizer; import com.smartdevicelink.test.Test; +import com.smartdevicelink.transport.BTTransportConfig; +import com.smartdevicelink.transport.BaseTransportConfig; import junit.framework.TestCase; @@ -34,12 +37,17 @@ public class StreamRPCPacketizerTests extends TestCase { InputStream testInputStream = null; IStreamListener testListener = new MockStreamListener(); + byte testWiproVersion = (byte) 0x0B; + MockInterfaceBroker _interfaceBroker = new MockInterfaceBroker(); + BaseTransportConfig _transportConfig = new BTTransportConfig(true); + SdlSession testSdlSession = SdlSession.createSession(testWiproVersion,_interfaceBroker, _transportConfig); + try { URL url = new URL("ftp://mirror.csclub.uwaterloo.ca/index.html"); URLConnection urlConnection = url.openConnection(); testInputStream = new BufferedInputStream(urlConnection.getInputStream()); - StreamRPCPacketizer testStreamRpcPacketizer = new StreamRPCPacketizer(null, testListener, testInputStream, testRequest, testSessionType, testSessionId, testWV, testWV); + StreamRPCPacketizer testStreamRpcPacketizer = new StreamRPCPacketizer(null, testListener, testInputStream, testRequest, testSessionType, testSessionId, testWV, testWV, testSdlSession); assertNotNull(Test.NOT_NULL, testStreamRpcPacketizer); // NOTE: Cannot test thread handling methods currently. |