on xenial help sign in
Add Shell.test_showInputMethod()
commita79fd1ef56df8f5042780835e8132b02356d85f5 authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateWed 23 Jul 2014, 15:30 (12 years ago) parent4c6eeb3
5 files changed+35−6
qml/Shell.qml+1 tests/mocks/Unity/Application/MirSurfaceItem.h+1−1 tests/mocks/Unity/Application/SurfaceManager.cpp+10−5 tests/mocks/Unity/Application/SurfaceManager.h+3 tests/qmltests/tst_Shell.qml+20
qml/Shell.qml+1
@@ -472,6 +472,7 @@ Item {
472472
473473 InputMethod {
474474 id: inputMethod
475+ objectName: "inputMethod"
475476 anchors { fill: parent; topMargin: panel.panelHeight }
476477 z: notifications.useModal || panel.indicators.shown ? overlay.z + 1 : overlay.z - 1
477478 }
tests/mocks/Unity/Application/MirSurfaceItem.h+1−1
@@ -62,7 +62,7 @@ public:
6262 State state() const { return m_state; }
6363 QString name() const { return m_name; }
6464
65− void setState(State newState);
65+ Q_INVOKABLE void setState(State newState);
6666
6767 Q_INVOKABLE void release() {}
6868
tests/mocks/Unity/Application/SurfaceManager.cpp+10−5
@@ -52,11 +52,7 @@ void SurfaceManager::unregisterSurface(MirSurfaceItem *surface)
5252
5353void SurfaceManager::showInputMethod()
5454{
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);
6056}
6157
6258void SurfaceManager::hideInputMethod()
@@ -65,3 +61,12 @@ void SurfaceManager::hideInputMethod()
6561 m_virtualKeyboard->setState(MirSurfaceItem::Minimized);
6662 }
6763}
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:
3434 void registerSurface(MirSurfaceItem *surface);
3535 void unregisterSurface(MirSurfaceItem *surface);
3636
37+ // To be used in the tests
38+ Q_INVOKABLE MirSurfaceItem *inputMethodSurface();
39+
3740Q_SIGNALS:
3841 void countChanged();
3942 void surfaceCreated(MirSurfaceItem *surface);
tests/qmltests/tst_Shell.qml+20
@@ -358,6 +358,26 @@ Item {
358358 verify(itemIsOnScreen(runningApplicationsGrid));
359359 }
360360
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+
361381 // Wait for the whole UI to settle down
362382 function waitForUIToSettle() {
363383 waitUntilApplicationWindowIsFullyHidden();