@@ -21,6 +21,8 @@ import "../../../qml/Components"
22 name: "PhysicalKeysMapper"
22 name: "PhysicalKeysMapper"
24+ property var physicalKeysMapper: loader.item
25 // Using a Loader here to make sure mapper state is coherent
27 // Using a Loader here to make sure mapper state is coherent
26 // regardless of unmatched KeyPress and KeyRelease events
28 // regardless of unmatched KeyPress and KeyRelease events
@@ -31,25 +33,25 @@ TestCase {
32 SignalSpy {
34 SignalSpy {
33 id: powerSpy
35 id: powerSpy
34− target: loader.item
36+ target: physicalKeysMapper
35 signalName: "powerKeyLongPressed"
37 signalName: "powerKeyLongPressed"
38 SignalSpy {
40 SignalSpy {
39 id: volumeDownSpy
41 id: volumeDownSpy
40− target: loader.item
42+ target: physicalKeysMapper
41 signalName: "volumeDownTriggered"
43 signalName: "volumeDownTriggered"
44 SignalSpy {
46 SignalSpy {
45 id: volumeUpSpy
47 id: volumeUpSpy
46− target: loader.item
48+ target: physicalKeysMapper
47 signalName: "volumeUpTriggered"
49 signalName: "volumeUpTriggered"
50 SignalSpy {
52 SignalSpy {
51 id: screenshotSpy
53 id: screenshotSpy
52− target: loader.item
54+ target: physicalKeysMapper
53 signalName: "screenshotTriggered"
55 signalName: "screenshotTriggered"
@@ -66,54 +68,64 @@ TestCase {
66 screenshotSpy.clear();
68 screenshotSpy.clear();
69− function test_LongPressPowerButton() {
71+ function test_powerKeyLongPressed() {
70− loader.item.onKeyPressed({ key: Qt.Key_PowerDown });
72+ physicalKeysMapper.powerKeyLongPressTime = 500;
72− expectFailContinue("", "Power signal should not be emitted within a second");
74+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: false });
73− powerSpy.wait(1000);
75+
76+ for (var i = 0; i < 3; ++i) {
78+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true});
81+ // powerKeyLongPressed should not have been emitted yet.
74− powerSpy.clear();
82+ compare(powerSpy.count, 0);
84+ for (var i = 0; i < 10; ++i) {
76− loader.item.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true });
86+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true});
77− powerSpy.wait(1500);
89+ compare(powerSpy.count, 1);
80− function test_ScreenshotButtons_data() {
92+ function test_screenshotButtons_data() {
82 { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
94 { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
83 { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
95 { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
87− function test_ScreenshotButtons(data) {
99+ function test_screenshotButtons(data) {
88− loader.item.onKeyPressed({ key: data.first });
100+ physicalKeysMapper.onKeyPressed({ key: data.first });
89− loader.item.onKeyPressed({ key: data.second });
101+ physicalKeysMapper.onKeyPressed({ key: data.second });
90 screenshotSpy.wait();
102 screenshotSpy.wait();
91− loader.item.onKeyReleased({ key: data.first });
103+ physicalKeysMapper.onKeyReleased({ key: data.first });
92− loader.item.onKeyReleased({ key: data.second });
104+ physicalKeysMapper.onKeyReleased({ key: data.second });
93− expectFailContinue("", "VolumeUp signal should not fire");
105+
94− volumeUpSpy.wait(100);
107+ compare(volumeUpSpy.count, 0);
95− expectFailContinue("", "VolumeDown signal should not fire");
96− volumeDownSpy.wait(100);
108+ compare(volumeDownSpy.count, 0);
99− function test_VolumeButton_data() {
111+ function test_volumeButton_data() {
101 { tag: "Down", key: Qt.Key_VolumeDown, spy: volumeDownSpy },
113 { tag: "Down", key: Qt.Key_VolumeDown, spy: volumeDownSpy },
102 { tag: "Up", key: Qt.Key_VolumeUp, spy: volumeUpSpy },
114 { tag: "Up", key: Qt.Key_VolumeUp, spy: volumeUpSpy },
106− function test_VolumeButton(data) {
118+ function test_volumeButton(data) {
107− loader.item.onKeyPressed({ key: data.key });
119+ physicalKeysMapper.onKeyPressed({ key: data.key });
108− expectFailContinue("", "Signal should not fire on press");
120+
109− data.spy.wait(100);
121+ wait(100);
110− data.spy.clear();
122+ compare(data.spy.count, 0);
112− loader.item.onKeyReleased({ key: data.key });
124+ physicalKeysMapper.onKeyReleased({ key: data.key });
113 data.spy.wait();
125 data.spy.wait();
115− loader.item.onKeyPressed({ key: data.key });
127+ physicalKeysMapper.onKeyPressed({ key: data.key });
116− loader.item.onKeyPressed({ key: data.key, isAutoRepeat: true });
128+ physicalKeysMapper.onKeyPressed({ key: data.key, isAutoRepeat: true });
117 data.spy.wait();
129 data.spy.wait();