@@ -22,6 +22,8 @@ TestCase {
22 name: "PhysicalKeysMapper"
22 name: "PhysicalKeysMapper"
25+ // Using a Loader here to make sure mapper state is coherent
26+ // regardless of unmatched KeyPress and KeyRelease events
25 id: loader
27 id: loader
26 active: false
28 active: false
27 sourceComponent: PhysicalKeysMapper { }
29 sourceComponent: PhysicalKeysMapper { }
@@ -94,15 +96,24 @@ TestCase {
94 volumeDownSpy.wait(100);
96 volumeDownSpy.wait(100);
97− function test_VolumeDownButton() {
99+ function test_VolumeButton_data() {
98− loader.item.onKeyPressed({ key: Qt.Key_VolumeDown });
100+ return [
99− loader.item.onKeyReleased({ key: Qt.Key_VolumeDown });
101+ { tag: "Down", key: Qt.Key_VolumeDown, spy: volumeDownSpy },
100− volumeDownSpy.wait();
102+ { tag: "Up", key: Qt.Key_VolumeUp, spy: volumeUpSpy },
103− function test_VolumeUpButton() {
106+ function test_VolumeButton(data) {
104− loader.item.onKeyPressed({ key: Qt.Key_VolumeUp });
107+ loader.item.onKeyPressed({ key: data.key });
108+ expectFailContinue("", "Signal should not fire on press");
105− loader.item.onKeyReleased({ key: Qt.Key_VolumeUp });
112+ loader.item.onKeyReleased({ key: data.key });
106− volumeUpSpy.wait();
113+ data.spy.wait();
115+ loader.item.onKeyPressed({ key: data.key });
116+ loader.item.onKeyPressed({ key: data.key, isAutoRepeat: true });