@@ -996,37 +996,55 @@ Rectangle {
996 tryCompare(shell, "transformRotationAngle", 0);
996 tryCompare(shell, "transformRotationAngle", 0);
999+ function test_attachRemoveInputDevices_data() {
1001+ { tag: "small screen, no devices", screenWidth: units.gu(50), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1002+ { tag: "medium screen, no devices", screenWidth: units.gu(100), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1003+ { tag: "big screen, no devices", screenWidth: units.gu(200), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1004+ { tag: "small screen, mouse", screenWidth: units.gu(50), mouse: true, kbd: false, expectedMode: "phone", oskExpected: true },
1005+ { tag: "medium screen, mouse", screenWidth: units.gu(100), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1006+ { tag: "big screen, mouse", screenWidth: units.gu(200), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1007+ { tag: "small screen, kbd", screenWidth: units.gu(50), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1008+ { tag: "medium screen, kbd", screenWidth: units.gu(100), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1009+ { tag: "big screen, kbd", screenWidth: units.gu(200), mouse: false, kbd: true, expectedMode: "desktop", oskExpected: false },
1010+ { tag: "small screen, mouse & kbd", screenWidth: units.gu(50), mouse: true, kbd: true, expectedMode: "phone", oskExpected: false },
1011+ { tag: "medium screen, mouse & kbd", screenWidth: units.gu(100), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
1012+ { tag: "big screen, mouse & kbd", screenWidth: units.gu(200), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
999− function test_attachRemoveInputDevices() {
1016+ function test_attachRemoveInputDevices(data) {
1000 usageModeSelector.selectedIndex = 2;
1017 usageModeSelector.selectedIndex = 2;
1001 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
1018 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
1003 loadShell("mako")
1020 loadShell("mako")
1004 var shell = findChild(orientedShell, "shell");
1021 var shell = findChild(orientedShell, "shell");
1006− tryCompare(shell, "usageScenario", "phone");
1023+ var oldWidth = orientedShellLoader.width;
1007− tryCompare(mockOskSettings, "stayHidden", false);
1024+ orientedShellLoader.width = data.screenWidth;
1009− MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1010 tryCompare(shell, "usageScenario", "phone");
1026 tryCompare(shell, "usageScenario", "phone");
1011− tryCompare(mockOskSettings, "stayHidden", true);
1013− MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1014− tryCompare(shell, "usageScenario", "desktop");
1015− tryCompare(mockOskSettings, "stayHidden", true);
1017− MockInputDeviceBackend.removeDevice("/kbd0");
1018− tryCompare(shell, "usageScenario", "desktop");
1019 tryCompare(mockOskSettings, "stayHidden", false);
1027 tryCompare(mockOskSettings, "stayHidden", false);
1030+ MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1021− MockInputDeviceBackend.removeDevice("/mouse0");
1033+ MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1022− tryCompare(shell, "usageScenario", "phone");
1034+ }
1023− tryCompare(mockOskSettings, "stayHidden", false);
1025− MockInputDeviceBackend.addMockDevice("/touchpad0", InputInfo.TouchPad);
1026− tryCompare(shell, "usageScenario", "desktop");
1036+ tryCompare(shell, "usageScenario", data.expectedMode);
1037+ tryCompare(mockOskSettings, "stayHidden", !data.oskExpected);
1028− MockInputDeviceBackend.removeDevice("/touchpad0");
1040+ MockInputDeviceBackend.removeDevice("/kbd0");
1029− tryCompare(shell, "usageScenario", "phone");
1041+ }
1043+ MockInputDeviceBackend.removeDevice("/mouse0");
1047+ orientedShellLoader.width = oldWidth;