summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2017-03-08 13:43:39 -0500
committerJoey Grover <joeygrover@gmail.com>2017-03-08 13:43:39 -0500
commit4420150a1953677c232e755d66932f19a7fad0ec (patch)
treef2efcc77c7a4b075b576fd8f9b58d519d7347ff5
parent6916986f1c2fd279912afa9e3da275fd697ffd8a (diff)
downloadsdl_android-4420150a1953677c232e755d66932f19a7fad0ec.tar.gz
Adding more unit tests for RSV
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexTransportConfigTests.java24
-rw-r--r--sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java92
2 files changed, 116 insertions, 0 deletions
diff --git a/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexTransportConfigTests.java b/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexTransportConfigTests.java
new file mode 100644
index 000000000..c4bfad6cc
--- /dev/null
+++ b/sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexTransportConfigTests.java
@@ -0,0 +1,24 @@
+package com.smartdevicelink.test.transport;
+
+import com.smartdevicelink.transport.MultiplexTransportConfig;
+
+import android.test.AndroidTestCase;
+
+public class MultiplexTransportConfigTests extends AndroidTestCase {
+
+
+ public void testDefaultSecurity(){
+ MultiplexTransportConfig config = new MultiplexTransportConfig(this.mContext, "2341");
+ assertEquals(config.getSecurityLevel(), MultiplexTransportConfig.FLAG_MULTI_SECURITY_MED);
+ }
+
+ public void testSettingSecurity(){
+ MultiplexTransportConfig config = new MultiplexTransportConfig(this.mContext, "2341", MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ assertEquals(config.getSecurityLevel(), MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+
+ config = new MultiplexTransportConfig(this.mContext, "2341");
+ config.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ assertEquals(config.getSecurityLevel(), MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ }
+
+}
diff --git a/sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java b/sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java
index 824071b8b..9d3e4af73 100644
--- a/sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java
+++ b/sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java
@@ -1,5 +1,8 @@
package com.smartdevicelink.transport;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.List;
import org.json.JSONArray;
@@ -16,6 +19,11 @@ import com.smartdevicelink.util.HttpRequestTask.HttpRequestTaskCallback;
public class RSVTestCase extends AndroidTestCase {
private static final String TAG = "RSVTestCase";
+
+ private static final long REFRESH_TRUSTED_APP_LIST_TIME_DAY = 3600000 * 24; // A day in ms
+ private static final long REFRESH_TRUSTED_APP_LIST_TIME_WEEK = REFRESH_TRUSTED_APP_LIST_TIME_DAY * 7; // A week in ms
+ private static final long REFRESH_TRUSTED_APP_LIST_TIME_MONTH = REFRESH_TRUSTED_APP_LIST_TIME_DAY * 30; // A ~month in ms
+
RouterServiceValidator rsvp;
/**
* Set this boolean if you want to test the actual validation of router service
@@ -74,6 +82,88 @@ public class RSVTestCase extends AndroidTestCase {
}
}
+ public void testSecuritySetting(){
+
+ RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+
+ try{
+ Field securityLevelField = RouterServiceValidator.class.getDeclaredField("securityLevel");
+ securityLevelField.setAccessible(true);
+ assertEquals(securityLevelField.get(rsvp),MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ }catch(NoSuchFieldException e1){
+ fail(e1.getMessage());
+ }catch( IllegalAccessException e2){
+ fail(e2.getMessage());
+ }
+ assertEquals(RouterServiceValidator.getSecurityLevel(mContext), MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ }
+
+ public void testHighSecurity(){
+ RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
+ rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK);
+
+ assertTrue(checkShouldOverrideInstalledFrom(rsvp,false));
+
+ assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK);
+
+ }
+
+ public void testMediumSecurity(){
+ RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_MED);
+ rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK);
+
+ assertTrue(checkShouldOverrideInstalledFrom(rsvp,true));
+
+ assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK);
+
+ }
+
+ public void testLowSecurity(){
+ RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_LOW);
+ rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK);
+
+ assertTrue(checkShouldOverrideInstalledFrom(rsvp,true));
+
+ assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_MONTH);
+
+ }
+
+ public void testNoSecurity(){
+ RouterServiceValidator rsvp = new RouterServiceValidator(this.mContext); //Use a locally scoped instance
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_OFF);
+ rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK);
+
+ assertTrue(checkShouldOverrideInstalledFrom(rsvp,true));
+
+ assertEquals(RouterServiceValidator.getRefreshRate(), REFRESH_TRUSTED_APP_LIST_TIME_WEEK);
+
+ //This should always return true
+ assertTrue(rsvp.validate());
+
+ }
+
+ public boolean checkShouldOverrideInstalledFrom(RouterServiceValidator rsvp, boolean shouldOverride){
+ try{
+ Method shouldOverrideInstalledFrom = RouterServiceValidator.class.getDeclaredMethod("shouldOverrideInstalledFrom");
+ shouldOverrideInstalledFrom.setAccessible(true);
+ boolean should = (Boolean)shouldOverrideInstalledFrom.invoke(rsvp);
+
+ return shouldOverride == should;
+
+ }catch(NoSuchMethodException e1){
+ fail(e1.getMessage());
+ }catch( IllegalAccessException e2){
+ fail(e2.getMessage());
+ }catch( InvocationTargetException e3){
+ fail(e3.getMessage());
+ }
+ return false;
+ }
+
public void testJsonRecovery(){
assertNotNull(rsvp.stringToJson(null));
assertNotNull(rsvp.stringToJson("asdf235vq32{]]"));
@@ -136,6 +226,7 @@ public class RSVTestCase extends AndroidTestCase {
rsvp = new RouterServiceValidator(this.mContext);
rsvp.setFlags(RouterServiceValidator.FLAG_DEBUG_INSTALLED_FROM_CHECK);
+ rsvp.setSecurityLevel(MultiplexTransportConfig.FLAG_MULTI_SECURITY_HIGH);
PackageManager packageManager = mContext.getPackageManager();
List<PackageInfo> packages = packageManager.getInstalledPackages(0);
@@ -209,6 +300,7 @@ public class RSVTestCase extends AndroidTestCase {
* Test to check that we can save our last request which actually houses all the previous known sdl enabled apps
*/
public void testRequestChange(){
+ RouterServiceValidator.setLastRequest(mContext, null);
assertNull(RouterServiceValidator.getLastRequest(mContext));
String test = "{\"response\": {\"com.livio.sdl\" : { \"versionBlacklist\":[] }, \"com.lexus.tcapp\" : { \"versionBlacklist\":[] }, \"com.toyota.tcapp\" : { \"versionBlacklist\": [] } , \"com.sdl.router\":{\"versionBlacklist\": [] },\"com.ford.fordpass\" : { \"versionBlacklist\":[] } }}";
JSONObject object = null;