@@ -21,61 +21,88 @@ import "../../../qml/Components"
2121TestCase {
2222 name: "PhysicalKeysMapper"
2323
24− PhysicalKeysMapper {
25− id: physicalKeysMapper
24+ Loader {
25+ id: loader
26+ active: false
27+ sourceComponent: PhysicalKeysMapper { }
2628 }
2729
2830 SignalSpy {
2931 id: powerSpy
30− target: physicalKeysMapper
32+ target: loader.item
3133 signalName: "powerKeyLongPress"
3234 }
3335
34− function cleanup() {
35− physicalKeysMapper.onKeyReleased({ key: Qt.Key_PowerDown });
36− physicalKeysMapper.onKeyReleased({ key: Qt.Key_VolumeDown });
37− physicalKeysMapper.onKeyReleased({ key: Qt.Key_VolumeUp });
36+ SignalSpy {
37+ id: volumeDownSpy
38+ target: loader.item
39+ signalName: "volumeDownTrigger"
40+ }
41+
42+ SignalSpy {
43+ id: volumeUpSpy
44+ target: loader.item
45+ signalName: "volumeUpTrigger"
46+ }
47+
48+ SignalSpy {
49+ id: screenshotSpy
50+ target: loader.item
51+ signalName: "screenshotTrigger"
52+ }
53+
54+ function init() {
55+ loader.active = true;
56+ tryCompare(loader.status == Loader.Ready);
57+ }
3858
59+ function cleanup() {
60+ loader.active = false;
3961 powerSpy.clear();
62+ volumeDownSpy.clear();
63+ volumeUpSpy.clear();
64+ screenshotSpy.clear();
4065 }
4166
4267 function test_LongPressPowerButton() {
43− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown });
68+ loader.item.onKeyPressed({ key: Qt.Key_PowerDown });
4469
4570 expectFailContinue("", "Power signal should not be emitted within a second");
4671 powerSpy.wait(1000);
4772 powerSpy.clear();
4873
49− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true });
74+ loader.item.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true });
5075 powerSpy.wait(1500);
5176 }
5277
53− function test_ScreenshotButtons() {
54− /* Behavior when VolumeUp is pressed 1st */
55− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeUp });
56− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeDown });
57− compare(physicalKeysMapper.screenshotPressed, true);
58− compare(physicalKeysMapper.volumeDownPressed, false);
59−
60− physicalKeysMapper.onKeyReleased({ key: Qt.Key_VolumeUp });
61− physicalKeysMapper.onKeyReleased({ key: Qt.Key_VolumeDown });
62−
63− /* Behavior when VolumeDown is pressed 1st */
64− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeDown });
65− compare(physicalKeysMapper.volumeDownPressed, true);
66− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeUp });
67− compare(physicalKeysMapper.screenshotPressed, true);
78+ function test_ScreenshotButtons_data() {
79+ return [
80+ { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
81+ { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
82+ ];
83+ }
84+
85+ function test_ScreenshotButtons(data) {
86+ loader.item.onKeyPressed({ key: data.first });
87+ loader.item.onKeyPressed({ key: data.second });
88+ screenshotSpy.wait();
89+ loader.item.onKeyReleased({ key: data.first });
90+ loader.item.onKeyReleased({ key: data.second });
91+ expectFailContinue("", "VolumeUp signal should not fire");
92+ volumeUpSpy.wait(100);
93+ expectFailContinue("", "VolumeDown signal should not fire");
94+ volumeDownSpy.wait(100);
6895 }
6996
7097 function test_VolumeDownButton() {
71− compare(physicalKeysMapper.volumeDownPressed, false);
72− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeDown });
73− compare(physicalKeysMapper.volumeDownPressed, true);
98+ loader.item.onKeyPressed({ key: Qt.Key_VolumeDown });
99+ loader.item.onKeyReleased({ key: Qt.Key_VolumeDown });
100+ volumeDownSpy.wait();
74101 }
75102
76103 function test_VolumeUpButton() {
77− compare(physicalKeysMapper.volumeUpPressed, false);
78− physicalKeysMapper.onKeyPressed({ key: Qt.Key_VolumeUp });
79− compare(physicalKeysMapper.volumeUpPressed, true);
104+ loader.item.onKeyPressed({ key: Qt.Key_VolumeUp });
105+ loader.item.onKeyReleased({ key: Qt.Key_VolumeUp });
106+ volumeUpSpy.wait();
80107 }
81108}