Merge lp:~ubuntu-sdk-team/ubuntu-ui-toolkit/bottomKeyboard into lp:ubuntu-ui-toolkit/staging
- bottomKeyboard
- Merge into staging
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Timo Jyrinki | ||||
Approved revision: | 1852 | ||||
Merged at revision: | 1896 | ||||
Proposed branch: | lp:~ubuntu-sdk-team/ubuntu-ui-toolkit/bottomKeyboard | ||||
Merge into: | lp:ubuntu-ui-toolkit/staging | ||||
Diff against target: |
207 lines (+87/-11) 6 files modified
src/Ubuntu/Components/Themes/Ambiance/1.3/BottomEdgeHintStyle.qml (+14/-0) src/Ubuntu/Components/plugin/ucbottomedge.cpp (+9/-0) src/Ubuntu/Components/plugin/ucbottomedgehint.cpp (+10/-2) tests/unit_x11/tst_bottomedge/tst_bottomedge.cpp (+28/-0) tests/unit_x11/tst_components/tst_bottomedgehint.qml (+10/-5) tests/unit_x11/tst_components/tst_focus.qml (+16/-4) |
||||
To merge this branch: | bzr merge lp:~ubuntu-sdk-team/ubuntu-ui-toolkit/bottomKeyboard | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
ubuntu-sdk-build-bot | continuous-integration | Approve | |
Zsombor Egri | Approve | ||
Review via email: mp+285592@code.launchpad.net |
Commit message
BottomEdge(Hint) focus and close via keyboard
Description of the change
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1849
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1849
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1849
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1849
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1850
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1850
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1850
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1850
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1850
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1851
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1851
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1851
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1851
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1851
https:/
Executed test runs:
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
Click here to trigger a rebuild:
https:/
Zsombor Egri (zsombi) wrote : | # |
It feels good, works nicely! Good job!
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
FAILED: Autolanding.
More details in the following jenkins job:
https:/
Executed test runs:
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
None: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote : | # |
PASSED: Continuous integration, rev:1852
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'src/Ubuntu/Components/Themes/Ambiance/1.3/BottomEdgeHintStyle.qml' | |||
2 | --- src/Ubuntu/Components/Themes/Ambiance/1.3/BottomEdgeHintStyle.qml 2016-01-27 15:17:56 +0000 | |||
3 | +++ src/Ubuntu/Components/Themes/Ambiance/1.3/BottomEdgeHintStyle.qml 2016-03-15 12:06:06 +0000 | |||
4 | @@ -112,6 +112,9 @@ | |||
5 | 112 | } | 112 | } |
6 | 113 | name: "toolkit_bottom-edge-hint" | 113 | name: "toolkit_bottom-edge-hint" |
7 | 114 | color: foregroundColor | 114 | color: foregroundColor |
8 | 115 | |||
9 | 116 | FocusShape { | ||
10 | 117 | } | ||
11 | 115 | } | 118 | } |
12 | 116 | 119 | ||
13 | 117 | Rectangle { | 120 | Rectangle { |
14 | @@ -128,6 +131,17 @@ | |||
15 | 128 | anchors.top: parent.top | 131 | anchors.top: parent.top |
16 | 129 | } | 132 | } |
17 | 130 | 133 | ||
18 | 134 | FocusShape { | ||
19 | 135 | anchors { | ||
20 | 136 | fill: undefined | ||
21 | 137 | margins: 0 | ||
22 | 138 | top: parent.top | ||
23 | 139 | bottom: parent.bottom | ||
24 | 140 | horizontalCenter: parent.horizontalCenter | ||
25 | 141 | } | ||
26 | 142 | // icon, spacing, label, margin on either side | ||
27 | 143 | width: icon.width + units.gu(1) + label.width + units.gu(0.46) * 2 | ||
28 | 144 | } | ||
29 | 131 | Row { | 145 | Row { |
30 | 132 | anchors { | 146 | anchors { |
31 | 133 | top: parent.top | 147 | top: parent.top |
32 | 134 | 148 | ||
33 | === modified file 'src/Ubuntu/Components/plugin/ucbottomedge.cpp' | |||
34 | --- src/Ubuntu/Components/plugin/ucbottomedge.cpp 2016-02-20 15:11:02 +0000 | |||
35 | +++ src/Ubuntu/Components/plugin/ucbottomedge.cpp 2016-03-15 12:06:06 +0000 | |||
36 | @@ -831,6 +831,15 @@ | |||
37 | 831 | } | 831 | } |
38 | 832 | break; | 832 | break; |
39 | 833 | } | 833 | } |
40 | 834 | case QEvent::KeyPress: { | ||
41 | 835 | QKeyEvent *keyPress = static_cast<QKeyEvent*>(event); | ||
42 | 836 | switch (keyPress->key()) { | ||
43 | 837 | case Qt::Key_Escape: | ||
44 | 838 | collapse(); | ||
45 | 839 | default: | ||
46 | 840 | break; | ||
47 | 841 | } | ||
48 | 842 | } | ||
49 | 834 | default: break; | 843 | default: break; |
50 | 835 | } | 844 | } |
51 | 836 | return UCStyledItemBase::eventFilter(target, event); | 845 | return UCStyledItemBase::eventFilter(target, event); |
52 | 837 | 846 | ||
53 | === modified file 'src/Ubuntu/Components/plugin/ucbottomedgehint.cpp' | |||
54 | --- src/Ubuntu/Components/plugin/ucbottomedgehint.cpp 2016-02-01 18:57:26 +0000 | |||
55 | +++ src/Ubuntu/Components/plugin/ucbottomedgehint.cpp 2016-03-15 12:06:06 +0000 | |||
56 | @@ -198,8 +198,16 @@ | |||
57 | 198 | void UCBottomEdgeHint::keyPressEvent(QKeyEvent *event) | 198 | void UCBottomEdgeHint::keyPressEvent(QKeyEvent *event) |
58 | 199 | { | 199 | { |
59 | 200 | UCActionItem::keyPressEvent(event); | 200 | UCActionItem::keyPressEvent(event); |
62 | 201 | if ((status() >= Active) && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)) { | 201 | if (status() == Hidden) |
63 | 202 | Q_EMIT clicked(); | 202 | return; |
64 | 203 | switch (event->key()) { | ||
65 | 204 | case Qt::Key_Enter: | ||
66 | 205 | case Qt::Key_Return: | ||
67 | 206 | case Qt::Key_Space: | ||
68 | 207 | Q_EMIT clicked(); | ||
69 | 208 | break; | ||
70 | 209 | default: | ||
71 | 210 | break; | ||
72 | 203 | } | 211 | } |
73 | 204 | } | 212 | } |
74 | 205 | 213 | ||
75 | 206 | 214 | ||
76 | === modified file 'tests/unit_x11/tst_bottomedge/tst_bottomedge.cpp' | |||
77 | --- tests/unit_x11/tst_bottomedge/tst_bottomedge.cpp 2016-02-20 15:11:02 +0000 | |||
78 | +++ tests/unit_x11/tst_bottomedge/tst_bottomedge.cpp 2016-03-15 12:06:06 +0000 | |||
79 | @@ -31,6 +31,8 @@ | |||
80 | 31 | #include "ucbottomedgestyle.h" | 31 | #include "ucbottomedgestyle.h" |
81 | 32 | #undef private | 32 | #undef private |
82 | 33 | 33 | ||
83 | 34 | Q_DECLARE_METATYPE(Qt::Key) | ||
84 | 35 | |||
85 | 34 | #define QVERIFY_RETURN(statement, returnValue) \ | 36 | #define QVERIFY_RETURN(statement, returnValue) \ |
86 | 35 | do {\ | 37 | do {\ |
87 | 36 | if (!QTest::qVerify((statement), #statement, "", __FILE__, __LINE__))\ | 38 | if (!QTest::qVerify((statement), #statement, "", __FILE__, __LINE__))\ |
88 | @@ -889,6 +891,32 @@ | |||
89 | 889 | QCOMPARE(bottomEdge->isEnabled(), bottomEdge->hint()->isEnabled()); | 891 | QCOMPARE(bottomEdge->isEnabled(), bottomEdge->hint()->isEnabled()); |
90 | 890 | } | 892 | } |
91 | 891 | 893 | ||
92 | 894 | void test_collapse_by_keyboard_data() | ||
93 | 895 | { | ||
94 | 896 | QTest::addColumn<Qt::Key>("key"); | ||
95 | 897 | |||
96 | 898 | QTest::newRow("space") << Qt::Key_Space; | ||
97 | 899 | QTest::newRow("enter") << Qt::Key_Enter; | ||
98 | 900 | QTest::newRow("return") << Qt::Key_Return; | ||
99 | 901 | } | ||
100 | 902 | void test_collapse_by_keyboard() { | ||
101 | 903 | QFETCH(Qt::Key, key); | ||
102 | 904 | |||
103 | 905 | QScopedPointer<BottomEdgeTestCase> view(new BottomEdgeTestCase("Defaults.qml")); | ||
104 | 906 | view->rootObject()->forceActiveFocus(); | ||
105 | 907 | QTRY_COMPARE_WITH_TIMEOUT(view->rootObject()->property("activeFocus").toBool(), true, 1000); | ||
106 | 908 | UCBottomEdge *bottomEdge = view->testItem(); | ||
107 | 909 | QTest::keyClick(bottomEdge->hint()->window(), Qt::Key_Tab); | ||
108 | 910 | QTRY_COMPARE_WITH_TIMEOUT(bottomEdge->hint()->property("activeFocus").toBool(), true, 1000); | ||
109 | 911 | QTRY_COMPARE_WITH_TIMEOUT(bottomEdge->hint()->property("keyNavigationFocus").toBool(), true, 1000); | ||
110 | 912 | QTest::keyClick(bottomEdge->hint()->window(), key); | ||
111 | 913 | QSignalSpy commitCompletedSpy(bottomEdge, SIGNAL(commitCompleted())); | ||
112 | 914 | QTRY_COMPARE_WITH_TIMEOUT(commitCompletedSpy.count(), 1, 1000); | ||
113 | 915 | QTest::keyClick(bottomEdge->hint()->window(), Qt::Key_Escape); | ||
114 | 916 | QSignalSpy collapseCompletedSpy(bottomEdge, SIGNAL(collapseCompleted())); | ||
115 | 917 | QTRY_COMPARE_WITH_TIMEOUT(collapseCompletedSpy.count(), 1, 1000); | ||
116 | 918 | } | ||
117 | 919 | |||
118 | 892 | void test_preload_content() | 920 | void test_preload_content() |
119 | 893 | { | 921 | { |
120 | 894 | QScopedPointer<BottomEdgeTestCase> test(new BottomEdgeTestCase("PreloadedContent.qml")); | 922 | QScopedPointer<BottomEdgeTestCase> test(new BottomEdgeTestCase("PreloadedContent.qml")); |
121 | 895 | 923 | ||
122 | === modified file 'tests/unit_x11/tst_components/tst_bottomedgehint.qml' | |||
123 | --- tests/unit_x11/tst_components/tst_bottomedgehint.qml 2015-12-07 10:05:10 +0000 | |||
124 | +++ tests/unit_x11/tst_components/tst_bottomedgehint.qml 2016-03-15 12:06:06 +0000 | |||
125 | @@ -188,20 +188,25 @@ | |||
126 | 188 | return [ | 188 | return [ |
127 | 189 | {tag: "enter and unlocked", key: Qt.Key_Return, status: BottomEdgeHint.Inactive}, | 189 | {tag: "enter and unlocked", key: Qt.Key_Return, status: BottomEdgeHint.Inactive}, |
128 | 190 | {tag: "return and unlocked", key: Qt.Key_Enter, status: BottomEdgeHint.Inactive}, | 190 | {tag: "return and unlocked", key: Qt.Key_Enter, status: BottomEdgeHint.Inactive}, |
129 | 191 | {tag: "space and unlocked", key: Qt.Key_Space, status: BottomEdgeHint.Inactive}, | ||
130 | 191 | {tag: "enter and locked", key: Qt.Key_Return, status: BottomEdgeHint.Locked}, | 192 | {tag: "enter and locked", key: Qt.Key_Return, status: BottomEdgeHint.Locked}, |
131 | 192 | {tag: "return and locked", key: Qt.Key_Enter, status: BottomEdgeHint.Locked}, | 193 | {tag: "return and locked", key: Qt.Key_Enter, status: BottomEdgeHint.Locked}, |
132 | 194 | {tag: "space and locked", key: Qt.Key_Space, status: BottomEdgeHint.Locked}, | ||
133 | 193 | ]; | 195 | ]; |
134 | 194 | } | 196 | } |
135 | 195 | function test_activate_by_key(data) { | 197 | function test_activate_by_key(data) { |
138 | 196 | if (hasMouseAttached && !data.locked) { | 198 | switch (data.status) { |
139 | 197 | skip(data.tag, "Test requires ability to unlock"); | 199 | case BottomEdgeHint.Inactive: |
140 | 200 | QuickUtils.mouseAttached = false; break; | ||
141 | 201 | case BottomEdgeHint.Locked: | ||
142 | 202 | QuickUtils.mouseAttached = true; break; | ||
143 | 203 | default: | ||
144 | 204 | fail("Unexpected status %1".arg(data.status)); | ||
145 | 198 | } | 205 | } |
146 | 199 | bottomEdgeHint.status = data.status; | 206 | bottomEdgeHint.status = data.status; |
147 | 200 | bottomEdgeHint.forceActiveFocus(); | 207 | bottomEdgeHint.forceActiveFocus(); |
148 | 208 | verify(bottomEdgeHint.activeFocus, "Hint doesn't have the focus"); | ||
149 | 201 | keyPress(data.key); | 209 | keyPress(data.key); |
150 | 202 | if (bottomEdgeHint.status != BottomEdgeHint.Locked) { | ||
151 | 203 | expectFailContinue(data.tag, "should fail"); | ||
152 | 204 | } | ||
153 | 205 | clickSpy.wait(400); | 210 | clickSpy.wait(400); |
154 | 206 | keyRelease(data.key); | 211 | keyRelease(data.key); |
155 | 207 | } | 212 | } |
156 | 208 | 213 | ||
157 | === modified file 'tests/unit_x11/tst_components/tst_focus.qml' | |||
158 | --- tests/unit_x11/tst_components/tst_focus.qml 2016-02-11 17:31:14 +0000 | |||
159 | +++ tests/unit_x11/tst_components/tst_focus.qml 2016-03-15 12:06:06 +0000 | |||
160 | @@ -66,6 +66,11 @@ | |||
161 | 66 | id: textArea | 66 | id: textArea |
162 | 67 | text: "This is a text area with some text handling focus" | 67 | text: "This is a text area with some text handling focus" |
163 | 68 | } | 68 | } |
164 | 69 | Item { | ||
165 | 70 | BottomEdgeHint { | ||
166 | 71 | id: bottomEdgeHint | ||
167 | 72 | } | ||
168 | 73 | } | ||
169 | 69 | Button { | 74 | Button { |
170 | 70 | id: button | 75 | id: button |
171 | 71 | text: "Press me" | 76 | text: "Press me" |
172 | @@ -198,7 +203,10 @@ | |||
173 | 198 | {tag: "TextField(back)", from: textField, to: dummy, key: Qt.Key_Backtab}, | 203 | {tag: "TextField(back)", from: textField, to: dummy, key: Qt.Key_Backtab}, |
174 | 199 | {tag: "TextArea", from: textField, to: textArea, key: Qt.Key_Tab}, | 204 | {tag: "TextArea", from: textField, to: textArea, key: Qt.Key_Tab}, |
175 | 200 | {tag: "TextArea(back)", from: textArea, to: textField, key: Qt.Key_Backtab}, | 205 | {tag: "TextArea(back)", from: textArea, to: textField, key: Qt.Key_Backtab}, |
177 | 201 | {tag: "Button(back)", from: button, to: textArea, key: Qt.Key_Backtab}, | 206 | {tag: "BottomEdgeHint", from: textArea, to: bottomEdgeHint, key: Qt.Key_Tab}, |
178 | 207 | {tag: "BottomEdgeHint(back)", from: bottomEdgeHint, to: textArea, key: Qt.Key_Backtab}, | ||
179 | 208 | {tag: "Button", from: bottomEdgeHint, to: button, key: Qt.Key_Tab}, | ||
180 | 209 | {tag: "Button(back)", from: button, to: bottomEdgeHint, key: Qt.Key_Backtab}, | ||
181 | 202 | {tag: "CheckBox", from: checkbox, to: switchbox, key: Qt.Key_Tab}, | 210 | {tag: "CheckBox", from: checkbox, to: switchbox, key: Qt.Key_Tab}, |
182 | 203 | {tag: "CheckBox", from: switchbox, to: checkbox, key: Qt.Key_Backtab}, | 211 | {tag: "CheckBox", from: switchbox, to: checkbox, key: Qt.Key_Backtab}, |
183 | 204 | {tag: "Switch", from: switchbox, to: slider, key: Qt.Key_Tab}, | 212 | {tag: "Switch", from: switchbox, to: slider, key: Qt.Key_Tab}, |
184 | @@ -220,8 +228,11 @@ | |||
185 | 220 | ]; | 228 | ]; |
186 | 221 | } | 229 | } |
187 | 222 | function test_tab_focus(data) { | 230 | function test_tab_focus(data) { |
190 | 223 | data.from.forceActiveFocus(); | 231 | data.from.focus = true; |
191 | 224 | verify(data.from.activeFocus, "Source component is not focused"); | 232 | verify(data.from.enabled, "Source component is invalid"); |
192 | 233 | verify(data.to.enabled, "Target component is invalid"); | ||
193 | 234 | verify(data.from.activeFocus, "Source component is not focused - focus is on %1" | ||
194 | 235 | .arg(String(window.activeFocusItem).split("(")[0])); | ||
195 | 225 | if (data.key == Qt.LeftButton) { | 236 | if (data.key == Qt.LeftButton) { |
196 | 226 | verify(data.to.activeFocusOnPress, "Target doesn't take focus on click"); | 237 | verify(data.to.activeFocusOnPress, "Target doesn't take focus on click"); |
197 | 227 | mouseClick(data.to, centerOf(data.to).x, centerOf(data.to).y); | 238 | mouseClick(data.to, centerOf(data.to).x, centerOf(data.to).y); |
198 | @@ -231,7 +242,8 @@ | |||
199 | 231 | } | 242 | } |
200 | 232 | waitForRendering(data.to, 500); | 243 | waitForRendering(data.to, 500); |
201 | 233 | verify(!data.from.activeFocus, "Source component still keeps focus"); | 244 | verify(!data.from.activeFocus, "Source component still keeps focus"); |
203 | 234 | verify(data.to.activeFocus, "Target component is not focused"); | 245 | verify(data.to.activeFocus, "Target component is not focused - focus is on %1" |
204 | 246 | .arg(String(window.activeFocusItem).split("(")[0])); | ||
205 | 235 | } | 247 | } |
206 | 236 | 248 | ||
207 | 237 | function test_hide_osk_when_pickerpanel_opens() { | 249 | function test_hide_osk_when_pickerpanel_opens() { |
FAILED: Continuous integration, rev:1849 /jenkins. ubuntu. com/ubuntu- sdk/job/ ubuntu- ui-toolkit- ci-armhf- stable/ 490/ /jenkins. ubuntu. com/ubuntu- sdk/job/ generic- update- mp/1682/ console
https:/
Executed test runs:
None: https:/
Click here to trigger a rebuild: /jenkins. ubuntu. com/ubuntu- sdk/job/ ubuntu- ui-toolkit- ci-armhf- stable/ 490/rebuild
https:/