diff options
author | BrettyWhite <geekman3454@protonmail.com> | 2019-07-19 10:58:22 -0400 |
---|---|---|
committer | BrettyWhite <geekman3454@protonmail.com> | 2019-07-19 10:58:22 -0400 |
commit | 96d194b23463ef1046a19ff19379b51040cf5bd0 (patch) | |
tree | 5d977a10057c71ad6206a5b2efbb3381af7ba159 | |
parent | 061440036a5de0d783e9b50ce0194302cf66ef1d (diff) | |
download | sdl_android-96d194b23463ef1046a19ff19379b51040cf5bd0.tar.gz |
finishing menuconfiguration and tests
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; + } + } |