diff options
author | kboskin <kboskin> | 2021-02-18 14:55:16 +0200 |
---|---|---|
committer | kboskin <kboskin> | 2021-02-18 14:55:16 +0200 |
commit | 1daa2aed786ab0970eeb41cddf3ea97070c68a2c (patch) | |
tree | 0c60ec5d0703ad0df5acd0381d8a1c25fb99bd3e | |
parent | e9f1d036b799c2232fd0c5bed72fdb4a0ecd2a47 (diff) | |
download | sdl_android-1daa2aed786ab0970eeb41cddf3ea97070c68a2c.tar.gz |
[0238]
- Fix tests
-rw-r--r-- | android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java | 116 |
1 files changed, 115 insertions, 1 deletions
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java index c7c0df7e4..59afe220b 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java @@ -34,15 +34,18 @@ */ package com.smartdevicelink.managers.screen.choiceset; - import androidx.test.ext.junit.runners.AndroidJUnit4; import com.livio.taskmaster.Taskmaster; import com.smartdevicelink.managers.BaseSubManager; import com.smartdevicelink.managers.ISdl; import com.smartdevicelink.managers.file.FileManager; +import com.smartdevicelink.proxy.rpc.KeyboardCapabilities; +import com.smartdevicelink.proxy.rpc.KeyboardLayoutCapability; import com.smartdevicelink.proxy.rpc.KeyboardProperties; +import com.smartdevicelink.proxy.rpc.WindowCapability; import com.smartdevicelink.proxy.rpc.enums.HMILevel; +import com.smartdevicelink.proxy.rpc.enums.KeyboardInputMask; import com.smartdevicelink.proxy.rpc.enums.KeyboardLayout; import com.smartdevicelink.proxy.rpc.enums.KeypressMode; import com.smartdevicelink.proxy.rpc.enums.Language; @@ -54,6 +57,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -289,6 +293,116 @@ public class ChoiceSetManagerTests { } @Test + public void testDefaultWindowCapabilityNotSet() throws NoSuchFieldException, IllegalAccessException { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getTaskmaster()).thenReturn(taskmaster); + FileManager fileManager = mock(FileManager.class); + + // Test direct set + ChoiceSetManager newCSM = new ChoiceSetManager(internalInterface, fileManager); + newCSM.setKeyboardConfiguration(newCSM.defaultKeyboardConfiguration()); + Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); + field.setAccessible(true); + KeyboardProperties properties = (KeyboardProperties)field.get(newCSM); + assertEquals(properties, csm.defaultKeyboardConfiguration()); + + // Test presentKeyboard + newCSM = new ChoiceSetManager(internalInterface, fileManager); + newCSM.presentKeyboard("qwerty", newCSM.defaultKeyboardConfiguration(), null); + field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); + field.setAccessible(true); + properties = (KeyboardProperties)field.get(newCSM); + assertEquals(properties, csm.defaultKeyboardConfiguration()); + } + + @Test + public void testDefaultWindowCapabilityTooManyKeys() throws NoSuchFieldException, IllegalAccessException { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getTaskmaster()).thenReturn(taskmaster); + FileManager fileManager = mock(FileManager.class); + + ChoiceSetManager newCSM = new ChoiceSetManager(internalInterface, fileManager); + WindowCapability smallKeysAmountCapability = new WindowCapability(); + KeyboardCapabilities capabilities = new KeyboardCapabilities(); + capabilities.setMaskInputCharactersSupported(true); + KeyboardLayout layout = KeyboardLayout.QWERTY; + capabilities.setSupportedKeyboards(Collections.singletonList(new KeyboardLayoutCapability(layout, 1))); + smallKeysAmountCapability.setKeyboardCapabilities(capabilities); + newCSM.defaultMainWindowCapability = smallKeysAmountCapability; + + KeyboardProperties setProperties = new KeyboardProperties(); + setProperties.setKeyboardLayout(layout); + setProperties.setCustomKeys(Arrays.asList("1", "2")); + + newCSM.setKeyboardConfiguration(setProperties); + Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); + field.setAccessible(true); + + KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + + assertEquals(getProperties.getCustomKeys().size(), 1); + } + + @Test + public void testCustomKeysNull() throws NoSuchFieldException, IllegalAccessException { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getTaskmaster()).thenReturn(taskmaster); + FileManager fileManager = mock(FileManager.class); + + ChoiceSetManager newCSM = new ChoiceSetManager(internalInterface, fileManager); + WindowCapability smallKeysAmountCapability = new WindowCapability(); + KeyboardCapabilities capabilities = new KeyboardCapabilities(); + capabilities.setMaskInputCharactersSupported(true); + KeyboardLayout layout = KeyboardLayout.QWERTY; + capabilities.setSupportedKeyboards(Collections.singletonList(new KeyboardLayoutCapability(layout, 0))); + smallKeysAmountCapability.setKeyboardCapabilities(capabilities); + newCSM.defaultMainWindowCapability = smallKeysAmountCapability; + + KeyboardProperties setProperties = new KeyboardProperties(); + setProperties.setKeyboardLayout(layout); + setProperties.setCustomKeys(new ArrayList<String>()); + + newCSM.setKeyboardConfiguration(setProperties); + Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); + field.setAccessible(true); + + KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + + assertNull(getProperties.getCustomKeys()); + } + + @Test + public void testMaskInputCharactersNotSupported() throws NoSuchFieldException, IllegalAccessException { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getTaskmaster()).thenReturn(taskmaster); + FileManager fileManager = mock(FileManager.class); + + ChoiceSetManager newCSM = new ChoiceSetManager(internalInterface, fileManager); + WindowCapability maskInputNotSupportedCapability = new WindowCapability(); + KeyboardCapabilities capabilities = new KeyboardCapabilities(); + + capabilities.setMaskInputCharactersSupported(false); + KeyboardLayout layout = KeyboardLayout.QWERTY; + capabilities.setSupportedKeyboards(Collections.singletonList(new KeyboardLayoutCapability(layout, 0))); + + maskInputNotSupportedCapability.setKeyboardCapabilities(capabilities); + + newCSM.defaultMainWindowCapability = maskInputNotSupportedCapability; + + KeyboardProperties setProperties = new KeyboardProperties(); + setProperties.setKeyboardLayout(layout); + setProperties.setMaskInputCharacters(KeyboardInputMask.DISABLE_INPUT_KEY_MASK); + + newCSM.setKeyboardConfiguration(setProperties); + Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); + field.setAccessible(true); + + KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + + assertNull(getProperties.getMaskInputCharacters()); + } + + @Test public void testDismissingExecutingKeyboard() { Integer testCancelID = 42; PresentKeyboardOperation testKeyboardOp = mock(PresentKeyboardOperation.class); |