@@ -80,6 +80,12 @@ Item {
8080 signalName: "timeZoneChangedCalled"
8181 }
8282
83+ SignalSpy {
84+ id: kbdLayoutSpy
85+ target: AccountsService
86+ signalName: "keymapsChanged"
87+ }
88+
8389 function setup() {
8490 AccountsService.hereEnabled = false;
8591 AccountsService.hereLicensePath = Qt.resolvedUrl("licenses");
@@ -94,6 +100,7 @@ Item {
94100 activateLocationSpy.clear();
95101 activateGPSSpy.clear();
96102 timezoneSpy.clear();
103+ kbdLayoutSpy.clear();
97104
98105 ActionData.data = {
99106 "location-detection-enabled": {
@@ -191,6 +198,10 @@ Item {
191198 tap(findChild(page, "forwardButton"));
192199 }
193200
201+ page = waitForPage("keyboardPage");
202+ if (name === page.objectName) return page;
203+ tap(findChild(page, "forwardButton"));
204+
194205 page = waitForPage("wifiPage");
195206 if (name === page.objectName) return page;
196207 tap(findChild(page, "forwardButton"));
@@ -494,5 +505,27 @@ Item {
494505 tap(findChild(page, "nameInput"));
495506 typeString("foobar");
496507 }
508+
509+ function test_keyboardPage() {
510+ var page = goToPage("keyboardPage");
511+ var forwardButton = findChild(page, "forwardButton");
512+
513+ // change language
514+ var langSelector = findChild(page, "langSelector");
515+ verify(langSelector);
516+ langSelector.selectedIndex = 1; // should be fr_FR
517+ print("Selected language:", page.selectedLanguage);
518+
519+ // pick some layout
520+ var kbdDelegate = findChild(page, "kbdDelegate1");
521+ verify(kbdDelegate);
522+ mouseClick(kbdDelegate);
523+ verify(kbdDelegate.isCurrent);
524+ print("Selected keymap:", page.selectedKeymap);
525+
526+ // verify the keymapsChanged signal got fired
527+ tap(findChild(page, "forwardButton"));
528+ tryCompare(kbdLayoutSpy, "count", 1);
529+ }
497530 }
498531}