diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-03-08 13:43:39 -0500 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-03-08 13:43:39 -0500 |
commit | 4420150a1953677c232e755d66932f19a7fad0ec (patch) | |
tree | f2efcc77c7a4b075b576fd8f9b58d519d7347ff5 | |
parent | 6916986f1c2fd279912afa9e3da275fd697ffd8a (diff) | |
download | sdl_android-4420150a1953677c232e755d66932f19a7fad0ec.tar.gz |
Adding more unit tests for RSV
-rw-r--r-- | sdl_android_tests/src/com/smartdevicelink/test/transport/MultiplexTransportConfigTests.java | 24 | ||||
-rw-r--r-- | sdl_android_tests/src/com/smartdevicelink/transport/RSVTestCase.java | 92 |
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; |