on xenial help sign in
Add Shell.test_showInputMethod()
a79fd1eDaniel d'Andrada
qml/Shell.qml+1
@@ -472,6 +472,7 @@ Item {
472
472
473 InputMethod {
473 InputMethod {
474 id: inputMethod
474 id: inputMethod
475+ objectName: "inputMethod"
475 anchors { fill: parent; topMargin: panel.panelHeight }
476 anchors { fill: parent; topMargin: panel.panelHeight }
476 z: notifications.useModal || panel.indicators.shown ? overlay.z + 1 : overlay.z - 1
477 z: notifications.useModal || panel.indicators.shown ? overlay.z + 1 : overlay.z - 1
477 }
478 }
tests/mocks/Unity/Application/MirSurfaceItem.h+1−1
@@ -62,7 +62,7 @@ public:
62 State state() const { return m_state; }
62 State state() const { return m_state; }
63 QString name() const { return m_name; }
63 QString name() const { return m_name; }
64
64
65− void setState(State newState);
65+ Q_INVOKABLE void setState(State newState);
66
66
67 Q_INVOKABLE void release() {}
67 Q_INVOKABLE void release() {}
68
68
tests/mocks/Unity/Application/SurfaceManager.cpp+10−5
@@ -52,11 +52,7 @@ void SurfaceManager::unregisterSurface(MirSurfaceItem *surface)
52
52
53void SurfaceManager::showInputMethod()
53void SurfaceManager::showInputMethod()
54{
54{
55− if (!m_virtualKeyboard) {
56− m_virtualKeyboard = new VirtualKeyboard(MirSurfaceItem::Minimized);
57− Q_EMIT surfaceCreated(m_virtualKeyboard);
58− }
59− m_virtualKeyboard->setState(MirSurfaceItem::Restored);
55+ inputMethodSurface()->setState(MirSurfaceItem::Restored);
60}
56}
61
57
62void SurfaceManager::hideInputMethod()
58void SurfaceManager::hideInputMethod()
@@ -65,3 +61,12 @@ void SurfaceManager::hideInputMethod()
65 m_virtualKeyboard->setState(MirSurfaceItem::Minimized);
61 m_virtualKeyboard->setState(MirSurfaceItem::Minimized);
66 }
62 }
67}
63}
64+
65+MirSurfaceItem *SurfaceManager::inputMethodSurface()
66+{
67+ if (!m_virtualKeyboard) {
68+ m_virtualKeyboard = new VirtualKeyboard(MirSurfaceItem::Minimized);
69+ Q_EMIT surfaceCreated(m_virtualKeyboard);
70+ }
71+ return m_virtualKeyboard;
72+}
tests/mocks/Unity/Application/SurfaceManager.h+3
@@ -34,6 +34,9 @@ public:
34 void registerSurface(MirSurfaceItem *surface);
34 void registerSurface(MirSurfaceItem *surface);
35 void unregisterSurface(MirSurfaceItem *surface);
35 void unregisterSurface(MirSurfaceItem *surface);
36
36
37+ // To be used in the tests
38+ Q_INVOKABLE MirSurfaceItem *inputMethodSurface();
39+
37Q_SIGNALS:
40Q_SIGNALS:
38 void countChanged();
41 void countChanged();
39 void surfaceCreated(MirSurfaceItem *surface);
42 void surfaceCreated(MirSurfaceItem *surface);
tests/qmltests/tst_Shell.qml+20
@@ -358,6 +358,26 @@ Item {
358 verify(itemIsOnScreen(runningApplicationsGrid));
358 verify(itemIsOnScreen(runningApplicationsGrid));
359 }
359 }
360
360
361+ function test_showInputMethod() {
362+ var item = findChild(shell, "inputMethod");
363+ var surface = SurfaceManager.inputMethodSurface();
364+
365+ surface.setState(MirSurfaceItem.Minimized);
366+ tryCompare(item, "visible", false);
367+
368+ surface.setState(MirSurfaceItem.Restored);
369+ tryCompare(item, "visible", true);
370+
371+ surface.setState(MirSurfaceItem.Minimized);
372+ tryCompare(item, "visible", false);
373+
374+ surface.setState(MirSurfaceItem.Maximized);
375+ tryCompare(item, "visible", true);
376+
377+ surface.setState(MirSurfaceItem.Minimized);
378+ tryCompare(item, "visible", false);
379+ }
380+
361 // Wait for the whole UI to settle down
381 // Wait for the whole UI to settle down
362 function waitForUIToSettle() {
382 function waitForUIToSettle() {
363 waitUntilApplicationWindowIsFullyHidden();
383 waitUntilApplicationWindowIsFullyHidden();