diff --git a/src/app/constant/JamiQmlUtils.qml b/src/app/constant/JamiQmlUtils.qml
index 6aa09d739d816c310a4c46cbd3cfddb0916a0463..28f16f8bb14417aae0773355249a6715fcd5fefc 100644
--- a/src/app/constant/JamiQmlUtils.qml
+++ b/src/app/constant/JamiQmlUtils.qml
@@ -49,6 +49,10 @@ Item {
 
     signal settingsPageRequested(int index)
 
+    function requestSettingsPage(index) {
+        settingsPageRequested(index);
+    }
+
     function updateMessageBarButtonsPoints() {
         if (messageBarButtonsRowObj && audioRecordMessageButtonObj && videoRecordMessageButtonObj) {
             audioRecordMessageButtonInMainViewPoint = messageBarButtonsRowObj.mapToItem(mainViewRectObj, audioRecordMessageButtonObj.x, audioRecordMessageButtonObj.y);
diff --git a/src/app/mainview/MainView.qml b/src/app/mainview/MainView.qml
index 8ac5357986423998c93a31bfa18ef4cd550a3cf5..93ef1380c590c579b5300764863746832a6b7001 100644
--- a/src/app/mainview/MainView.qml
+++ b/src/app/mainview/MainView.qml
@@ -64,7 +64,7 @@ Rectangle {
     Shortcut {
         sequence: "Ctrl+M"
         context: Qt.ApplicationShortcut
-        onActivated: JamiQmlUtils.settingsPageRequested(12)
+        onActivated: JamiQmlUtils.requestSettingsPage(12)
     }
 
     WheelHandler {
@@ -117,19 +117,19 @@ Rectangle {
     Shortcut {
         sequence: "Ctrl+G"
         context: Qt.ApplicationShortcut
-        onActivated: JamiQmlUtils.settingsPageRequested(5)
+        onActivated: JamiQmlUtils.requestSettingsPage(5)
     }
 
     Shortcut {
         sequence: "Ctrl+Alt+I"
         context: Qt.ApplicationShortcut
-        onActivated: JamiQmlUtils.settingsPageRequested(0)
+        onActivated: JamiQmlUtils.requestSettingsPage(0)
     }
 
     Shortcut {
         sequence: "Ctrl+P"
         context: Qt.ApplicationShortcut
-        onActivated: JamiQmlUtils.settingsPageRequested(15)
+        onActivated: JamiQmlUtils.requestSettingsPage(15)
     }
 
     Shortcut {
diff --git a/tests/qml/src/tst_MainView.qml b/tests/qml/src/tst_MainView.qml
new file mode 100644
index 0000000000000000000000000000000000000000..b28d22c61ee1d68117a2b0264f7df2c28a873c7d
--- /dev/null
+++ b/tests/qml/src/tst_MainView.qml
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2024 Savoir-faire Linux Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick
+import QtTest
+
+import net.jami.Adapters 1.1
+import net.jami.Models 1.1
+import net.jami.Constants 1.1
+import net.jami.Enums 1.1
+
+import "../../../src/app/mainview"
+import "../../../src/app/commoncomponents"
+
+MainView {
+    id: uut
+
+    width: 400
+    height: 600
+
+    SignalSpy {
+        id: settingsPageRequestedSpy
+
+        target: JamiQmlUtils
+        signalName: "onSettingsPageRequested"
+    }
+
+    TestCase {
+        name: "Test shortcuts"
+        when: windowShown
+
+        function test_shortcuts() {
+            keyClick(Qt.Key_M, Qt.ControlModifier)
+            settingsPageRequestedSpy.wait(1000)
+            compare(settingsPageRequestedSpy.count, 1)
+            keyClick(Qt.Key_G, Qt.ControlModifier)
+            settingsPageRequestedSpy.wait(1000)
+            compare(settingsPageRequestedSpy.count, 2)
+        }
+    }
+
+}