summaryrefslogtreecommitdiff
path: root/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java')
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java129
1 files changed, 117 insertions, 12 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
index b1957cd7f..ff8ab3c1d 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.test.AndroidTestCase;
import com.smartdevicelink.exception.SdlException;
+import com.smartdevicelink.managers.lockscreen.LockScreenConfig;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.RPCResponse;
@@ -68,7 +69,7 @@ public class SdlManagerTests extends AndroidTestCase {
templateColorScheme.setPrimaryColor(Test.GENERAL_RGBCOLOR);
templateColorScheme.setSecondaryColor(Test.GENERAL_RGBCOLOR);
- sdlManager = createSampleManager("heyApp", "123456");
+ sdlManager = createSampleManager("heyApp", "123456", Test.GENERAL_LOCKSCREENCONFIG);
}
@Override
@@ -82,7 +83,7 @@ public class SdlManagerTests extends AndroidTestCase {
return mTestContext;
}
- private SdlManager createSampleManager(String appName, String appId){
+ private SdlManager createSampleManager(String appName, String appId, LockScreenConfig lockScreenConfig){
SdlManager manager;
SdlManagerListener listener = new SdlManagerListener() {
@@ -112,7 +113,7 @@ public class SdlManagerTests extends AndroidTestCase {
builder.setNightColorScheme(templateColorScheme);
builder.setVrSynonyms(Test.GENERAL_VECTOR_STRING);
builder.setTtsName(Test.GENERAL_VECTOR_TTS_CHUNKS);
- builder.setLockScreenConfig(Test.GENERAL_LOCKSCREENCONFIG);
+ builder.setLockScreenConfig(lockScreenConfig);
manager = builder.build();
// mock SdlProxyBase and set it manually
@@ -125,12 +126,12 @@ public class SdlManagerTests extends AndroidTestCase {
// TESTS
public void testNotNull(){
- assertNotNull(createSampleManager("app","123456"));
+ assertNotNull(createSampleManager("app","123456", Test.GENERAL_LOCKSCREENCONFIG));
}
public void testMissingAppName() {
try {
- createSampleManager(null,"123456");
+ createSampleManager(null,"123456", Test.GENERAL_LOCKSCREENCONFIG);
} catch (IllegalArgumentException ex) {
assertSame(ex.getMessage(), "You must specify an app name by calling setAppName");
}
@@ -138,7 +139,7 @@ public class SdlManagerTests extends AndroidTestCase {
public void testMissingAppId() {
try {
- createSampleManager("app",null);
+ createSampleManager("app",null, Test.GENERAL_LOCKSCREENCONFIG);
} catch (IllegalArgumentException ex) {
assertSame(ex.getMessage(), "You must specify an app ID by calling setAppId");
}
@@ -164,20 +165,124 @@ public class SdlManagerTests extends AndroidTestCase {
sdlManager.start();
// Create and force all sub managers to be ready manually. Because SdlManager will not start until all sub managers are ready.
- // Note : SdlManager.initialize() will not be called automatically by proxy as in real life because we have mock proxy not a real one
+ // Note: SdlManager.initialize() will not be called automatically by proxy as in real life because we have mock proxy not a real one
sdlManager.initialize();
- sdlManager.setState(BaseSubManager.READY);
- sdlManager.getAudioStreamManager().transitionToState(BaseSubManager.READY);
- // manager.getVideoStreamingManager().transitionToState(BaseSubManager.READY);
- // manager.getLockScreenManager().transitionToState(BaseSubManager.READY);
- sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+
+ // Set all sub managers' states to ready
sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
sdlManager.getFileManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.READY);
// Make sure the listener is called exactly once
assertEquals("Listener was not called or called more/less frequently than expected", listenerCalledCounter, 1);
}
+ public void testManagerStates() {
+ SdlManager sdlManager = createSampleManager("test", "00000", new LockScreenConfig());
+ sdlManager.initialize();
+
+
+ // Case 1-A:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getLockScreenConfig().setEnabled(true);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.READY, sdlManager.getState());
+
+
+ // Case 1-B:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getLockScreenConfig().setEnabled(false);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.READY, sdlManager.getState());
+
+
+ // Case 2-A:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getLockScreenConfig().setEnabled(true);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.ERROR, sdlManager.getState());
+
+
+ // Case 1-B:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getLockScreenConfig().setEnabled(false);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.ERROR, sdlManager.getState());
+
+
+ // Case 3-A:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.getLockScreenConfig().setEnabled(true);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.LIMITED);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.SETTING_UP, sdlManager.getState());
+
+
+ // Case 3-B:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.getLockScreenConfig().setEnabled(false);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.SETTING_UP, sdlManager.getState());
+
+
+ // Case 4-A:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getLockScreenConfig().setEnabled(true);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.LIMITED, sdlManager.getState());
+
+
+ // Case 4-B:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getLockScreenConfig().setEnabled(false);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.LIMITED, sdlManager.getState());
+
+
+ // Case 5-A:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.LIMITED);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getLockScreenConfig().setEnabled(true);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.READY);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.LIMITED, sdlManager.getState());
+
+
+ // Case 5-B:
+ sdlManager.getPermissionManager().transitionToState(BaseSubManager.READY);
+ sdlManager.getFileManager().transitionToState(BaseSubManager.LIMITED);
+ sdlManager.getScreenManager().transitionToState(BaseSubManager.ERROR);
+ sdlManager.getLockScreenConfig().setEnabled(false);
+ sdlManager.getLockScreenManager().transitionToState(BaseSubManager.SETTING_UP);
+ sdlManager.checkState();
+ assertEquals(BaseSubManager.LIMITED, sdlManager.getState());
+ }
+
public void testSendRPC(){
listenerCalledCounter = 0;