summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2016-10-07 13:57:04 -0400
committerJoey Grover <joeygrover@gmail.com>2016-10-07 13:57:04 -0400
commit724fa5214bf9bb224228a250457696c7e0943caf (patch)
treeeb50ac6e9c54cf4232a65542114e64cae4470f58
parent880150a03e366b998f66e439176085df225ab919 (diff)
parentda33f2f80a41293c24d8da0faaf1f0d46dc17845 (diff)
downloadsdl_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
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/SdlConnection/SdlConnectionTest.java3
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/security/SdlSecurityBaseTest.java167
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java81
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamPacketizerTests.java10
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/streaming/StreamRPCPacketizerTests.java10
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.