summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-07-19 10:58:22 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-07-19 10:58:22 -0400
commit96d194b23463ef1046a19ff19379b51040cf5bd0 (patch)
tree5d977a10057c71ad6206a5b2efbb3381af7ba159
parent061440036a5de0d783e9b50ce0194302cf66ef1d (diff)
downloadsdl_android-96d194b23463ef1046a19ff19379b51040cf5bd0.tar.gz
finishing menuconfiguration and tests
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java6
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java34
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java2
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java5
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuConfiguration.java8
5 files changed, 51 insertions, 4 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java
index c4e22af6f..dd8b60a84 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java
@@ -25,7 +25,7 @@ public class ScreenManagerTests extends AndroidTestCase2 {
private SdlArtwork testArtwork;
@Override
- public void setUp() throws Exception{
+ public void setUp() throws Exception {
super.setUp();
ISdl internalInterface = mock(ISdl.class);
@@ -60,6 +60,7 @@ public class ScreenManagerTests extends AndroidTestCase2 {
assertNull(screenManager.getSoftButtonObjectById(1));
assertEquals(screenManager.getDynamicMenuUpdatesMode(), DynamicMenuUpdatesMode.ON_WITH_COMPAT_MODE);
assertEquals(screenManager.getState(), BaseSubManager.READY);
+ assertNull(screenManager.getMenuConfiguration());
}
public void testSetTextField() {
@@ -120,9 +121,12 @@ public class ScreenManagerTests extends AndroidTestCase2 {
public void testSetMenuManagerFields(){
screenManager.setDynamicMenuUpdatesMode(DynamicMenuUpdatesMode.FORCE_ON);
screenManager.setMenu(Test.GENERAL_MENUCELL_LIST);
+ screenManager.setMenuConfiguration(Test.GENERAL_MENU_CONFIGURATION);
assertEquals(screenManager.getMenu(), Test.GENERAL_MENUCELL_LIST);
assertEquals(screenManager.getDynamicMenuUpdatesMode(), DynamicMenuUpdatesMode.FORCE_ON);
+ // Should not set because of improper RAI response and improper HMI states
+ assertNull(screenManager.getMenuConfiguration());
}
public void testSetVoiceCommands(){
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
index 73581cab4..5df638d43 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
@@ -39,11 +39,16 @@ import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.managers.file.FileManager;
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.RPCRequest;
+import com.smartdevicelink.proxy.RPCResponse;
import com.smartdevicelink.proxy.interfaces.ISdl;
import com.smartdevicelink.proxy.rpc.OnCommand;
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
+import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
+import com.smartdevicelink.proxy.rpc.SetGlobalProperties;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
+import com.smartdevicelink.proxy.rpc.enums.MenuLayout;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
@@ -80,7 +85,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
cells = createTestCells();
- ISdl internalInterface = mock(ISdl.class);
+ final ISdl internalInterface = mock(ISdl.class);
FileManager fileManager = mock(FileManager.class);
// When internalInterface.addOnRPCNotificationListener(FunctionID.ON_HMI_STATUS, OnRPCNotificationListener) is called
@@ -106,6 +111,19 @@ public class MenuManagerTests extends AndroidTestCase2 {
};
doAnswer(onCommandAnswer).when(internalInterface).addOnRPCNotificationListener(eq(FunctionID.ON_COMMAND), any(OnRPCNotificationListener.class));
+ Answer<Void> answer = new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) {
+ Object[] args = invocation.getArguments();
+ RPCRequest request = (RPCRequest) args[0];
+ RPCResponse response = new RPCResponse(FunctionID.SET_GLOBAL_PROPERTIES.toString());
+ response.setSuccess(true);
+ request.getOnRPCResponseListener().onResponse(0, response);
+ return null;
+ }
+ };
+ doAnswer(answer).when(internalInterface).sendRPC(any(SetGlobalProperties.class));
+
menuManager = new MenuManager(internalInterface, fileManager);
// Check some stuff during setup
@@ -120,6 +138,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
assertNull(menuManager.inProgressUpdate);
assertNull(menuManager.keepsNew);
assertNull(menuManager.keepsOld);
+ assertNull(menuManager.menuConfiguration);
assertNotNull(menuManager.hmiListener);
assertNotNull(menuManager.commandListener);
assertNotNull(menuManager.displayListener);
@@ -142,6 +161,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
assertNull(menuManager.waitingUpdateMenuCells);
assertNull(menuManager.keepsNew);
assertNull(menuManager.keepsOld);
+ assertNull(menuManager.menuConfiguration);
// after everything, make sure we are in the correct state
assertEquals(menuManager.getState(), BaseSubManager.SHUTDOWN);
@@ -425,6 +445,16 @@ public class MenuManagerTests extends AndroidTestCase2 {
assertEquals(menuManager.menuCells.size(), 0);
}
+ public void testSetMenuConfiguration(){
+ menuManager.currentHMILevel = HMILevel.HMI_FULL;
+ menuManager.currentSystemContext = SystemContext.SYSCTXT_MAIN;
+ menuManager.sdlMsgVersion = new SdlMsgVersion(6,0);
+
+ MenuConfiguration menuConfigurationTest = new MenuConfiguration(MenuLayout.LIST, MenuLayout.LIST);
+ menuManager.setMenuConfiguration(menuConfigurationTest);
+ assertEquals(menuManager.menuConfiguration, menuConfigurationTest);
+ }
+
// HELPERS
// Emulate what happens when Core sends OnHMIStatus notification
@@ -459,7 +489,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
MenuCell subCell1 = new MenuCell("SubCell 1",null, null, menuSelectionListenerSub1);
MenuCell subCell2 = new MenuCell("SubCell 2",null, null, menuSelectionListenerSub2);
- mainCell4 = new MenuCell("Test Cell 4", livio, Arrays.asList(subCell1,subCell2)); // sub menu parent cell
+ mainCell4 = new MenuCell("Test Cell 4", MenuLayout.LIST, livio, Arrays.asList(subCell1,subCell2)); // sub menu parent cell
return Arrays.asList(mainCell1, mainCell2, mainCell3, mainCell4);
}
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
index d1c1df170..9669daf83 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Test.java
@@ -8,6 +8,7 @@ import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
import com.smartdevicelink.managers.lockscreen.LockScreenConfig;
import com.smartdevicelink.managers.screen.choiceset.ChoiceCell;
import com.smartdevicelink.managers.screen.menu.MenuCell;
+import com.smartdevicelink.managers.screen.menu.MenuConfiguration;
import com.smartdevicelink.managers.screen.menu.MenuSelectionListener;
import com.smartdevicelink.managers.screen.menu.VoiceCommand;
import com.smartdevicelink.managers.screen.menu.VoiceCommandSelectionListener;
@@ -401,6 +402,7 @@ public class Test {
public static final HMISettingsControlData GENERAL_HMISETTINGSCONTROLDATA = new HMISettingsControlData();
public static final SdlArtwork GENERAL_ARTWORK = new SdlArtwork("sdl", FileType.GRAPHIC_PNG, R.drawable.ic_sdl, false);
public static final MenuLayout GENERAL_MENU_LAYOUT = MenuLayout.LIST;
+ public static final MenuConfiguration GENERAL_MENU_CONFIGURATION = new MenuConfiguration(GENERAL_MENU_LAYOUT, GENERAL_MENU_LAYOUT);
public static final HMICapabilities GENERAL_HMICAPABILITIES = new HMICapabilities();
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
index d7dd5c94e..54179194a 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
@@ -87,8 +87,8 @@ abstract class BaseMenuManager extends BaseSubManager {
List<RPCRequest> inProgressUpdate;
DynamicMenuUpdatesMode dynamicMenuUpdatesMode;
MenuConfiguration menuConfiguration;
+ SdlMsgVersion sdlMsgVersion;
private DisplayType displayType;
- private SdlMsgVersion sdlMsgVersion;
boolean waitingOnHMIUpdate;
private boolean hasQueuedUpdate;
@@ -142,6 +142,8 @@ abstract class BaseMenuManager extends BaseSubManager {
waitingUpdateMenuCells = null;
keepsNew = null;
keepsOld = null;
+ menuConfiguration = null;
+ sdlMsgVersion = null;
// remove listeners
internalInterface.removeOnRPCNotificationListener(FunctionID.ON_HMI_STATUS, hmiListener);
@@ -281,6 +283,7 @@ abstract class BaseMenuManager extends BaseSubManager {
public void onResponse(int correlationId, RPCResponse response) {
if (response.getSuccess()){
setMenuConfigPrivate(menuConfiguration);
+ DebugTool.logInfo("Menu Configuration successfully set: "+ menuConfiguration.toString());
}
}
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuConfiguration.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuConfiguration.java
index 533cf0f23..501c12d62 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuConfiguration.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/MenuConfiguration.java
@@ -84,4 +84,12 @@ public class MenuConfiguration {
return defaultSubmenuLayout;
}
+ /**
+ * @return A string description of the cell, useful for debugging.
+ */
+ @Override @NonNull
+ public String toString() {
+ return "MenuConfiguration: MenuLayout = "+ this.mainMenuLayout + " | SubMenuLayout = "+ this.defaultSubmenuLayout;
+ }
+
}